I love it when plans come together! Since last newsletter, pretty much everything has arrived.
Behold, my luxury touchpad:
with a glorious 15 by 10 pixel resolution, refreshing as fast as USB allows (~160 Hz).
While this prototype suffers from a low signal-to-noise ratio (press hard for best results), I suspect it’ll fix right up with some analog filtering. See the demo video on the project page for more details.
Of course, the big project from the past few months has been the split ortholinear bluetooth keyboard. The first revision PCBs arrived late June and, shockingly, the design seems to work: I can program the microcontroller, transmit over bluetooth, and use the USB-C port for both communication and charging the bare lithium polymer cells. (Which haven’t yet puffed up into explosive marshmallows; a sure sign that my battery protection circuit is spectacular.)
I’m keeping my keyboard physical design under wraps for now (spoiler: it is very thin), but in the meantime please enjoy this super-comprehensive packaging job from my battery supplier:
(Again, hit me up if you need a few ~100 mAh 80mm x 13mm x 2mm bare lithium polymer cells…)
My plan is to get a single (5x5 key) board working first, then board-to-board wireless communication. I’ll skip a hardcoded left + right system design (boring!) and jump straight into some kind of dynamic mesh networking where boards can join, leave, and be remapped on the fly. I mean, I have 7 assembled prototype PCBs, why not combine them into a 175-key masterpiece?
After three months of AirBNBs + hotels, I’ve finally leased a proper apartment here in Taipei. Earlier today, a very nice man came by with a very nice fiber optic cable and now I can ping google.com in 3ms. (100M down / 40M up for $30/month; upgrades to 300M/100M, 500M/250M, or 1G/600M in $10/month increments — oh Comcast, I don’t miss you at all.)
With this kind of latency it’s (theoretically) feasible to work directly on a cloud server for all of my development needs.
This is something I’ve been thinking about a lot recently, mostly in 3 second bursts as Emacs desperately garbage collects after a Language Server Protocol conversation.
I mean, yeah, aesthetically I’m horrified that a 1970’s text editor running on a 1.7 GHz laptop with 8 GB of RAM struggles to keep up with my typing, but I can’t reasonably write my own editor until the keyboard is done!
Paying Jeff Bezos $2/hr for a 64 core, 128 GB of RAM machine seems like a reasonable interim fix. (I’m ruling out “buy a desktop computer” since I tried that six months ago and am now paying $0.27/hr for it to idle in a storage unit.)
Have any of y'all tried working exclusively on a remote machine? I’ve done a fair bit of typing across SSH, but it never felt comfortable.
I’ve heard good things about VSCode Remote but that feels like a leaky abstraction for my use case — I want the window manager on the remote so I can do everything there (IDEs, CAD tools, surf the web, watch YouTube, etc.) and never get confused about whether my windows and files are local or remote — they’re always all remote!
There are two parts to this problem:
To the first question, I borrowed a Raspberry Pi 4 to test as a “thin client”. (No matter where in the world you are, you can befriend a nerd with an unused Raspberry Pi in their drawer.)
Unfortunately, it doesn’t look promising:
(1 GB RAM, clean install of Raspberry Pi OS Lite 2020-05-27 + XFCE4 desktop)
So, despite the camaraderie I feel with the Pi folks from our shared misunderstanding of the USB-C spec, I’ve got to look elsewhere for suitable thin client hardware.
Is a $400 Linux/Windows PC my best option here? A Chromecast, PlayStation, or Apple TV?
I have unlimited compute 3ms away, I just need to attach it to a mouse, keyboard, and TV — shouldn’t that be doable for about the same price as a standalone virtual reality headset?
As for the software stack, well, Wikipedia lists a lot of options. If you want to follow along with the gory details, I’ve documented a richer problem statement and am recording the technical details here.
In the mean time, definitely let me know if you’ve got ideas or experience about this!
“In the 21st century, the main question in American social life is not ‘how do we make that happen?’ but ‘how do we get management to take our side?’”
On-the-money critique of iPhone “incoming call” UI.
Chinese app response to Coronavirus (Note publication date: Apr 5)
Why not go skiing in quarantine?
Ben Kuhn has a wonderful guide on optimizing your home network to stop your video calls from stuttering and, perhaps not coincidentally, also thinks wireless is a trap.
“I was successful in killing my dept’s woke statement on recent social unrest.”
Why does DARPA work well at producing transformative R&D?
“The pressure for an acceptable, clear, and explicit reason for doing things is merely a social norm common in Western populations, which creates the illusion (among Westerners) that humans generally do things based on explicit causal models and clear reasons. They often do not.”
“if riots happen because of deep structural injustices, what explains the European soccer riot?”
On the Seattle Autonomous Zone: “The mayor and cops have just made a stirring case against themselves, in a self-destructive performance which would seem like amateurish satire if it had appeared in fiction.”