Review – The Falcon and the Winter Soldier

2021-04-24 

Loved everything with Sam and Bucky. Especially Sam’s journey, and the stuff with Isaiah Bradley.

Walker was amazing, too. And not that I don’t think he was beyond redemption, but it was rushed. I mean, he teams up easily with the guys who BROKE HIS ARM and took the Cap mantle from him the last episode (though I get some time has passed).

These two storylines seemed to be the most important parts of the show, and received the most attention.

They were almost perfect.

But everything with Sharon and the Flag Smashers (hey, band name!) felt mediocre. At best, shoehorned in. The best guess I’m hearing going around is that the Flag Smasher narrative possibly centered around a pandemic, and well… given the COVID situation, they had to hastily butcher it up into something… incoherent.

But regardless, it was weak. And unfortunately the entire series wrapped it’s overall narrative on that brittle skeleton.

The real MVP, though? The Baron. Give him his own series, please. Just all Zemo all the time. He was the most fun I had with the show. Unfortunately it felt like he was there just to setup a go at the Thunderbolts later, because he had almost no real impact on the story (his butler’s hilarious moment in the finale aside).

That said, looking forward to a second season, if they do it. The title characters made it worth watching, and I’d happily give it another shot with a new, hopefully better constructed story. One that doesn’t get butchered up in editing like this one appears to have been.

Bring on Loki!

⭐⭐⭐

Review – J.R. “Bob” Dobbs and The Church of the SubGenius (2019)

2021-04-19 
PROPAGANDA-FILM-PRAISE-CONTRACT-FULFILLMENT-FINAL2.DOC EXPORT SUCCESS page 1 of 1

As a backer, it took a surprising amount of time to finally get access to the film.

And then when I finally received access, I sat on it even longer.

Some might consider that appropriate for the subject matter: I was void of slack and mad, and then received the slack at my leisure once I was given a choice.

That said, I’d had high expectations for the film — my only concern being that the title would make it difficult to search for, or worse, drown out other Church propaganda.

But I was wrong on both counts: it’s easy enough to search for, if you quote the title exactly.

And this documentary exceeded my expectations.

Sure, the Church “comes clean”, finally. But if you’ve paid even a modest amount of attention to the Hour of Slack radio show, or other Church related materials over the years, there isn’t REALLY a whole lot new here. If you’re not a “Bobbie” and had a reasonably good sense of humor, you were already in on the joke.

But it’s nice to have it “for the record” and all in one place. And the presentation just oozes quality, with some lovely animations interspersed among the heaps of old VHS recordings.

This is a terrific doc. I’m not sure about the appeal for those not already familiar with “Bob”, but maybe it will awaken something in you. 😉

⭐⭐⭐⭐⭐

https://letterboxd.com/drfortyseven/film/jr-bob-dobbs-and-the-church-of-the-subgenius/

X-Day Countdown

2021-04-04 

A couple years ago, I created an Android Wear (now “Wear OS”) watchface (on Google Play) that threw the gaze of “Bob” upon you while you read the time. If you tapped the clock, it would also show you a countdown to that magic hour of 7am on July 5th when you get whisked away just in time for the end of the world.

Wear OS sucks. But I enjoyed working on the watchface. And I wanted some exercise with Svelte. So here it is!

XDayCountdown.com!

I’m going to refine this a bit as time goes on. And I’m sure there’s some subtle (or not so subtle) bugs in there.

There’s no SECRETS yet (or are there?), but I hope to add something fun to help usher in The Moment when it comes. 😉

Source, of course, is available over here: https://github.com/Fortyseven/XDayCountdownSite/

Review – Snyder’s Justice League (Spoiler-free)

2021-03-19 

I’ve been very much critical of the whole “Release the Snyder Cut” movement. It’s supporters were, more often than not, entitled, angry, vocal assholes.

Imagine my dread when the studio decided to capitalize on that movement and make it happen to bolster HBO Max.

Much to my surprise, this actually takes a mediocre movie and makes numerous improvements. Dare I say this is a much better film than Whedon’s attempt with Justice League in 2017. It’s by no means free of flaws, but the narrative flows better. The new content does a lot of fleshing out, too.

