Why You Should Try Ferrules

I don’t know how many people actually know about them. I learned only when I was invited to help at a industrial controls/robotics outfit. You know those little screw-type terminals you might find on a home theater receiver, a car audio amplifier, sprinkler control, thermostat or any other of the myriad things we use that connect directly via wire? One non-secret nobody may have ever told you: those screw terminals require a minimum gauge of solid core, ideally soft (pure copper) wire. If you’ve ever worked around car or home audio equipment you’ll probably know that stranded wire is kind of expected, if not very common. Especially in automotive applications, flexing and constant heating-cooling cycles will inevitably find a way to disconnect solid wire. Worse, it may be intermittent, creating the kind of electrical gremlin that totals cars. ...

May 27, 2024

Measuring the Mains

When my grandmother was still a child her family had electrical infrastructure run to their home for the first time. Her dad was so unsure of the new technology that he made it his job to stay up all night under the artificial light of the kitchen lamp to make sure they weren’t turning it off when nobody was looking. It’s been nearly 90 years since Great Grandpa put together his manually implemented check on grid stability, and here I am to take it a level or so deeper. ...

May 16, 2024

You Probably Need Distraction Too

Attention-based LLMs re-train their learned patterns with attention to context distance, meaning they infer patterns, then collections between concepts as they train. As I understand it this is the thesis of the paper “Attention is All You Need” and it’s new machine learning pattern, transformers. ChatGPT is a generative (it writes things, makes content) pre-trained (they’re not training it on the fly, it has to fit context and is locked to inference) transformer (the attention thingy majig). ...

May 12, 2024

The Musk of Modern Ai

There’s something you should know about AI. Elon’s not telling the truth, but that’s not it that’s just a dependent fact. Whether he’s deceiving himself or not, I don’t have too much bandwidth to care. What is obvious to me is that people are not aware of the dimensions of complexity in AI. Dimensions are interesting. You can stack them until you’re dizzy and nothing inherent in the math tells you that they can’t keep overlapping, multiplying the information stored in a single point in the space. The flatlanders from the book “Flatland” might only be able to conceive of and operate in their zipper-driven 2d or the lower 1d worlds, but that doesn’t stop us up here in 3 dimensions from both understand their world and ours and having that additional depth perception. And even though I don’t know how to imagine what it would look like, a fourth dimension is somewhat within grasp, given we experience time in sort of slices, moments. Beyond that I just really struggle to imagine. A new dimension at 90 degrees from all the existing ones somehow? just, how? ...

March 14, 2024

Javascript but Why?

But why? I won’t enumerate the many failures of JavaScript in their entirety. We know, of course, that Mr. Eich the original author of the language agrees that he took some bad advice about type coercion, for example. Instead, this is a personal beef. JavaScript has professionally and personally been a pain point and seems to have had a diminishing use case in my mind as long as I’ve been programming. Need to animate something? CSS3 is fine. Want to create some HTML? probably want to just render that on your server with a statically typed language, as many times as the JavaScript community has figured out how to “hydrate” or do server side rendering. ...

February 18, 2024

Things We Hardly Know Made It in to Go

There are a whole bunch of things that on the face of it, Go as a programming language seems to be lacking 1. enums -> iota 2. set -> map[type]struct{}{} 3. override -> ... type Option func (c *config) 4. implements -> var _ interface = &myType{} Starting with enumGo lacks the type but gives you the ability to set constant types with simple addition or shifting with iota. This lacks a lot of the type safety, so there are packages like https://github.com/dmarkham/enumer which give you code-generated custom types with methods to enforce and decode types to strings, etc. Full disclosure, that is my CTO’s repository. He’s picked up maintenance from other contributors and we use it at work. ...

February 9, 2024

Topology of Software Interviews

You hear that giant sucking sound in the distance? That’s thousands of your money-hungry competition furiously reading and re-reading solutions to Leetcode problems so that they can walk into an interview having spent several hundred dollars to know ahead of time what the likely assessment problems will be and nail them. After this interview they will get offers, if you applied and did not do this secret handshake you will not, and many of them will go on to uneventful careers making enormous amounts of money mostly replying to their team in a messenger of whatever form because of the geometric nature of connections among teams. ...

February 9, 2024

How to Get Hacked Looking for Code Help Online

On LinkedIn, Facebook, Reddit and other social media platforms I’ve found myself subscribed to both Go specific and web or general programming forums of all types. About once a quarter I’ll stumble onto a post or repository that presents me an API token, database connection string or some other credential. This is frankly unacceptable given how much PII (privately identifiable information) any random database on the internet can provide on users. ...

January 1, 2024

In Defense of Regressions Toward Data Entry

Programming, whether you call it ‘dev’ work or ‘software engineering’ almost always includes some amount of work that resembles Data Entry roles. In my past I’ve experienced more and less, but it really makes me think. In this post I’d like to defend what I think are reasonable data entry tasks and draw criticisms against needless ones that represent outstanding requirements. Working for my former employer, it wasn’t exactly data entry that drove me to quit. It was a variant of SQL data entry but in the form of lots of template .sql files that I would modify to make database changes necessary because of failures in the software or lack of coverage for certain business needs. ...

January 1, 2024