TL;DR Skip the doc and use agentic coding to build a microdemo . Building it forces you to scope the problem and understand it well. Then, put it in front of product and iterate live. Want to skip ahead and see one? example 1 ↓ · example 2 ↓ Want to try it? Download the Claude Code skill I keep running into the same problem. I’m building something where good results are subjective. Search results,…
Say you built an app and wanted to show a user’s initial in an avatar, to do so you KISS: const avatar = displayName [ 0 ] const displayName = "Nadav" lgtm One day, a user decides to make their display name: const displayName = "🇨🇦 Mike" or const displayName = "👍🏽 Dave" or const displayName = "👨👩👧👦 The Smiths" or maybe const displayName = "🤷 idk" should work right? *slack bloop*…
I have an old Linux laptop that I decided to repurpose last weekend. After spending 5 hours backing up files (APFS drive + read-only FUSE drivers + stubborn dev who doesn’t want to think too hard (me) = slow backup using SCP), I was finally ready to install a fresh OS. I grab a USB drive, boot from it, and… the BIOS is password protected. Every password I try fails. After some Googling, I found…
In my previous job, I was building a side-car app using Electron. I occasionally found myself needing to debug a packaged production app and this post is just a few commands I that have been helpful to me. Unpack and Repack ASAR archives: Electron apps often store their resources in ASAR files, which are simple archives. You can easily extract/modify/repack the contents using the asar package. npm…
Like many today, I woke up to reading about Facebook’s major DNS outage . While I’m looking forward to hopefully reading the outage’s postmortem, in reading the comments I learned that you can actually “ask” many public DNS providers to flush the cache for one of their entires. This is super useful if you change a DNS entry and want the change to be seen by your users quicker. So for future me,…
As part of a little home server I’ve been building, I wanted to reuse some old mac hard drives I had laying around. Before reusing the drives, I was really curious to see what was on them. In order to do this, I needed a way to mount the HFS+ formatted drives on Linux. First thing was to install hfsprogs, this will let us read from the drive (Ubuntu can only read from non-journaled HFS drives).…
Yesterday, I was building a little home server out of some spare parts or I was until I hit a bit of a roadblock. When it came time to install the OS ( Ubuntu Server in this case), I realized I didn’t have a keyboard to configure the install. A normal person would have just gone out and bought a keyboard and an experienced one would have preseeded the install so it could run unattended. Since I’m…
This is the third part of a series on spoofing an iPod for car stereo shenanigans. You can find part 1 here or part 2 here . In the previous part, I found out that my car stereo is trying to talk to an iPod over serial. Here I will cover my first attempt at bridging that serial connection with my phone via bluetooth. I’ll mostly be focusing on what went wrong, but feel free to dig through the code…
Recently, I wanted to see how an app on my phone was making API calls. The Montreal INFO-Neige app tracks the status of plowed streets around the city and I wanted to see if could use the data for a possible upcoming project. The API is actually part of the city’s Open Data project , but you have to send an email to get an API key and I couldn’t be bothered… To inspect the traffic, I used…
Writing is hard. Writing consistently is even harder. Here’s a list of things I’m doing to motivate myself to get back into writing and posting regularly. Time will tell if it works. Perfect is the enemy of good A post doesn’t have to be perfect to be published. Finding out that my most viewed post is one I put very little effort into helped a lot. Breaking things into manageable pieces The…
This is the second part of a series on spoofing an iPod for car stereo shenanigans. You can read part 1 here . Before being able to spoof an iPod, my first step was to figure out how the car talks to a real one. I tried the simplest thing I could think of first, plug my iPhone directly into the car using the lightning cable. No dice. Next, I dug up an old iPod nano and plugged that in using a…
This past weekend I was digging through an old hard drive when I came across a piece of software I wrote a while ago. In fact, it’s the very first thing I ever opensourced. In the spirit of writing more and personal growth, I figured I would do a sort of code review and see if i’ve improved at all from age 14 (fingers crossed). So with out further ado, let me introduce you to dSearchr! You might…
I like my car, probably more then anyone should like a 2012 Hyundai Elantra. In 2021 terms it’s not the most technologically advance thing but it does most of what I need. While driving, I use my phone for navigation and music - both are extremely essential. My car was built around the time of “peak iPod” and like many from that era, have enhanced support for the iPod. The Elantra does this via a…
An evolving collection of (mostly technical) writing resources that I have found useful. US Government - Plain Language Checklist RFC 2119 - RFC Requirement Key Words Divio Blog - What nobody tells you about documentation Pragmatic Engineer - Writing Well
This is a lightning talk about my journey hacking an IoT camera and the things I learned while failing at doing so. This was also my first solo talk! The slides are also available for download as pdf or pptx .
I made a little holder for the spindle/laser on my 3018 CNC. This way, when I’m using one I can keep the other on the machine and swap between them easily. If you want to print your own, the files are available on Thingiverse .
Here’s how I added some limit/homing switches to my 3018 CNC machine. Parts Needed 3D printed mounts - Thingiverse Micro switches w/ long lever (V-153-1C25) - AliExpress Affiliate Dupont connector kit - Aliexpress Affiliate Heat shrink tubing – Optional – Micro switch w/ roller - AliExpress Affiliate The (Short) Guide I think that @Bracketracer’s guide on Thingiverse is very detailed and easy to…
Below is a fairly messy list of upgrades done (or planned to be) to the cheap “3018 CNC” mills/laser engravers. Planned Power Switch Cable Management Completed X, Y, Z Limit/Home Switches Spindle and Laser Mount OrangePi Zero controller GRBL version upgrade Useful tools (software, bits, collets, etc)
First, a bit of context Yesterday, I took part in a discussion with a few colleagues about how we should be maintaining our CI/CD pipelines. Recently, some of them have been staying in a failed state for longer than usual or failing test cases are simply skipped/commented out. Below is a first draft of my opinions on the matter. Golden Rule: Keep It Green The pipeline should always be green or be…