Blog

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
     DEBUG
    -gl
    -Crtoi

    # Strip debuginfo
    -O2
    -Xs


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


 OBJFPC
     OBJFPC
    -Mobjfpc

     FPC
    -Mfpc


# 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.

What I'm Playing: Mitrasphere

Another of Crunchyroll's translated gachapon games. This one's: All PVE, mostly co-op but you can solo most things, casual/free-to-play friendly (no PVP rankings to keep up with!). The art's very cute anime paper-doll style (like Another Eden, or Crunchyroll's previous, DanMachi Memoria Freese), the music's lovely. You run a single character, the gacha is just for equipment. You use a lot of equipment.

Most of the gameplay loop is:

  • Go to the next quest zone, click on whoever has (!) over their head (mostly Matilda), go thru a series of Normal (easy) story & fight stages. You can pretty much faceroll or hit Auto on these if you even slightly try to keep up your gear. If you see someone with (?) over their head, you haven't unlocked their quest yet.
  • Go to Events, there's currently (until 07-11) Canary Eggs (basic mid-tier armor), Pehn (progressively harder werewolf boss fight), Job Coaching (you can switch jobs any time), Skill Training ("impossible" target dummies, for seeing how your build works). At any time there may also be Guerilla (1 hour, 3x a day, progress thru a short boss grind to get gear & upgrade gems), and a Weekly mission (same thing, different gear & upgrades). WHEW!
  • Menu brings up your char, check the "Panel Missions" which are long-term goals, "Missions" which are daily and progression completion rewards, and treasure chest.
  • Now look at your Equipment & Upgrades. Limit break duplicates, upgrade gear levels (uses seeds/gems you'll be spending the rest of your life grinding), slot anything that's better than current, auto-slot "support" gear (just adds stats, but your old levelled gear isn't useless!). The game will instruct you once, so pay attention. I'm constantly fiddling with new gear to add another few points to Power.
  • Repeat forever. And ever. Uh, Screen Time reports I've now played 28h55m, and it's only been out 3 days. Some of that's idle-grinding, but uh, yeah. This ate my free time, sleep, and probably cut into useful work time.

Once you've finished the main quest, which currently ends at a bit of a downer cliffhanger (beachcomber) on Edol Outskirts Night (huh, very much like Another Eden dumping you alone on a beach mid-game…), go back to the start and do Hard mode. This requires you to grind a lot and get your "Power" (total gear & stat scores) up, so I'm currently only about halfway thru Hard mode. Once you get thru Hard mode in a zone, you can do Expert… and currently these just demolish me even in a good co-op group. Another week and I should be capable of clearing Expert.

The boss fights are fun, all but expert are tough but doable with a smart group, or a clusterfuck with a bad group. For fuck's sake, when you're in Wave 1/2 of a boss fight, sitting at the "lobby" (10 HP monster that doesn't attack), WAIT FOR FIVE PLAYERS! Half the time, some jackass pokes the lobby as soon as they get in, and then me and them get murdered by the boss before anyone else can join. OH SWEET CTHULHU I've never been so angry at some people. But for every one of those, there's a group where everyone does their job, the healer heals, the tank holds aggro, the rest of us murder the boss, and there's that sense of "this is a really good game!" It's like every MMO wants to be in hours, but this does it in minutes. Even some of the almost-clusterfucks are fun, where there's 1 or 2 of us last-man-standing, the boss nearly dead, and we flick between heal, attack, and just barely squeak out a victory.

Side tasks:

  • Searching: See at the bottom of the screen if you have 0 to 5/5 sparklies you can collect, they're scattered in various overworld levels, they give you currency for the in-world shop (no gold here, they trade in pearls and souls!). There's not much more point to exploring the small levels, jumping and walking up the side pathways is pointless, but they're pretty.
  • Essence of Battle: Complete each of the jobs in Job Training and you unlock this, a leaderboard where you grind bosses to get trivial stat upgrades (they do add up to something, but not much). It's mostly meters you can move to 100%, which we all love to do!
  • Social: World chat's like any MMO public chat. Sometimes informative, sometimes nonsense memes. You can make private rooms, join pre-made groups for taking on hard bosses.
  • Fashion: You keep the appearance of every gear you've ever taken, and can use it as a cosmetic item over whatever you're actually wearing. There's only 2 genders (but you can switch if you don't like your first choice), the face & hair options aren't that much initially, but you can buy new options from the in-world merchant! By rank 10 or so everyone looks pretty distinct, instead of just random pickup gear.
  • Spreadsheets: I'm currently working on a big zone spreadsheet just so I can figure out where to go next, where to grind what I need. Will update this link as I finish Hard mode: Mitrasphere

Almost all of this is perfect for me. I can stat-wonk and grind all day on slightly different gear, but I like having my own unique protagonist. I would like more NPCs for personal stories; this has about 6 NPCs who matter, and they have only a couple small side-quests or personal stories to tell. Another Eden was crazy with hundreds of characters you have to level, find the one spot in the world where their personal quests trigger, etc., I'm paralyzed by choice in it; DanMachi was much more playable where the story-mode only has about two dozen characters, but there's equally hundreds of in-game character variants you have to level, so that was annoying. A couple dozen NPCs with stories, please. No more.

There's a big content update coming on 07-05, so now is a good time to get started, then see the update as soon as you finish main quest.

What I'm Watching: Godzilla Singular Point

Netflix animation mashing up Godzilla, Jet Jaguar (!), Scooby Doo (Mei is such a Velma it's… whoo; and Barbell is Freddy, and if the other nerd isn't Shaggy I dunno who is). "Haunted" house, weird signals that sure sound a lot like the Mothra fairies, renegade electricians, giant flying monsters, and it gets more so every episode. I might do an episode analysis later, but if you like what I like, just watch it right now.

Rick & Morty S5

So, Nimbus. Goddamned Sub-Mariner wrecking homes and, uh, having his own solution to surface cops. So, are cops fish in this? Fish was a cop, so why not… Casual reference to "destroying mermaid puss" from the Ricklantis Mixup episode, which has never made sense since human-top mermaids don't have… anyway.

But what I want to point at is the two visual uses of The Fountain, and Jessica's journey there.

The Fountain is Aronofsky's only great-film-but-badly-edited. Pi and Requiem for a Dream are perfect as they are (tho I'll never watch Requiem again, fuck you, man). But all his other films are kinda trashy. The Fountain should be his best work, but jumping back and forth in time wrecks the message, halfway thru you know where it's all going, just have to wait it out.

If The Fountain was edited correctly, say 3/4 of each story in linear order, and then a coda for each in the same order, with the future part LAST, you might actually follow the character's enlightenment. As it is, I just get drunk and yell at the screen. And that's about how Jessica's enlightenment goes.

SPOILERS










Morty's enemy culture in this is a good development. Like every D&D party picks a fight with some stupid NPCs, and ends up razing their village and getting enemies for life (I know it's not just me, the Knights of the Dinner Table do it all the time… which is maybe a bad sign). The progression from a family of barbarian idiots who don't understand the consequences of a magic door, to medieval civilization built around hating Morty, to increasingly technical and apocalyptic focus on the one horrible thing that keeps happening to them. I want these to keep showing up, tho that's the kind of continuity they don't really do.

