Blog

  • 10G Link over Cat6: Does It Really Work?

    This project was to verify whether 10 Gigabit Ethernet can run over Cat6 cable. The issue was that 10G links would not negotiate. The ports stayed at 1G or failed to come up, even though the switch and cabling appeared correct.

    Environment:

    • Switch: Juniper EX4600 with SFP+ ports using RJ45 copper modules
    • Clients: Mac Studio with 10G Ethernet
    • Cabling: Molex Cat6, 23 AWG structured cabling

    This is where we found the real issue.

    The SFP+ RJ45 module limitation

    The SFP+ RJ45 modules were able to negotiate 10GbE only on very short cables, around 5-10 meters. Anything longer would either fail to negotiate or fall back to 1G.

    At first, we suspected the cable since it is not Cat6a. But after some test with equipment, it became clear that the limitation was in the copper SFP+ module itself.

    These modules use more power and generate more heat compared to fiber SFP+ optics. Because of this, their supported distance can be very limited, especially in high density switches like the EX4600.

    To compare, we tested another switch, the Juniper EX4400. This model has native 10G RJ45 copper ports built directly into the switch. With the EX4400, 10G over Cat6 worked without issues.

    This was a very important lesson. Native 10GBASE-T ports behave differently from SFP+ RJ45 transceivers.

    Not all Cat6 cables are the same

    Another discovery was about the cable itself.

    Many people think that Cat6 is just Cat6. That is not true. One important specification to check is AWG.

    In our testing:

    • Cat6 with 23 AWG conductors was able to run 10G.
    • Some Cat6a cables with 26 AWG conductors failed to negotiate 10G.

    This may sound strange. Cat6a is supposed to be better than Cat6. But a higher AWG number means thinner copper. Thinner wires have higher resistance and can reduce signal quality at the high frequencies required for 10GbE.

    So cable construction matters. Conductor thickness, copper quality, twisting, and shielding all make a difference.

    What the real specifications say

    If you look at technical datasheets instead of marketing brochures, you will find that Cat6 officially supports 10GbE up to about 55 meters, under good conditions

    Some vendors simplify the message and say Cat6 does not support 10G. That is not fully correct. It can support 10G, but only at shorter distances.

    Final thoughts

    Yes, 10G over Cat6 is possible. But it depends on several factors. If you are building new infrastructure, Cat6a is a safer option for longer 10G runs. But if you already have Cat6 installed, do not assume it cannot handle 10G. Test it carefully and pay attention to the equipment.

    In our case, the real problem was not the cable. It was the small RJ45 SFP+ module that could not handle the distance.

  • Weatherproof Tesla Charger Case

    Since it’s not always possible to install a Tesla Wall Connector, here’s a relatively simple and effective solution for an outdoor, waterproof Tesla Mobile Charger—if that’s a more doable option for you.

    You can simply use a Pelican 1400 Case, which fits the charger perfectly. The biggest challenge is figuring out how to pass the charger plug through the case. For that, you can use icotek gland adapters. For this specific project, I used the KVT-ER 50|2 model. It’s surprisingly affordable and high quality.

    Spoiler alert: I’m not a professional electrician. This should be considered a DIY project. Also—Hubbell gear can be pricey.

    Here’s how my setup looks for a 20 amp, 250V solution:

    • Hubbell waterproof wall outlet (HBL2320SW) installed in the backyard, paired with the matching plug HBL2321SW. You’ll most likely need a GFCI breaker for safety in this case.
    • 12/3 SOOW cable – I bought a 100 ft reel and used about 90 ft. Yes, there’s a small voltage drop over that distance, but it’s minimal—around 1 volt difference.
    • To protect the cable from physical damage, I covered it with HydroMaxx 3/4″ Flexible Corrugated Black PVC Split Tubing Wire Loom. 100 ft was enough. Garden staples work great to secure it in place.
    • Just before the Pelican case, I installed another Hubbell HBL2323SW and HBL2321SW, so I can quickly disconnect the box if needed.
    • Inside the Pelican 1400 case, I drilled two holes—one for the icotek gland, and a smaller one for the SOOW cable.
    • To prevent damage from accidental tugs, I used heavy-duty zip ties to bind the SOOW cable and the charger plug cable together, effectively making them behave like one single cable.
    • For the 6-20R connector, I used a Bryant BRY5469NC. It’s well-made, but note that 12/3 SOOW cable is near the upper limit of acceptable diameter for this connector. A good alternative is the Legrand PS5469XGCM.
    • I mounted the charger inside the Pelican case using 1×1 inch double-sided tape to keep it from shifting when the case is lifted.
    • Don’t forget to use a plug protector on the charger connector to keep it clean and dry.

    This setup has been working great. It’s survived heavy snow weeks, constant rain, ect. I haven’t noticed any overheating. I even installed an Evo temperature sensor and check it every 2–3 months—no issues so far.

    It’s definitely more durable and reliable than the typical outdoor electrical boxes you find on Amazon. Totally worth the effort to plan and install.

    With everything connected, the Tesla app shows around 240V and a charging speed of 14 miles per hour.

  • AWS Lambda Failures: Where to Start

    One of the easiest ways to start investigating why your AWS Lambda function is failing is to check the timeout setting allocated for the function. By default, the timeout is set to 3 seconds, which is often not enough for certain operations.

    As shown in my screenshot, based on approximately 3,000 operations my code computed, a few of them took longer than 3 seconds to complete.

    However, this doesn’t necessarily mean your code is poorly written or unoptimized. In many cases, the issue depends on what happens after the function executes. For example, if your function makes an API call to another service, the response time can vary significantly, and there’s little you can do to speed it up.

  • Table of Contents on a Squarespace Website

    As we all know, Squarespace does not have a table of contents block. However, there is a simple solution that is based on what Squarespace uses on its own website. Assuming you are already familiar with most Squarespace settings, I have simplified this article to make it as easy as possible.

    Why It Is Important

    There are at least two reasons why a table of contents might be important for your website. First of all, it is much easier to navigate through the page. You just can’t deny this fact. Some articles are 3000-5000 words, and if you don’t want to scroll through the whole article to find a piece of specific information, only Command+F may help. With a table of contents, the chances that your visitor would find the needed information is higher. Not even saying that it will be done much faster.

    The second reason might not be that obvious as the first one, but still very important from the SEO point of view. When you google about something specific, Google sometimes may give you a link to the exact part of the page where this information is located. One of the reasons Google is able to do that is because the ID you add to your subtitle is one of the requirements for a table of contents. We will talk about that in the Anchor Links paragraph.

    How It Works

    Essentially, you need to create anchor links, then add custom HTML code that will be converted to a table with links. Squarespace already has everything required for that, so there is no need to write any code from scratch. We will be using the exact same CSS and HTML that Squarespace uses on its own website. For example, let’s open the Creating anchor links page. There is a table of contents with a simple and clean design that would work for many websites. We will make exactly the same table for our Squarespace website. You, of course, can adjust it to your own needs.

    CSS Code

    Now, using developer tools, we can find HTML and CSS used on the Squarespace website. CSS code goes to website settings and HTML code goes to a webpage or blog post. CSS is a one-time action and it would work for all the future tables of content you will be creating. To save your time, here is the CSS code I extracted from the Squarespace website:

    .table-of-contents {
        display: block;
        background-color: #f5f5f5;
        padding: 22px;
        margin: 0 0 1em /*1em*/;
        min-width: 30%;
        /*max-width: 60%;*/
    }
    
    .toc-title {
        display: block;
        margin-top: 0;
        margin-bottom: 1em;
        border-top: none;
        padding-top: 0;
        font-size: 18px;
        font-weight: 500;
        line-height: 1em;
        color: #444;
    }
    
    .toc-links {
        list-style-position: outside;
        list-style-type: none;
        margin: 0;
        color: #b8b8b8;
        margin-bottom: 0;
        padding: 0;
        font-weight: lighter;
        font-size: 15px;
    }
    
    .toc-links li {
        line-height: 1.4em;
        padding-bottom: 0.6em;
        margin-left: 0;
    }
    
    .toc-links a {
        text-decoration: none;
        color: #737373;
    }

    The table of contents needs to know where it must send you to, and the anchor links would help with that. If you don’t know what an anchor link is, then the simplest answer is that regular links move you between pages, but anchor links move you inside the specific page.

    In our case, we would need to “attach” an ID to specific parts of a page. For example, a subtitle would work best for it. So, instead of adding a regular heading title in Squarespace, you would need to add a code or markdown block and insert this line:

    <h3 id="important">1. Why It Is Important</h3>

    Replace h4 at the beginning and the end to accommodate your needs.

    One important thing – this ID must be unique across a page.

    HTML Code

    The final part is inserting HTML code that would be converted to a table and would be adjusted with the CSS we already inserted.

    Basically, you would only need to change the title of your list and add/remove needed lines. The value of the “a href” must match with the Anchor ID we discussed in step 4.

    <aside class="table-of-contents">
      <span class="toc-title">Sections</span>
      <ol class="toc-links">
        <li><a href="#important">1. Why It Is Important</a></li>
        <li><a href="#how-it-works">2. How It Works</a></li>
        <li><a href="#css">3. CSS Code</a></li>
        <li><a href="#anchor-links">4. Anchor Links</a></li>
        <li><a href="#html">5. HTML Code</a></li>
        <li><a href="#automation">6. Automation Solution</a></li>
        <li><a href="#updates">7. Updates</a></li>
      </ol>
    </aside>

    Automation Solution

    Now the most exciting part! What if you need to create a table of contents every day? There are many solutions. For example, you can use plugins or you can write an HTML code as discussed before. Both variants have pros and cons, so that is why I create a simpler solution and it works through Google Spreadsheets.

    https://docs.google.com/spreadsheets/d/1tyGP1BQ_6QKVZMLT1M_QKPKu4p-jhucOJIAolvoZKOU/edit?usp=sharing

    Essentially, you just need to type your data and this spreadsheet would generate the needed HTML code which you would need to copy on your page or blog post using the Code block.

    1. Type your link titles (subtitles).
    2. You may click Auto ID if you want this spreadsheet to automatically generate the link HTML ID based on subtitle.
    3. Don’t forget to choose the desired text style (h1-h4) in the G4 cell.
    4. Select or type table title in G3 cell.
    5. Copy/paste code from the green field into the Code block.
    6. Copy/paste Subtitle HTML Code instead of your regular subtitle using the Markdown Block.

    You are very welcome to copy this spreadsheet and use it for your needs. In my workflow, I keep the “Data” sheet untouched and just create a duplicate of this sheet for every article.

    Updates

    1.04

    • New simplified/improved algorithm. So it would be easier to add new features and options in the future.
    • Line numbers. Can be applied to the table, subtitles, or both.
    • Same text style for all subtitles. No need to choose it for every single subtitle.
    • Option to include or not include table title.