The toolchain I’ve constructed to publish my podcast quit working after a recent upgrade I’ve been trying to get it working.
Unfortunately, while I’ve been using ruby since 2001, I’ve never had to figure out how rubygems work. I program for a hobby. It’s not my day job. For what I do, I’ve always been able to use the most recent version. I don’t even know how to use Bundler. (As a first step, I should try it in a single script.)
I did figure out that I could uninstall 4.0, but I might need something that depends on it. So I need to learn how to specify a particular version in my own scripts.
I had a whole bunch of problems break my podcast all at once, and I’m slowly figuring them out, one by one.
One of the problems is keeping both ruby 2.7.4 and 3.0.2 from building:
BUILD FAILED (Mac OS X 10.13.6 using ruby-build 20211109)
Inspect or clean up the working tree at /var/folders/2h/930zdx_d2dv8l6tg8m_kw_fh0000gn/T/ruby-build.20211114160436.20979.mnlPJV
Results logged to /var/folders/2h/930zdx_d2dv8l6tg8m_kw_fh0000gn/T/ruby-build.20211114160436.20979.log
Last 10 log lines:
clang -I. -Iinclude -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/Users/luke/.rbenv/versions/2.7.4/openssl/ssl\"" -DENGINESDIR="\"/Users/luke/.rbenv/versions/2.7.4/openssl/lib/engines-1.1\"" -D_REENTRANT -DZLIB -DZLIB_SHARED -DNDEBUG -I/Users/luke/.rbenv/versions/2.7.4/include -MMD -MF crypto/rand/randfile.d.tmp -MT crypto/rand/randfile.o -c -o crypto/rand/randfile.o crypto/rand/randfile.c
crypto/rand/rand_unix.c:385:47: error: use of undeclared identifier 'kCCSuccess'
if (CCRandomGenerateBytes(buf, buflen) == kCCSuccess)
2 errors generated.
make: *** [Makefile:4637: crypto/rand/rand_unix.o] Error 1
Because I’m the next thing to a Normie, I never discover a new problem. This one has been observed since September (or earlier). That post says “the OpenSSL fellows do not develop on MacOS.” Fortunately, some people do. But I have to learn how to use the workarounds.
A couple of weeks (months?) ago, my podcast feed quit including a publication date, and I couldn’t figure it until just the other day. The problem was that my publication tags looked like this:
<pubDate>Sun, 05 Apr 2015 19:18:25 AKDT</pubDate>
but that won’t validate. It never has, but something must have changed in Apple land (either on their servers, or in iTunes) to make the times quit working.
The problem is that AKDT isn’t a RFC-822 compliant time zone. (It assumes that time zones in North America have names that are 3-character strings.) Instead you have to use ‘-0800’. (AKST isn’t compliant either, so you have to use ‘-0900’.)
I found this program called Cathode that does an incredible job of recreating the experience of writing code on a CRT display, ca. 1980–83. Many was the hour I logged on the Lear-Sigler ADM-3A — in those days time was logged, so you could pay for it. That was incredibly unfair since the I/O (for l’users) was throttled down to 4800 baud.
Check it out. Then give it up, before the ergonomics make you blind.
As a sort of colophon, the code I’m editing here is genuine K&R C, from the Old Testament. There are two anachronisms:
I’m using vi to edit it, but in the day I was busy getting all carpal with emacs. I had no choice here: there might be an Emacs on my system, but if there is, I can’t remember how to get out.
I wrote this code in 1992, by which time we used terminal emulators like Kermit on PCs, instead of real terminals. However, it was a recreation of something I wrote in about 1983 to translate English into “Klingonese.” (Not the stuff used by Star Trek fans. That came later. I’m talking STA KANG, PUSHJ JRST.)
To be fair, I don’t think I ever wrote C on the ADM-3A, or even a VT-100. I don’t think the DECSystem-20 even had a C compiler. All my C was on the VAX, which had HP-2621A terminals.
I ran across this nice reflection on the vim editor by someone who switched 18 months ago. In my own case, it was about 18 years. I’d been an emacs user forever, and it was just killing me (carpal tunnel, tennis elbow, and who-knows-what). So I made the switch to vi (and, soon enough, vim). It took awhile to get used to modes, but the alternative is playing Twister with my ring and pinky fingers.