And even though I’m, by far, not a fan of Snyder’s visual style — I heard someone refer to it as a “motorcycle grease” aesthetic. Visually this film fits better with the previous entries. (I do miss Whedon’s saturation, at least.)

Was it worth the $70 million fucking dollars to fix the film? Absolutely not. Good lord!

But the deed is done. No use complaining about THAT at this point.

The only real black mark on this take: it’s FOUR hours long, with no real justification for that length other than to let you soak in the film’s grease for long stretches as music fills the void.

The length is going to make future viewings prohibitive. It’ll keep this from making it the de facto version of Justice League, I think. And that’s a shame, because it really is a “patch” that fixes a lot.

Finally, against all odds, I can actually say: I’d like to see Snyder do a sequel film. I dislike his style, but I’m finding myself unexpectedly invested now. He’s turned me around on how I feel about this film in general.

That’s nothing short of a personal miracle.

⭐⭐⭐⭐

https://letterboxd.com/drfortyseven/film/zack-snyders-justice-league/

Behold Your Vector Nightmare, Amiga Fans

2021-03-06 

Over on Hacker News there was an entry about the “awful” Amiga Kickstart 1.x icon and why it looked the way it did. This led to a link over on Stack Overflow where it was revealed that this was graphic actually drawn in a vector style, as opposed to raster pixels.

They also provided the actual bytes used to render the graphic. I thought it’d be fun to write a little parser to render these bytes.

And so did several other people, apparently, as I’m discovering now. 😐

Anyway, here’s my humble Codepen. And if that goes down, the original code is below the embed. 😎

(I skipped flood fill because I used two.js for this, and didn’t realize until it was too late that I’d chosen poorly. Easy enough to swap out the graphics library, but it’s time to move on.)

See the Pen Amiga Kickstart vector parser by Toby D (@Fortyseven) on CodePen.

/*
    Inspired by:
    https://retrocomputing.stackexchange.com/questions/13897/why-was-the-kickstart-1-x-insert-floppy-graphic-so-bad/13901

    2021-03-06
    \*/

