2024
In memoriam P.S.
A friend of mine died recently. I didn't know him as well as I would have liked.
So I made this and shared it on SoundCloud.
Tags: sound
Date created: 2024-09-13
Mobile computing (draft)
I've spent a few days doing a deep dive into setting up the Raspberry Pi Zero W to use with my iPad. I haven't owned a laptop for a few years, and I want a mobile console environment to program in. My 6th gen iPad is too locked down for some things, but will work fine as a terminal with a bluetooth keyboard.
Things I want to be able to do
- Programming exercises in whatever languages strike my fancy.
- I've been wanting to learn Lisp, Forth, Assembler, Erlang, Smalltalk etc for ages
- I've been wanting to work through SICP and other books for ages
- All languages are readily available on Linux
- I can go back and forth between reading on the iPad and doing exercises
- Programming the Shbobo Shnth
- a lovely portable synth that can be programmed over usb
- the iPad can't connect directly, but the pi 0 can
Desiderata
- reliable
- works without internet connectivity
- minimal fuss -- should work the same way
- powered headless from iPad or Mac (battery or wall)
- plugged into monitor and keyboard
- use current configuration standards (systemd, Network Manager. When in Rome...)
I installed Raspberry Pi OS Lite (bookworm) on the pi without any fuss, but then had to spend a few days getting up to speed with the differences from other distributions I'm more familiar with, and the changes from previous versions: systemd, Network Manager, changes to boot filesystem.
There's no shortage of online information. Unfortunately, most of it is outdated, and much of it is of the quick fix -- "Here run this script and you don't have to understand anything" variety. That's fine for an appliance, but not when I want a flexible computing setup.
I successfully set it up as an ethernet gadget, following this info. I liked the idea of a single cable connection. But I couldn't get it to work unless I was powering my (6th gen) iPad through the CCK. It probably works better with newer iPads with their USB C connectors. And using the pi as an ethernet gadget prevents me using the USB port for anything else, so although this is cool, I've abandoned it.
I've setup network manager to try to connect to one of my two home wifi networks (they used to be bridged, but are now separate), and if that fails, to start up an adhoc network.
I found this excellent writeup, which uses Bluetooth PAN to connect the pi to the ipad. This is great; I can power the pi with a slim battery, and the usb port is free. But so far I haven't found out how to set it up to work with Network Manager, so it uses separate systemd startup files. Connecting over pan means I can use the internet from the pi (ie to download some missing software). Apparently this is quite insecure. Oh, well.
Software
On the Pi, mosh (like ssh), tmux and Vim (which I've been using Vim for years), rclone (dropbox syncing)
Mosh is recommended because the iPad will aggressively suspend background apps. Mosh allows it to reconnect where it left off so that this isn't noticeable.
Tmux is great, allowing multiple virtual terminals over a single connection. Particularly useful to split the window between Vim and a shell prompt.
Vim is my text environment. I have over a thousand pages of notes in VimWiki.
rclone is a handy utility for on demand dropbox folder syncing. When I have an internet connection I can pull and push any folders from/to Dropbox.
On the iPad, Termius is the terminal I'm using. It supports mosh. There is a paid version, but the free version meets my needs.
Blink is recommended by some, but I don't do subscription software. It's open source, so I might try to compile it myself -- though that's a different project.
Date created: 2024-11-21
Here we go again
So, something about Christmas leads a man's heart to diy blogging engines. Seriously. I think it's a chunk of time off, though as I'm now retired and have been for a few months, that doesn't really make sense?
I never did complete a number of features I'd planned when I last worked on it and despite my good intentions I didn't do any retrospective posts.
Over the last week, I've been rewriting my Nodejs system in Ruby, a language I played with years (and years) ago. It's a very satisfying language, and I don't have to deal with callbacks or promises or async/await stuff -- all of which is probably excellent for high performance sites, but complete overkill for this little blog of mine.
I've cheated a bit by doing some retrospective posting-- the pieces were all written when it says they were, just never posted. I've cleaned up the typos and added links where there were placeholders in the original text.
I found a post about a reddit article about programmers and management. The quotes and my comments still ring true to me, and I take some pleasure from the fact that I was a 40 and 50 and 60 year old programmer.
And as I look back on things I wrote 15 years ago, I'm very glad of the wayback machine and pinboard .
Tags: blog