Arduino binary USB keyboard

I don’t know many (or any) people who think of characters and words in binary, but that might just be a limitation on my end. If you prefer binary, maybe this is something for you. If you just want to geek out, you’re welcome to stay here too. Using a 2-button macro-keyboard and some Arduino code, you can tap in binary and have the keyboard enter ASCII characters. View on YouTube

Arduino binary USB keyboard »

Standalone MozCast weather report display with ESP32

I have -too many, err- some extra ESP32 boards so I thought it would be fun to make a small weather display for the SEO weather. The obvious choice is to use MozCast. This is Moz’s unique interpretation of how Google’s search results change. This doesn’t reflect what Google does in its algorithms, but it’s a number for the weather, so why not. It’s hopefully obvious that this does not represent a recommendation of any particular SEO tool.

Standalone MozCast weather report display with ESP32 »

A collection of SMD switches

Who doesn’t love a good button? Click click click, so satisfying. In the search for SMD switches / buttons, I thought I’d just buy some of “all” and try them out. I realize there are many more, this is just what I found browsing Aliexpress. This doc is mostly for me, but I’ll probably spent way too much time on it, so I might as well put it up. Criteria (more or less)

A collection of SMD switches »

Optimized routing for Zwift's Makuri

Zwift recently released a new set of routes on a made-up island called Makuri. Different from some of the other maps, this one has a ton of cross-roads, and there’s a lot to see. It’s pretty. So, of course, instead of cycling there, I thought it would be a fun exercise to find the shortest path that lets you see everything at least once. Without further ado, here’s the optimal path:

Optimized routing for Zwift's Makuri »

Boot, connect to wifi, server requests in under 1 second with ESP-01

Making a hardware button that connects to wifi and sends a request off to a server is possible using Arduino. Light switches are (almost) immediate – but simple wifi switches easily take 8-10 seconds to connect & switch. How do you get that time down? Here’s my approach. Measure end-to-end - what’s the default time? Is it really that bad, or just sometimes bad? Split into parts Measure the parts Determine which parts should be optimized, and try options Combine the best options Debug why it doesn’t work and try again The computer we’re using to run on is an ESP8266, model ESP-01.

Boot, connect to wifi, server requests in under 1 second with ESP-01 »

Some hosting cleanups

Collection of random things that ended up needing to be cleaned up. Redirect “popular” pages from Search 404’ing Search Console, Performance report, max timeframe Export to Google Sheets Copy top N (your pick) URLs to clipboard Open Screaming Frog - the best SEO site crawler Mode -> List Upload -> Paste … oops Create index.html with the following content: <html><head><script type="text/javascript"> document.location = "https://johnmu.com/"; </script> </head><body><h1>Moved</h1></body></html> <!

Some hosting cleanups »

An update on John's blog

It’s May 2021, time for a new site, right? Thanks for dropping by! If you’re curious, I have a bit about the site written up here. I thought my blog had gotten a bit stale, so I might as well make it completely static. Then, in putting together the static version of the site, I ended up writing a bunch of new posts. … and also realized that there were various other things hangout around which would be nice to include.

An update on John's blog »

Basic QMK custom keyboard (with Ubuntu, Arduino Pro Micro)

After getting QMK to work, I thought it would be useful to document how I got it to work. This is starting from zero, using a Ubuntu live booting USB drive. Hardware I’m using a basic Pro Micro dev board. It uses the ATMEGA 32u4, and supports USB natively, which is what we need. When getting these, make sure to get Micro-USB (otherwise you have the chonky mini-USB), and the 5V/16MHz version.

Basic QMK custom keyboard (with Ubuntu, Arduino Pro Micro) »

Bots that impersonate Googlebot

Anyone can act like a bot just by using the Googlebot useragent in a request. Sometimes crawlers do that to see what other bots might see. Sometimes it’s to circumvent robots.txt directives that apply to them, but not to Googlebot. Sometimes people hope to get a glimpse at cloaking. Whatever the reason, these kinds of requests can be annoying since they make log file analysis much harder. Motivation for this excursion:

Bots that impersonate Googlebot »

Privacy-preserving embedding of Tweets

Embedding tweets with the usual setup is a bit annoying. You end up using Twitter’s JavaScript, which takes a while to render the content. You probably have to do the GDPR dance for your users too (I honestly don’t know the details), since it’s possible they include cookies / trackers, etc. I made a “simpler” version which uses a preprocessor and Hugo Shortcodes to embed tweets as images. It’s easy to use while writing, the preprocessor generates images using Chrome / Puppeteer as needed.

Privacy-preserving embedding of Tweets »