const floppy = [
  0xff, 0x01, 0x23, 0x0b, 0x3a, 0x0b, 0x3a, 0x21, 0x71, 0x21, 0x71, 0x0b, 0x7d,
  0x0b, 0x88, 0x16, 0x88, 0x5e, 0x7f, 0x5e, 0x7f, 0x38, 0x40, 0x38, 0x3e, 0x36,
  0x35, 0x36, 0x34, 0x38, 0x2d, 0x38, 0x2d, 0x41, 0x23, 0x48, 0x23, 0x0b, 0xfe,
  0x02, 0x25, 0x45, 0xff, 0x01, 0x21, 0x48, 0x21, 0x0a, 0x7e, 0x0a, 0x8a, 0x16,
  0x8a, 0x5f, 0x56, 0x5f, 0x56, 0x64, 0x52, 0x6c, 0x4e, 0x71, 0x4a, 0x74, 0x44,
  0x7d, 0x3c, 0x81, 0x3c, 0x8c, 0x0a, 0x8c, 0x0a, 0x6d, 0x09, 0x6d, 0x09, 0x51,
  0x0d, 0x4b, 0x14, 0x45, 0x15, 0x41, 0x19, 0x3a, 0x1e, 0x37, 0x21, 0x36, 0x21,
  0x36, 0x1e, 0x38, 0x1a, 0x3a, 0x16, 0x41, 0x15, 0x45, 0x0e, 0x4b, 0x0a, 0x51,
  0x0a, 0x6c, 0x0b, 0x6d, 0x0b, 0x8b, 0x28, 0x8b, 0x28, 0x76, 0x30, 0x76, 0x34,
  0x72, 0x34, 0x5f, 0x32, 0x5c, 0x32, 0x52, 0x41, 0x45, 0x41, 0x39, 0x3e, 0x37,
  0x3b, 0x37, 0x3e, 0x3a, 0x3e, 0x41, 0x3d, 0x42, 0x36, 0x42, 0x33, 0x3f, 0x2a,
  0x46, 0x1e, 0x4c, 0x12, 0x55, 0x12, 0x54, 0x1e, 0x4b, 0x1a, 0x4a, 0x17, 0x47,
  0x1a, 0x49, 0x1e, 0x4a, 0x21, 0x48, 0xff, 0x01, 0x32, 0x3d, 0x34, 0x36, 0x3c,
  0x37, 0x3d, 0x3a, 0x3d, 0x41, 0x36, 0x41, 0x32, 0x3d, 0xff, 0x01, 0x33, 0x5c,
  0x33, 0x52, 0x42, 0x45, 0x42, 0x39, 0x7d, 0x39, 0x7d, 0x5e, 0x34, 0x5e, 0x33,
  0x5a, 0xff, 0x01, 0x3c, 0x0b, 0x6f, 0x0b, 0x6f, 0x20, 0x3c, 0x20, 0x3c, 0x0b,
  0xff, 0x01, 0x60, 0x0e, 0x6b, 0x0e, 0x6b, 0x1c, 0x60, 0x1c, 0x60, 0x0e, 0xfe,
  0x03, 0x3e, 0x1f, 0xff, 0x01, 0x62, 0x0f, 0x69, 0x0f, 0x69, 0x1b, 0x62, 0x1b,
  0x62, 0x0f, 0xfe, 0x02, 0x63, 0x1a, 0xff, 0x01, 0x2f, 0x39, 0x32, 0x39, 0x32,
  0x3b, 0x2f, 0x3f, 0x2f, 0x39, 0xff, 0x01, 0x29, 0x8b, 0x29, 0x77, 0x30, 0x77,
  0x35, 0x72, 0x35, 0x69, 0x39, 0x6b, 0x41, 0x6b, 0x41, 0x6d, 0x45, 0x72, 0x49,
  0x72, 0x49, 0x74, 0x43, 0x7d, 0x3b, 0x80, 0x3b, 0x8b, 0x29, 0x8b, 0xff, 0x01,
  0x35, 0x5f, 0x35, 0x64, 0x3a, 0x61, 0x35, 0x5f, 0xff, 0x01, 0x39, 0x62, 0x35,
  0x64, 0x35, 0x5f, 0x4a, 0x5f, 0x40, 0x69, 0x3f, 0x69, 0x41, 0x67, 0x3c, 0x62,
  0x39, 0x62, 0xff, 0x01, 0x4e, 0x5f, 0x55, 0x5f, 0x55, 0x64, 0x51, 0x6c, 0x4e,
  0x70, 0x49, 0x71, 0x46, 0x71, 0x43, 0x6d, 0x43, 0x6a, 0x4e, 0x5f, 0xff, 0x01,
  0x44, 0x6a, 0x44, 0x6d, 0x46, 0x70, 0x48, 0x70, 0x4c, 0x6f, 0x4d, 0x6c, 0x49,
  0x69, 0x44, 0x6a, 0xff, 0x01, 0x36, 0x68, 0x3e, 0x6a, 0x40, 0x67, 0x3c, 0x63,
  0x39, 0x63, 0x36, 0x65, 0x36, 0x68, 0xff, 0x01, 0x7e, 0x0b, 0x89, 0x16, 0x89,
  0x5e, 0xfe, 0x01, 0x22, 0x0b, 0xfe, 0x01, 0x3b, 0x0b, 0xfe, 0x01, 0x61, 0x0f,
  0xfe, 0x01, 0x6a, 0x1b, 0xfe, 0x01, 0x70, 0x0f, 0xfe, 0x01, 0x7e, 0x5e, 0xfe,
  0x01, 0x4b, 0x60, 0xfe, 0x01, 0x2e, 0x39, 0xff, 0xff,
];

class AmigaVectParser {
  constructor(bytes, elem) {
    this.palette = ["#FFFFFF", "#000000", "#7777CC", "#BBBBBB"];
    this.offset = [0, 0];
    this.prevOffset = [0, 0];
    this.curColor = 0;
    this.isDrawing = false;
    this.buffer = bytes || [0xff, 0xff];
    this.done = false;

    this.two = new Two({ width: 640, height: 400 }).appendTo(elem);
  }

