Blog

The Death of iTunes

So, I was listening to my last playlist, and realized I don't own one of the albums, so I figure I'll grab it off iTunes…

No iTunes app. No "show in iTune Store" action on the album page (Share has since shown back up, because Apple Music is non-deterministic). There's an iTunes Store on my phone, but I want to download it here on my desktop. Fine, where's the store page. It's… missing. After some duck searches, turns out you have to open Apple Music Preferences, check "iTunes Store" in a little grid. I didn't deselect this, it came deselected, meaning NOBODY is going to see it.

Once that's done, Store is back in the sidebar, and clicking it shows the good old storefront, account links, etc. But how do you search? Search box just shows Apple Music (streaming). WAAAAAY up in the top-right corner is a selector for Songs or Store. Now I'm on the album. And it's $8.99. Yeah, there's no DRM, but you know, I can get this elsewhere.

So I went over to 'zon and bought a used CD (a little cheaper), because I can rip that lossless. At least they want my money.

And like that, with no announcement, Apple killed their store.

Machines That Don't Work Thursday Music

We had some good machines
But they don't work no more
I loved you once
Don't love you anymore
—Shriekback, Faded Flowers

Rick & Morty Season 5

Up to now, the long long wait for R&M S05 has been not worth it at all. I'm not quite at /r/rickandmorty levels of hate, but it's been pretty disappointing, like all the crap filler eps of past seasons put in one season. But E08 finally redeemed itself.

  1. "Mort Dinner Rick Andre": Good villain, plot's a tedious farce.
  2. "Mortyplicity": Random nonsense ep, without the fun range of activities of Interdimensional Cable.
  3. "A Rickconvenient Mort": I love Captain Planet and parodies of him, but both Robot Chicken and Don Cheadle already did this better, Planetina is squicky, Rick & Summer's interstellar fuck tour is gross.
  4. "Rickdependence Spray": Giant sperm, not too bad. There's some SF short story I read where the first male interstellar astronauts turn into giant sperm and impregnate a planet (the female astronauts are unaffected?), and this is less nonsense than that.
  5. "Amortycan Grickfitti": Hellraiser parody doesn't understand the point of Hellraiser (in Clive Barker's book & the first movie, they aren't "bad is good baby!", they're "we've done all the good stuff forever, we can only feel anything from the bad now"); new kid's crap, but AI car gets to do some weird stuff. Like 5-10 minutes of good stuff in the ep.
  6. "Rick & Morty's Thanksploitation Spectacular": Great premise, but Thanksgiving isn't for 3 months, assholes. Totally misses the mood.
  7. "Gotron Jerrysis Rickvangelion": Too much Voltron, not enough NGE. They should've had Rick as Gendo, Morty as whiny Shinji, Summer as Asuka, Beth clones as Rei & the Mommy robot, it would've made sense and been deep. Instead it's just robot ferrets & bugs.
  8. "Rickternal Friendshine of the Spotless Mort": First actual good episode in a very long time. Bird Person's memories of enthusiastic young adult Rick are hilarious, and kind of terrible in the way, you know, my own might be, or yours.

Mitrasphere Adventurers Guild

Just a minor note, the latest update to Mitrasphere has added an Adventurer's Guild, as seen in every cliché but amusing fantasy anime & game. So much better than just face-grinding mobs, there's a task board of mobs to face-grind (and other tasks sometimes, probably not including walking dogs).

I don't necessarily play a lot every day, but it's definitely building into a longer-term game.

What I'm Watching: Fear Street

So, I'd heard enough chatter about Fear Street to wtach it. New slasher flicks are rare enough. What I didn't realize is these are based on R.L.Stine books, which I have never read (obviously). So for the first two movies, 1994 and 1978, I was baffled. Are these comedy horror? There's almost no jokes; only in the end of the third film does it get funny. But there's barely anything more than a few jump scares and bad fake blood in dark sets. While there's some borderline teenage sex and drugs, it's PG-13 even if it says "R".

The first one's not bad at 1994 period, but I assure you Nine Inch Nails was not played on mall PAs, and the black girl dating a very generic-brand white cheerleader would not have passed without comment in the time, nor would Nurse Betty (who I'll note is a straight man playing a gay crossdresser/transwoman like Klinger, because there were apparently no gay/trans actors to take the role? This ought to be as taboo as putting honkies in blackface). If you're gonna do period, you might at least milk the period's tail-end racism and homophobia for some drama.

The unstoppable killers each have some unique character, but we never really find out much about several of them, and I'd much rather hear that. Long flashbacks to why they were chosen and what they did; instead we get a few quick-cut repeats of the same crimes. Everyone's dumb in this. There's one gross-out kill that actually startled me, telegraphed for like a minute and I still didn't think they'd do it. But otherwise it's the dullest, dumbest thing I've seen, there's a half-assed explanation for the killers, a story about a witch which is driven into the ground so hard that it's obviously bait.

After credits and at the start of each segment, there's a tediously long spoiler and recap, as if they weren't meant to come out at the same time. According to wiki, they started development in 2015, wrapped shooting in 2019(!), and then it took until this month to release them.

The summer camp story in 1978 is much better, focusing on "Ziggy" the tomboy redhead, her square sister, a punk rock girl, stoner dude, and about 30 absolutely indistinguishable honkie automaton clones blundering about. The problem is one of those is the killer, and another is… another problem… and I couldn't pick them out of a lineup. But Ziggy and punk rock girl are pretty tough, the party sticks together until they stupidly split up and then terrible things happen, but we get another different bullshit explanation for the killers.

