RSSAmplifier

Blog

George Mandis

This is my blog where I write about web development and travel.

george.mand.isRSS feed ↗20 posts

Latest posts

tezcatl: a 2MB alternative to Puppeteer for scraping on macOS

I've been working on a small project that uses whereami and nearme to do some local scraping and experimentation with LLMs to build enriched datasets. The details of that project are for a future post, but the short version is I needed to fetch web pages, extract some data and move on. [!tip] A quick cut to the chase: If you're on a Mac and find yourself needing to do light scraping work on…

Tracking Homebrew downloads with GitHub's API

If you distribute software through Homebrew or Scoop , you've probably wondered if anyone is actually instaslling your tools. Neither package manager gives you install analytics out of the box. But if your release pipeline flows through GitHub and produces platform-specific artifacts—tarballs, zips, binaries per operating-system and architecture combo—their API quietly tracks download counts on…

Who Reads My RSS Feed?

I recently moved my site from Netlify to Cloudflare Pages , partly to consolidate the services I'm using and partly to finally have proper server logs. Plausible is great for getting the gist of who's visiting and where they're coming from, but sometimes I'm curious about things like: Who is actually using my RSS feeds? What weird bots are sniffing around? Which home-rolled projects are people…

My Favorite Bugs: Invalid Surrogate Pairs

If you're in the business of building things that run on computers long enough, I think you will eventually acquire a favorite bug story. This is a short story about mine. I've also built an interactive tool where you can explore the concepts underpinning the heart of this bug. The bug: two emoji enter, none leave I was working on migrating a legacy editor to a more collaborative experience with…

Migrating from Netlify to Cloudflare Pages

I've hosted this site on Netlify for years. It's been fine. Netlify is good at what it does, and for a static Eleventy blog with 400+ posts, "fine" is really all you need. But I kept wanting one thing Netlify doesn't give you: server logs. Not analytics. I have Plausible for that. I mean raw access logs. Who's pulling my RSS feed? Which bots are crawling the plain-text versions of posts I make…

Meet PaTUI: MS Paint for the Terminal, with Vim Controls

Every once in a while, a revolutionary product comes along that changes everything. One is very fortunate if they get to work on even one of these in their career. Today I'm proud to introduce three revolutionary products of this caliber. The first is a state-of-the-art image editor channeling the elegance of MS Paint. The second is an unparalleled user-interface experience continuing the…

Soft-launching Little Irons

I built a tool to help people keep track of their job applications. In an instance of domain-name-driven application development, the project is called Little Irons ( littleirons.com )—a tool for helping you keep track of "all your little irons in the fire." It's free, it's early, and I would love feedback: https://littleirons.com The inspiration was an ancient Google Sheet I'd used forever as…

More dynamic cronjobs

I remember learning about cronjobs in the early 2000s. I could tell the computer to go do something, on a recurring basis, forever, even when I wasn't there. They felt like magic! We didn't have Crontab.guru or AI to ask for figuring out some of the more complex specifications. Just the man pages and good old-fashioned trial and error—mostly error in my case. But while you could do fun, complex…

Building a Go Link Toy with Deno

For some reason I've been thinking about go links , which are really just a fancy word for link shorteners. They're useful at larger companies for providing static, easy-to-remember URLs that can take employees directly to pages for benefits explanations, requesting time-off, internal documentation and all sorts of things. Some companies go the extra mile and make these links available on…

OpenAI Charges by the Minute, So Make the Minutes Shorter

Want to make OpenAI transcriptions faster and cheaper? Just speed up your audio. I mean that very literally. Run your audio through ffmpeg at 2x or 3x before transcribing it. You’ll spend fewer tokens and less time waiting with almost no drop in transcription quality. That’s it! Here’s a script combining of all my favorite little toys and tricks to get the job. You’ll need yt-dlp , ffmpeg and llm…

What It Takes to Be a Good Engineering Manager

There is no shortage of opinions on this topic. The most honest answer is probably “it depends” but that’s also the least helpful. After 4.5 years leading multiple engineering teams, here’s my single-sentence answer to what makes a great manager: A good manager balances high empathy with high expectations and knows when to pull which lever. High expectations without empathy might “succeed” but at…

Exploring phonics with OpenAI

As a child of the 80s and 90s, I have the vaguest memory of Hooked on Phonics commercials on television. More specifically their catchphrase "hooked on phonics worked for me!" Reconciling this message in the D.A.R.E era felt like mixed-messaging. Do you or don't you want me hooked on things? Today I was reminded of this musical sign-off—for Hooked on Phonics, not D.A.R.E—after an introductory…

Future-proofing my blog for an AI audience

There is nothing more meta than blogging about your blog, but I had to start somewhere after a six-month hiatus. Let's cut to the chase. I've been thinking a lot about LLMs and llmstxt.org in particular. Although LLMs are pretty darn good at reading HTML and parsing meaning between the brackets, it still seems to do best when the source is as close to plain-text as possible. So I made a few…

AGI, elevators, and other thoughts I didn’t mean to publish

Note : I accidentally published this before it was ready! I decided to tweak the typos, remove a couple terrible fragments and otherwise leave it as-is. Ideas have always been cheap; it's the execution that's the multiplier . In the AI world we're hurtling toward, which is driving down the cost of execution, I guess that means ideas are more devalued than ever? Cheaper still than an idea is an…

Kagi, Orion and Gopher

The last week of the year is a time for rest and reflection. During that downtime, I decided to try Kagi and Orion and spent more time than I should have setting up a Gopher site, just for kicks. Kagi & Orion Kagi is a paid search engine and Orion is a privacy-minded browser they built on Webkit —not Blink !—exclusively for macOS, at least for now. Everything about those choices sounds like…

TIL there are Apple-specific Samba server configuration settings

I've been having fun with Raspberry Pis lately. Besides my solar-powered website project, I've been playing with making tiny servers and hiding them around my apartment. To what end, I'm uncertain. Already I can see myself falling into some kind of digital "Ideal Palace" obsession like Ferdinand Cheval —little computers in my garden, my books, and other hidden nooks-and-crannies, connected to my…

Solar Pi

This weekend I cobbled together all the pieces to debut a truly MVP version of what I'm dubbing Solar Pi : https://solar.mandis.dev It's a solar-powered website! Please give it a spin. There's not a lot there at the moment. It's quite meta, mostly reporting on how it's doing, the current weather and speculating about how well it's going to fare over the coming week. You might be wondering where…

Using Email and Val Town to Draft Blog Posts

Lately I've been playing around with Val Town . Their pitch is something like "If AWS Lambdas were fun" and—despite being unable to articulate what that even means —I have to chuckle and nod. It's a great product that I've really enjoyed using the past few weeks. Two things in particular have been great about it: Free OpenAI access . It's already pretty cheap to play around with LLMs on most…

Leap Years, Lost Days, and Coding Calendars: A JavaScript Adventure

Dates are hard and JavaScript is odd. Two universal truths. In belated honor of 2024 being a leap year, here's a story about how I learned 2011 was not a leap year, ISO 8601, proleptic Gregorian calendars and forking Node. To belatedly commemorate the leap year of 2024, here is a story about how I discovered of 2011 wasn't a leap year, dove into the intricacies of ISO 8601, the concept of…

ZimaBoards, VisiData and disk space

A few months ago I bought a ZimaBoard to tinker around with. I'd down-sized greatly moving to New York last year and pretty much none of my tiny computers made the cut. I was in the market for a headless little something or another to stick under my bed, shell into once in a while, host tiny projects on and run some opinionated backup scripts. My internal jury is still out on CasaOS , but I don't…