  doCmd(cmd_pair) {
    if (cmd_pair[0] === 0xff) {
      this.isDrawing = false;
      if (cmd_pair[1] === 0xff) {
        // cmd_done
        this.done = true;
        return;
      } else {
        // cmd_colorSet
        this.curColor = cmd_pair[1];
        return;
      }
    } else if (cmd_pair[0] === 0xfe) {
      // cmd_floodFill
      this.isDrawing = false;
      this.pointer += 2; //TODO FLOOD FILL
      return;
    }
    if (!this.isDrawing) {
      // first coordinate in a poly-line
      this.prevOffset[0] = cmd_pair[0];
      this.prevOffset[1] = cmd_pair[1];
      this.isDrawing = true;
      return;
    } else {
      // continuing the poly-line
      this.offset[0] = cmd_pair[0];
      this.offset[1] = cmd_pair[1];

      let line = this.two.makeLine(
        this.prevOffset[0] * 2,
        this.prevOffset[1] * 2, // doubling up X/Y to make it easier to see at 640x400
        this.offset[0] * 2,
        this.offset[1] * 2
      );

      line.stroke = this.palette[this.curColor];
      line.linewidth = 1;

      this.prevOffset[0] = this.offset[0];
      this.prevOffset[1] = this.offset[1];
    }
  }

  draw() {
    let cmd = [0, 0];
    let pointer = 0;
    this.done = false;

    while (!this.done) {
      cmd[0] = this.buffer[pointer++];
      cmd[1] = this.buffer[pointer++];
      this.doCmd(cmd);
    }
    this.two.update();
  }
}

renderer = new AmigaVectParser(floppy, document.getElementById("draw-shapes"));
renderer.draw();

The Unification III Rap Battle

2021-01-26 

First name: Michael. Surname: Burnham.
When I rock the mic, you KNOW that I’ll burn ’em.

It’s a hell of a shock: I’m the sista of Spock;
Now that’s a pedigree that yer pointy ears can’t block.

I’m from a distant time; I’m told that’s a crime;
Thousand-year start; yet you can’t hold these rhymes.

Now this trio of elves wants to challenge me?
Their Kal-toh’s collapsed, while my Chess game’s six-D!

Yap yap, your logic lacks validity;
More like Infinite Stupidity in Infinite Vapidity.

Now run along and go slap your gong;
When you return, you’ll admit you’re wrong.

I was lost before, but now I’m in my Prime;
Don’t look now, but it’s “Amok Time”!

Your blood is green, but I’m the reason queen;
Now shut the fuck up and and give up SB-19!

I was supposed to be working on the Terebikko research over Thanksgiving weekend here in the US, but instead we got treated to a pair of wonderful episodes of The Mandalorian and Star Trek: Discovery.

The latter of which featured Burnham forcing the Vulcan/Romulan leadership to respond by challenging them in a formal logic debate. And, well, I joked on Reddit that it was a “logic rap battle“… and many hours later… well… that happened.

It’s something pretty far out of my wheelhouse, but I actually put effort into it and did some research and stuff. And I’ve always enjoyed Epic Rap Battles of History, so maybe it’s been brewing in the back of my mind for a while. 😉

Datacom 1200

2020-12-29 

This is a weird post. Another one of those random things I never set out to write. But for some reason I feel the need to document things when there’s little solid information online. Seeing anything go down the memory hole depresses me, so the least I can do is keep something alive with what I find.

A Half-Second Rack Focus Shot

I was surfing some old TV commercials from the 70s and 80s, as one does.

Eventually I came across this old CKCO Canadian TV station promo from 1983 called “We’re Bringing It Home To You” over on the wonderful Retrontario channel on YouTube.

The promo features a quick montage tour of all the hot new technology and crew behind the station you’re currently enjoying.

One of the machines that brings you their quality content has a fancy rack focus effect very early in the clip, at the 3 second mark. It’s on a keyboard with the label “Datacom 1200” across the top:

Once in a while I get mentally snagged by something like this.

I see a technology from the era I don’t recognize and go on a little detour for a half-hour reading about it. (Imagine this behavior spread out over a lifetime and a lot of things about me begin to make a lot of sense.)

Anyway, this time around I couldn’t find… well, anything. The entire search engine bandwidth for “Datacom 1200” in 2020 is devoted to a product from a Brazilian company named “Datacom” that sells a family of network hardware. And one of the lines features “1200” in the name.

Hey, it’s almost 40 years later. Whatchewgonnado?

