RSSAmplifier

Blog

SemiSafeForWork

SemiSafeForWork => { (code, thoughts, hyperbole) }

semisafe.comRSS feed ↗10 posts

Latest posts

Sorcery in the open

In the 1970s a bunch of academics started complaining when software was only delivered as a compiled artifact. It was kind of ignored by the companies trying to monetize their software, but it was taken up by a small group of people championing free software. By the 1980s, they codified their demands. Then in the 1990s, the ubiquity of the home computer, mixed with the distribution channel of…

Heirloom quality software

Using LLMs or AI to develop software isn’t new-new, but it’s still new-ish and nascent. Over the past year, my usage has gone from “this chatbot is a stupid party trick” to “this auto-complete is getting better” to “hey $LLM_OF_THE_WEEK, write me a whole app that does… something”.. I’m constantly vacillating between “the game is forever changed” and “what a pile of junk, if this is the future,…

Jason ain't about the jazz, man!

Javascript and the interchange format it begat, JSON, have subtle complexities that aren’t necessarily obvious. They are both very quick to learn, and powerful, which makes them seem deceptively simple. Before jumping in, let’s start with the basic understanding that JavaScript has always been a weakly typed language. This is what makes it so forgiving. That isn’t to say it’s untyped, there…

Testing in 3D

Automated testing is a facet of software engineering that most people agree holds value, but usually the engineer will wander off before offering any further clarification. There is somewhat of a blind faith that given full coverage, an engineer’s work is complete and they can continue solving the rest of the business’ problems. The issue with carelessly creating tests without purpose is that…

Code Review for Great Goodness

Code review is a common practice for professional software teams. As an author, there are several things you could hope to gain from having your code reviewed: Other people’s opinions on stylistic and naming changes A rigorous defense against logical and syntactical flaws A chance to communicate better and share knowledge with your peers The respect and adulation of the aforementioned peers In…

Running WireMock with Gitlab CI Services

In a healthy project there will be a lot of tests. One of the tools that makes for convenient testing is WireMock . If you are not already familiar, WireMock is a service that listens for HTTP requests matching certain conditions and replies with canned responses. Change control for requests One of the features I like about WireMock is that the canned responses can be defined in individual JSON…

React & Typescript & Storybook

About once a year or so I create a fresh React project and realize that over the course of the year, everything has changed. For the benefit of future me, and current day you, I have recorded the most recent process after trying several times to determine the most clear and concise method. The following tooling is my current preference and target: React TypeScript ESLint AirBnB lint rules VSCode…

Hello, my name is Ridiculous

One day you find yourself setting up a new greenfield project. Your team needs a service that connects to an upstream account management system to get the active subscription status of a user. Since it only changes daily, to reduce load, the subscription status will be cached in this service. You now are faced with your first decision. Do you name this customer-subscription-cache ? Or do you name…

Developing Cross Browser Extensions

One of the first features requested for Shadowmute was a browser extension to simplify the workflow of generating mailboxes. It was also clear very early on that the usage between Chrome and Firefox users was split fairly equally. The documentation for Firefox and Chrome extension development is extremely well written and detailed, so I’m not going to delve too deep into that. What I would like to…

There be dragons

If you have a kitchen, and that kitchen has drawers, there is a roughly 100% chance you have a junk drawer. You know the one, where you store old phone cables, ribbons, safety pins, expired coupons, and a broken red crayon. The software equivalents of these junk drawers take many forms, commonly named Helper , Utils or the worst offender of all.. the TestBase . Join me as we take our new found…