It's been a long damned time since S4.

★★★★★

Still Fixing Sublime

Minor notes on customization, all files are in Preferences > Browse Packages.

I fixed Dracula to be a little more pit of utter darkness:

UI: Customize Theme, file is User/Default Dark.sublime-theme:

// Documentation at https://www.sublimetext.com/docs/themes.html
{
    "variables": {
        "base_hue": "black",
        "base_tint": "#99ddff",
        "ui_bg": "#222222",
        "text_fg": "white",
        "sidebar_bg": "#111111",
        "sidebar_row_selected": "#666600",
    },
    "rules": [
    ]
}

UI: Customize Color Scheme, file is User/Dracula.sublime-color-scheme:

// Documentation at https://www.sublimetext.com/docs/color_schemes.html
{
    "variables": {
    },
    "globals": {
        "background": "black",
    },
    "rules": [
    ]
}

And some keys I use, file is User/Default (OSX).sublime-keymap: ^O as Open above is incredibly useful if you write "paren code enter paren open-above tab" over and over. Cmd-Y is lambda λ in a bunch of my editors and iTerm2; using the actual lambda symbol is awkward but cool, so of course I do it.

[
    { "keys": ["ctrl+o"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
    { "keys": ["shift+ctrl+o"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
    { "keys": ["super+y"], "command": "insert", "args": {"characters": "λ"} },
]

Obvious missing feature is piping thru shell. I'm going to tackle that fully later, but for now I just needed to number lines, so added a package Number, containing:

Number/Number.py:

import sublime
import sublime_plugin

def numberLines(s):
    out = []
    i = 0
    for line in s.splitlines():
        i += 1
        out.append("%d. %s" % (i, line))
    return "\n".join(out) + "\n"

class NumberCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        for region in self.view.sel():
            if not region.empty():
                s = self.view.substr(region)
                out = numberLines(s)
                self.view.replace(edit, region, out)

and Number/Default (OSX).sublime-keymap:

[
    { "keys": ["shift+ctrl+n"], "command": "number" }
]

This makes a nice template for doing additional filters. Of course there's no damned examples for the current version, the old samples are missing arguments.

When developing a plugin, you can open the console with ^~ and type view.run_command("number") and see some print statement debugging, which helps.

It's very much more of a "developer's toolkit" than a real editor sometimes. It reminds me a lot of hacking on E/PM in REXX on OS/2, where the entire editor was just a big REXX script and it was trivial to make it circle all search results, or some such. But it's been better for doing my Scheme hacking than anything else so far.

What I'm Watching: Manifest

Just started, dunno how long. They did 3 seasons and cancelled, so now I know I can actually watch the whole thing without 'flix cancelling it on me.

Watched first two eps. Plane flight from Jamaica to NYC vanishes, lands 5.5 years later without time passing inside, nobody mentions Langoliers. They start having auditory hallucinations which lead to saving lives or solving crimes or standing outside at night to stare at a plane, some of them think it's God, others are relentlessly sane. Again nobody bothers to mention Stephen King. The government investigates them. Nobody mentions The Shop, from multiple Stephen King books about traumatized, time-lost psychics investigated by the government like say The Dead Zone or Firestarter.

The writing's nowhere near Stephen King level, but the family dramas are all tightly interconnected, the rather obvious bad guys are rather obvious, it's an enjoyable enough popcorn show ripoff of his books. I could do with less "God" from the stupid, life-disaster NYPD lady who's often the protagonist.

I'm tagging this "horror" but that's really not accurate. They don't have the balls to show anything dark and terrible, this aired on NBC for weak-spined old people who don't have streaming, so a young man in prison is just beaten up a little, not… The girls in a cage are… cared for off-screen, so you don't have to hear what happened. Fake sex is done with lingerie and taffeta sheets, not sweaty people boning just short of real porn. There's a murder… shown only as bloodspatter cut away from the victim.

The amazing world of the future of 2018 from 2013 doesn't seem to phaze anyone, just minor notes that their iPhones don't connect to obsolete 2G towers or long-cancelled phone accounts. Medical research girl's work has gone on without her. Nobody so far has noted that they went from a bright, hopeful America with President Barack Obama, to a war-torn hellhole dystopia under Traitor Tr@mp. If I found out I'd skipped over half of Barry's term and into that shit, I'd be pissed.

★★★½☆

What Are You Doing, iCloud?

I often use Pythonista for automation or just code goofing off on the iPad. And unfortunately, the only ways Apple has allowed to get files into it are:

  1. Download with some other app (Dropbox or Readdle Documents, mostly) and share, one-way into it and no way out like a roach motel, or
  2. Put the file in iCloud, and it "should" sync automatically.

This is 100% an Apple policy problem, #1 demonstrates other apps can use networking just fine.

So on Mac I open iCloud (only in Finder, it's a stupid long path in shell), Pythonista3, try dragging the now-annoying disappearing proxy icon… can't drag it. So up a folder and I can drag THAT into shell.

Now in my CodePy folder, ln -s LONGICLOUDPATH icloud and voila, convenient access. Move my working project in there.

Make changes to a file, look in Pythonista, and it's all good. Make a new file, wait… it never shows up. Finally I open Files app on iPad, see if it's there, and NOW it syncs.

Maybe Pythonista is getting old and missed a notification, I notice the keyboard row isn't coming up, but Apple's incompetent garbage service iCloud/MobileMe/iTools has been failing to sync files for 15 FUCKING YEARS NOW, and I'm goddamned sick and tired of it.

This is why I give Dropbox money every month, because their syncing always works.