A Lead!

Actually, it’s only partially true that I didn’t find anything. I fibbed a smidge.

In fact, the first search result for “Datacom 1200” is an empty listing on an printer ink company’s website. Among the various third-party ink replacements they provide, under their “Other” category, is the “Bell DataCom 1200“. 🤔

Ahh! Indeed, searching “Bell DataCom” as a full brand name sent me on a little trip that included this ad from Bell Canada in a mid-October 1974 issue of The Ottawa Journal; presumably* two older models of Datacom, the 500 and 600.

(I say ‘presumably’ because the Amiga 500 came out after the Amiga 1000; numerical superiority is not always an indicator of temporal positioning! 😉)

The Bell Datacom is a line of old school printer terminals from the Bell Canada’s “Computer Communications Group”.

Pretty much what I expected. No real surprise there.

“The Datacom 500 terminal is a compact, self-contained and quiet unit that allows office personnel to send and receive messages from a remote computer. It is ideally suited for consumer-finance applications and such transactions as journal entries, payment inquiries and file up-dating.”

“The Datacom 600 is a buffered keyboard teleprinter. This general purpose unit is useful in a wide variety of applications such as accounting information processing, order entry and invoicing, and inventory control.”

A Quick Zenith 33000 Detour

One interesting, apparently unrelated thing to note: “For more information, just dial Operator and ask for Zenith 33000.”

My first thought: maybe these Bell-branded terminals are actually sourced from a Zenith supplier and rebranded. Zenith, after all, dipped their toe into the computer world for a minute there, around that time.

But here’s the thing: do a search for “Zenith 33000”. You’ll find a lot of old newspapers returning results (from various sites that want you to subscribe to all of them to get access to a single article… good luck on that).

And it’s not limited to Bell, or even this line of terminals:

This, however, is a dead end.

“Zenith 33000” is a Zenith number. Turns out this was a system of toll-free calling prior to modern toll-free numbers.

A fun bit of telephony trivia, to be sure, but it’s completely unrelated to anything here. 😏

Back to the Datacom 1200…

A December 18th issue of Computerworld from 1978 refers to the 1200 model specifically, on it’s introduction:

Computerworld, December ’78

“The Datacom 1200 family of teleprinters has been introduced by the Computer Communications Group (CCG). Available as a receive-only (RO) terminal or equipped with a keyboard, Datacom 1200 prints bidirectionally at a maximum speed of 180 char./sec and produces up to 132 char./line.

Vucom Output

“Supplied by Digital Equipment Corp., the Datacom 1200 receive-only teleprinter can serve as a hard-copy output device for the Vucom 1, 3 and 4 series of CRTs, as a peripheral printer for mini- and microcomputer systems and for remote multicopy printing from a host data base in a stand-alone configuration.

“Rates for the Datacom 1200 in Canada are $2,715 for the RO model, with an additional $150 for the keyboard send-receive version. Filed rental rates, which are subject to regulatory approval, are $146/mo for the RO model, with an additional $7/mo for the KSR unit. Maintenance costs $44/mo.

Supplied by DEC, huh? Now that’s interesting. From 1970 to the 80s, the once mighty Digital offered their famous DecWriter series of line terminals.

And I’m gonna call it now: the Bell Datacom 1200 is probably a rebranded DecWriter III.

I can’t find anything specifically saying so, but I will make my case, and let you decide!

The Evidence

  • The DecWriter III was released in January 1977. The Computerworld article is from December 1976, referring to January ’77 availability for the Datacom 1200.
  • Both have 180 cps printing speeds.
  • Both support 132-characters per line, max
  • The DecWriter III was a 1200 baud terminal; likely where the “Datacom 1200” number comes from.

But here’s my smoking gun…

The keyboard of the DecWriter III compared to the corner of the Datacom 1200 we’re seeing in the promo spot:

  • Same shape Shift and Return key (though these are probably common for the era).
  • Return has a pipe/backslash and a delete key to the right of it.
  • There’s a cluster of at least four keys above the -/+/~/backspace keys.
  • There’s even a bit of space for the custom Datacom 1200 badge.
  • Oh, and they’re basically the same color. 😏

I feel good about this. The evidence is pretty convincing. There’s just not any official word I’m finding. Yet.