Third film is two films. 1666 fills in the Pilgrim Times theme park setting, but does the American Horror Story hack trick of reusing actors from the present as their ancestors, except Deena inexplicably plays someone who won't have any descendants, least of all her. This is not The VVitch. This is tedious RenFaire play-acting with pig shit, co-ed dances in the woods, and an old wise woman with a copy of the Necronomicon. OH NO don't read from the scary magic book, not-Deena, we don't know what the consequences are. Then it's back to reenacting Salem but with actual black magic so someone really did need to be hung & burned.

The final half, the comedy writers finally got their turn, and it becomes goofing off in a mall lit with blacklights, shooting super-soakers at killers, a lot of Scooby Doo hijinks, and an ending that doesn't really make sense, permanently stop the killers, or provide any closure. But everyone who lives gets a cameo so that's nice.

There's a couple moments where R.L.Stine's books are used as props in the show, and not respectfully. Stephen King is mentioned much more seriously.

These aren't even as good as the worst Friday the 13th movies, let alone any actual horror movie, but I was amused enough to stay awake thru three movies. If you're normally scared of horror movies, these are like tiny baby stories which won't upset you much.

★★½☆☆

FreePascal Building

I went to do a little code maintenance on a couple utils I'd written in FreePascal, and they wouldn't build. For a couple years, FPC just didn't work on 64-bit Mac OS, but they finally fixed that. Current fpc 3.2.0 is in MacPorts, I'm not sure what the state of Lazarus is, I quit using it. But the core Pascal is fine for many tasks, and I may do some things in CP/M Pascal when I get my SpecNext (longest wait ever until fall/whenever).

Anyway, the error I got was ld: library not found for -lc and nobody on the Internet has ever posted with that error, that I can find.

And eventually I tracked it down to the SDK not being linked at all. So here's an updated fpc.cfg which goes in your $PPC_CONFIG_PATH, note the DARWIN section. Also that's x86_64 only, I need to add an ARM64 branch at some point.

#IFDEF DEBUG
    #WRITE DEBUG
    -gl
    -Crtoi
#ELSE
    # Strip debuginfo
    -O2
    -Xs
#ENDIF

#IFDEF DARWIN
    #WRITE DARWIN
    # use pipes instead of temporary files for assembling
    -ap
    #DEFINE CPUX86_64
    -Px86_64
    -FD/Library/Developer/CommandLineTools/usr/bin
    -XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
#ENDIF

#IFDEF OBJFPC
    #WRITE OBJFPC
    -Mobjfpc
#ELSE
    #WRITE FPC
    -Mfpc
#ENDIF

# use ansistrings
-Sh

# stop after warnings
-Sew

# don't show Hint: (5023) Unit "X" not used in Y
-vm5023
# don't show Hint: (5024) Parameter "name" not used
-vm5024

#-Fl/usr/X11/lib
#-Fl/usr/local/lib

-Fu/opt/local/libexec/fpc/lib/fpc/$fpcversion/units/$fpctarget
-Fu/opt/local/libexec/fpc/lib/fpc/$fpcversion/units/$fpctarget/*

And a quick hello world/Unicode tester:

{ hello.pas
    Copyright ©2017 by Mark Damon Hughes. Do what thou wilt.
}

program hello;

uses crt, sysutils;

var
    name: utf8string;
    c: widechar;
    i: integer;
begin
    write('What is your name? ');
    readln(name);
    writeln('Hello, ', name, ' from code page ', stringCodePage(name), '!');
    for i := 1 to length(name) do begin
        c := name[i];
        writeln(i, ': ', c, '(', ord(c), ')');
    end;
    readkey();
end.

fpc -dDEBUG hello.pas produces a couple dozen warnings like: ld: warning: object file (/opt/local/libexec/fpc/lib/fpc/3.2.0/units/x86_64-darwin/rtl/baseunix.o) was built for newer macOS version (11.0) than being linked (10.8) and I'd love it if someone could tell me how to get FPC to tell ld to make that STFU.

But it works:

% ./hello
What is your name? Mark
Hello, Mark from code page 65001!
1: M(77)
2: a(97)
3: r(114)
4: k(107)
5: �(239)
6: �(163)
7: �(191)

Script the Scheme REPL with Expect

Routinely I want to open the Chez Scheme REPL in my code dir and load my standard libraries; I've been copy-pasting from a Stickies to get my setup each time, because you can't easily set a common prelude from command line. Finally solved that.

In ~/bin/scheme-repl, I put:

#!/usr/bin/env expect -f
log_user 0
cd "$env(HOME)/Code/CodeChez"
spawn scheme
expect "> "
send -- "(import (chezscheme) (marklib) (marklib-os)"
send -- "  (only (srfi s1 lists) delete drop-right last)"
send -- "  (only (srfi s13 strings) string-delete string-index string-index-right string-join string-tokenize) )\n"
log_user 1
interact

(make sure to change the path to wherever you keep your Scheme scripts, and whatever imports you like)

Added alias s=scheme-repl to my .zshrc

Now I can just hit one letter for shortcut:

% s
(import (chezscheme) (marklib) (marklib-os)  (only (srfi s1 lists) delete drop
-right last)  (only (srfi s13 strings) string-delete string-index string-index-r
ight string-join string-tokenize) )
> (os-path 'pwd)
"/Users/mdh/Code/CodeChez"
>

You can sort of do the same thing with a Chez boot file, but I wasn't able to get it to load libraries from thunderchez, even with --libdirs flag, so screw it.

I'd forgotten everything I ever knew about expect, and the only resources online are exact copies of the same "log into ssh with expect!" (which you should never do! Set up SSH keys for Cthulhu's sake!) tutorial over and over again, so had to read the man page to make even this trivial thing work.