A diatribe in when I am greatly disappointed in my industry. Vibe Coding For the past few weeks I’ve done some "vibe coding" with Codex and Claude in my free time. As a lifelong software engineer my feelings on the results are, well, mixed. LLMs definitely let me put together a prototype faster, which is great for iterating on ideas quickly. The generated code is definitely an improvement over…
If you live on planet earth and you are at all connected to software you've probably tried out 'vibe coding', ie: using an AI tool to write software for you. As someone who's been writing software for close to four decades I've seen code automation tools come and go. Believe it or not, people used to talk about Visual Basic in the same breathless tones of today's vibe coding tools. The outcome has…
Layout is one of the hardest problems in UI toolkit design because there are so many different ways to design a layout. Creating a system that supports them all is practically impossible. Even creating a system that merely makes them all possible to implement (even if difficult) is a challenge. And making the layout fast is even harder. However, given that we are targeting embedded systems, rather…
As part of my ongoing research with embedded Rust on ESP32 devices, (starting with the T-Deck but eventually branching out to other devices), I started creating a simple reusable UI toolkit to automate the boring code that I end up writing over and over for every example. The code is on github but I haven't made a crate for it yet. Goals The goal for this embedded GUI lib is to be able to quickly…
I’m really enjoying using no std Rust for embedded programming on the [Lilygo T-deck](https://lilygo.cc/products/t-deck?srsltid=AfmBOooByFjhRNf0GYZImQ4xz2IpCBm ELtidro9PzSlUJ90iCgWRWSA) and I want to share what I’ve learned so far. There are many excellent tutorials and docs on Embedded Rust in general and the ESP32 in particular, so I’m going to cover things that are specific to the T-deck or…
I don't know why I waited until I was almost fifty to read Slaughterhouse Five. I'd always heard it was a groundbreaking work of sci-fi, but I didn't know why. Now that I've read it I can say that it's not really sci-fi, but it certainly is groundbreaking. If you haven't read it, Slaughterhouse Five is a sci-fi (ish) novel by Kurt Vonnegut about the bombing of Dresden in WWII. It tells the story…
I've been having a lot of fun with this little device called a LilyGo T-Deck . It's built on an ESP32-S3, has a 320x240 touch screen, a funky little track ball, built in wi-fi, and a seriously nostalgia-inducing physical keyboard. I bought the T-Deck about a year ago but because I was sick (with undiagnosed Type 1 Diabetes) and haven't done much with it until the past few weeks. Whenever I see a…
Thoughts on LLMs and the coming AI backlash I find Large Language Models fascinating. They are a very different approach to AI than most of the 60 years of AI research and show great promise. At the same time they are just technology. They aren’t magic. They aren’t even very good technology yet. LLM hype has vastly outpaced reality and I think we are due for a correction, possibly even a bubble…
Working in the Mixed Reality group at Mozilla was the most fun I ever had in my 30 year career. Helping to usher a new technology into the world. One with such potential. I’d really love to go back there. Unfortunately it seems there isn’t really a there to go back to. Cue memory fade. WebXR Mixed Reality (MR) refers to the spectrum of interfaces between and including Virtual Reality (VR, fully…
I’ve been quiet lately, not because I’ve had nothing to say but because I’ve not felt well enough to say it. That changes today. I’m starting to get a handle on my adult onset Type 1 Diabetes (T1D for the cool kids), including taking more control of my medication and standardizing my food choices (it’s less what I eat and more about consistency of amount and timing). I’m not quite ready to look…
One of my original IdealOS blog posts from 2017 showed up on the front page of Hackernews the other day (comments here ). This got me thinking about IdealOS again. I haven’t worked on it in a couple of years, but as I read through the comments and links to articles by people with similar ideas, I came to a realization. I am still working on it. Maybe not directly, but I’m still exploring ideas…
It's been a bit since I've posted on my round screen watch project. Most of my time has been taken up by work, travel, and family stuff, but I did have a few seconds to add a feature or two. New Screens The Waveshare board I'm using has a lipo battery charger inside it, but until now I hadn't exposed it. There is now as screen that shows the current battery percentage, though I…
It’s a truism of the web that when something becomes free it turns to crap . This is largely due to advertising, tracking, and SEO hackers getting their crappy version of something to the top of the search index. When this has happened to a tool I want to use I can’t fix the underlying problem, but I can make my own non-tracking version and share it with the web, doing my little part to make the…
I’m continuing to work on a little smartwatch prototype using a little round LCD and I want to have nice looking text. The default font for CircuitPython is fine, but it’s very tiny. This LCD has a pretty high DPI compared to other hobbyist screens( > 200 ppi ), so I need to find a new font. CP has a way of importing new fonts, but there are a few pitfalls and tricks I discovered, so that’s what…
For my next project with the WaveShare Round LCD I want to create an animation of Dr Strange's Eye of Agamotto . Here is my first attempt in JS (looks more like the comics than the movies). Not bad, I think. When it animates the eye lids come down. I built them with quadradic curves that change over time using Canvas. Canvas is fast enough to let me make the animation very smooth. Once…
I'm enamored of all of cheap and hackable screens and embedded CPUs coming onto the market. I'm frustrated, however, that despite embedded computing being more accessible than ever, the mass manufacturers products are all becoming more and more the same. Where are the phones with oval screens? Where are the steam punk pocket calculators? We have the technology to make devices that are…
I love HTML Canvas. I even wrote a book about it once. Canvas is good drawing API and it runs everywhere. However, despite the magic that is the Canvas API, it can still be tricky to use when it interacts with CSS. I often have people ask me how to make their canvas fill the screen , or resize with the window , or to have a fixed aspect ratio but still scale to fit inside the window without…
I’ve been teaching my nephew to code for the past few years and we did a game jam together over the winter break. He said to me: “Uncle Josh, you sure can code fast.” I reminded him that I’ve been programming for 30+ years, and one day he’ll be even better than I am. My nephew struggles to come up with ideas and often goes down rabbit holes on one feature or tool instead of working on the rest of…
In the last couple of years I’ve seen a lot of lamenting about the browser mono-culture . I even wrote about it myself . Some complains focus on how complicated the web specs have become . So big that only a few companies can implement a browser from scratch. I think these complaints are misplaced. Even if the web platform didn’t have such a large API surface it still wouldn’t matter. You can’t…