If you find anything, or know first-hand, hit me on Twitter and I’ll update this post.

Still Remembered. Sort of.

One super interesting thing about “Bell Datacom” is that it shows up in a LOT of ink supplier listings — the 1200 model, specifically. In fact, ink listings take up most of the “Bell Datacom 1200” search results on Google.

Even Staples seems to have an atrophied entry for it in their ink category. Guessing there’s a lot of copy/pasting of “machines that use ink” among companies, and either the 1200 still gets play today (unlikely considering how little direct information there is on it), or it simply never got culled over the years.

Anyway…

This was a hell of thing to write based on a half second blip.

I just wanted this to be little more than an “I SEE YOU, DATACOM 1200” type post for anyone in the future who might look for it, and be confused by the lack of information. I didn’t expect to do a full on bit of research, and even come to a reasonable conclusion about it. Huh.

Until next time. 🍻

WordPress Plugins That Changed My Life

2020-12-24 

In my day job, I do a great deal of development on WordPress sites. I’ve come a long way in my understanding of the popular CMS software in the last couple years, but I’m still learning something new all the time.

In that spirit, here’s a collection of WordPress plugins that I’ve found to be life changers. I consider them must-installs when working on new sites:

Advanced Custom Fields (Pro)

I remember when I started creating custom post types and using ACF. It expanded my perception of what a WordPress site could be. Before discovering ACF, I had to resort to ugly hacks and just kind of lumping posts together with categories and duct tape.

The base ACF is free, but the Pro version is not only an extremely fair price (A$25 at the time of writing), but includes invaluable field types, like the Repeater, Options pages, and the ability to integrate with the new Blocks feature in WP5.

WP Updates Notifier

This one may have been abandoned, but it still works as of this writing. It checks for plugin, theme, and core updates regularly, and emails me about it. WordPress being kept updated is crazy important, so it’s great to be able to update as soon as possible. Might need to find a replacement for it, though, if it really has been left for rats.

View Admin As

If you’re doing any work with user roles, you need this. View Admin As allows you to switch between various roles and capabilities without having to log out, or keep a private browsing window open with another account loaded up.

Query Monitor

Which template wound up being loaded? Why is this taking so long to load? WHERE ARE MY PANTS?? Query Monitor adds a wonderful dropdown on the admin bar that helps you find out the answer to all of these, and more.

And these I discovered most recently:

JSM’s Show Post Meta

Dumps all of a post’s meta values at the bottom of it’s edit screen. See every little bit of information being stashed along side your posts. Why something like this isn’t included as a built-in debug tool is beyond me.

Debug Toolkit

Adds the wonderful vd(), vdd() debug methods (substitutes for print_r, et al), and a gorgeous, very helpful error message via the Whoops error handler.

Just a word of warning though: this seems to crank the error reporting level, so even basic issues stop everything in their tracks. Normally, this is good — fix it! But I had at least one time where it caused a silent crash, and I couldn’t do ANYTHING in WordPress. Not even disable Debug Toolkit. I had to go in and manually remove the plugin from the command line. MOST of the time, it’s perfectly great though. Just stay aware.

WP Console

An interactive PHP console via the admin bar! Instead of hacking in a test or two and dying somewhere, just pop down the console and test out your PHP/WordPress code assumptions in a safe space.

Review – Vivarium (2019)

2020-12-21 

This should have been a home run. Decent cast. And an interesting foundation of an idea.

A young couple looking to buy a new home become trapped, alone in community of identical homes. After repeated attempts to escape, always, inexplicably circling back to building #9, a box appears with a newborn baby inside: raise the child, and be released, print on the box promises.

For a while there it felt like a compelling, bizarre supernatural mystery in the best tradition of Twilight Zone‘s creepiest.

And then… just as it gives you a taste of where this might finally be going… nothing.

It yanks the rug out, and practically waves a scolding finger in your face for wanting more from the film. It punishes you for it with a an eye-roll of an ending that’s nowhere near as clever as it probably thinks it is.

There’s some creepy atmosphere, decent acting, but it literally goes nowhere at all. Just enjoy the trailer and imagine your own, more interesting film.

⭐⭐

(Vivariam is currently included with Prime Now.)