September ’24 Web Links

America now has a centenarian ex president. But check out this statue in his home town:

Review: Videodrome (kevinsreviewcatalogue)

I was thinking of writing about how you could totally remake Videodrome now, but someone already wrote a much better review to that effect.

A meme about USB (lemmy.sdf.org)

This really captures what I dislike about USB-C.

sfdictionary.com

I was really hoping that something like this existed, and wouldn’t you know it, it totally does. This site cross references sci-fi jargon across the history or science fiction.

The best sports headline you’re going to see this month (Nola.com)

Best sports headline of the month.

Digital Terrain Models of Mars (uahirise.org)

I was looking for some heightmaps I could use (see the next link) and found these really cool scans of the martian surface.

Ceefax (nathanmediaservices.co.uk)

Replication of Ceefax, for retrocomputing enthusiasts.

Fandom Wiki Considered Harmful

Fandom has a major ongoing outage, tearing a not insignificant hole in the web. Seems like as good an opportunity as any to discuss what it is and the problems it presents.

“Fandom”, formerly Wikia, is a hub for anyone who wants to make a wiki but their subject matter isn’t a good fit for ur-wiki Wikipedia. It’s the perfect place for cataloging every detail of beloved media franchises and games. Notable Fandom wikis include Memory Alpha (Star Trek), Wookiepedia (Star Wars), and one for almost every video or tabletop game, from the popular to the obscure. It’s sort of replaced GameFAQs, and often your only alternative if you don’t enjoy watching a lets-play to get you unstuck.

There’s a huge amount of useful content on Fandom and I have nothing but respect for the editors who devote their time to maintaining these resources, but I’m here to argue that Fandom is bad for fans and bad for the web.

Intrusive Ads

Fandom devotes only a small section of the screen to content. The rest is intrusive, animated ads that move around the page, pop over content, and generally make a nuisance of themselves.

Browsing fandom is an utterly hostile experience. On mobile, it just gets worse:

Lousy Performance

I don’t know if it’s the ads or the auto play videos, or what. I’m not going to try and profile the site. But someone should; performance is a frequent complaint and it’s one of the few sites that will actually crash a tab; you don’t see that very often these days!

Why not just use AdBlock?

I refuse to participate in a two-tiered web of the power users who get to use free services uninterrupted and the bulk of everyday users who have to pay for it with ad garbage. Empathy is a critical skill for engineers, indeed it’s one of the things that makes good engineers good, and the lack of it is what has lead to the worst excesses of tech. As someone who still sometimes develops web things, I need to be able to see the web as users see it, not as some elite cadre of tech enthusiasts gets to enjoy it. Call it penance if you want to, but I think that power users using ad block (and subsequently tech failing to realize just how garbage top google results have become) is part of the problem, not the solution. I have an inkling that the people who have the pull to actually change things have hidden the problem from themselves instead.

What are we to do?

This would be an awesome article if I could end it with a call to action, a viable alternative with a great onboarding story that you could pick up and use. This isn’t that article. I do not have a neat solution.

Host your own?

Some Wikis are self-hosted. This allows for total control by interested parties, but can also be a burden for the hosts to administer. It also puts the (not insignificant) burden of SEO entirely on each individual wiki. Fandom is perhaps best understood as an SEO spam operation that crowd sources its content. Without the ability to share infrastructure and maintaience costs, there’s a major advantage in Fandom’s favor here. Not to mention the oft-underestimated hurdle of users needing to create yet another login (and expand their attack surface by one more some-day-compromised account.) Wiki.gg exists and is trying to centralize off-Fandom wikis and may be addressing this problem that way; one can hope they themselves don’t fall prey to the same perverse incentives that created Fandom in the first place.

Licenses as a solution?

Most Wikis use CC-BY-SA for their content, even when the content is directly copied from, for example, in-game text. This allows Fandom to monetize while still maintaining a facade that they’re merely hosting free content. You could take all of the text and images from a Fandom site and start your own, but because of the aforementioned economies of scale that isn’t a winning move. Likewise, if you create a wiki off-site, Wikia authors can happily copy all of your content into their own competing wiki. Perhaps it’s tome to write a new license for wiki content, one similar to AGPL or CC-NC, which would be impossible for Fandom to comply with; one that disallows commercial use or mandates releasing your source code.

I don’t expect this overnight

Wikia’s reign is entirely up to the folks who decide to put words on the internet. I don’t think it needs to be a one-site race to the bottom. But there’s massive inertia, even on days like today when it’s rendered entirely unusable by technical issues.

But examples exist! Check out the Sarna.net, the BattleTech (MechWarrior) Wiki. It’s using MediaWiki, but the ads aren’t nearly as intrusive.

August 2024 Web Links

Sorry for the shorter link list this time.

Dubsnatch (DarknetDiaries.com)

Darknet Diaries is often carried by its host’s boundless enthusiasm about cybers ecurity, but this episode features one of the strangest moments: the host insisting that there’s a pattern of featuring dolphin noises in Dubstep music. When the guest doesn’t play ball and politely tries to beg off the conversation, the host keeps pressing-he’s apparently a huge fan of dolphins. If you’re old enough to remember the heyday of Brostep, you might get a kick out of the artists referenced in this episode.

Battletanx Covers (youtube.com)

Had battletanx on the mind (it’s a perennial fascination) and wanted to see if anyone had done any decent covers. Turns out the answer is an emphatic yes!

Reckoning (infrequently.org)

This is a good discussion of the failed promises of JavaScript Single Page Apps (SPAs), complete with real case studies where SPAs have sabotaged public services.

But I do think he’s missed something critical that was always hammered home at my first job when I learned about SPAs, back when we were building them out of jquerey: server conpute costs money. Client side compute is free. To you. This could be an appropriate attitude for a commercial outfit, but not one providing a public service.

The Dying Computer Museum (textfiles.com)

Another article about the LCM’s demise. This is textfiles at his best here, highly recommend giving it a read.

Blogosphere (mikegrindle.com)

Reading this article gave me some sort of warm-fuzzies and the desire to link to it, so here goes.

abortretry.fail

This substack author seems to be gunning for https://www.filfre.net/‘s spot, but for hardware instead of software.

A brief history of barbed wire fence telephone networks (loriemerson.net)

This was pitched as a brief history of barbed wire communication. I of course assumed it would be about the way barbed wire sends a clear message to anyone planning to get to the other side of it, but it turned out to be stranger and more wonderful-a story about using barbed wire feces to carry telephony. A neat find for any fans of guerilla telephony.

The Modem World

(image from publisher’s site)

When I was younger, I occasioned to write an essay about the history of the internet. I don’t have a copy in front of me, but I do recall that it ended up being practically a book report on the classic Where Wizards Stay Up Late by Hafner and Lyon. It gave a strong account of the technical and social factors that took us from ARPANET to TCP/IP. But apart from an excellent digression into Email, it’s sparse on the question of what factors outside of the specific technology BBN was building lead to the internet we knew in the aughts. It was a fine enough essay, I’m sure I received a passing grade for it, but I think my teacher actually had the right idea that I should have instead focused on the movie War Games.

But now, a student in a similar situation wouldn’t have to settle for inferring people’s understanding of computer networks from a movie; now they could pick up The Modem World and get a serious historical account and analysis of the proto-internet, the internet shaped thing that existed before TCP/IP became the dominant communication protocol.

While the notion of BBSs isn’t new to me (I watched the BBS Documentary, read a bunch of Textfiles.com, and frequent SDF which is BBS adjacent) The Modem World was fresh in two important ways: insight and rigor.

Most accounts of the BBS world tend to be primarily sources; people telling their own stories. You’ll find them in the pages of 2600 and the like. The Modem World goes many steps further in teasing out the statistics, explaining how affordances shaped culture, and related the history to present concerns. In this regard it’s a standout book, comfortably sitting alongside a good Platform Studies volume, or Exploding The Phone.

As far as Rigor goes, look no further than the absolutely lavish end notes for a bibliography of BBSing. Never satisfied to rest on a hand wave, the author is relentless in finding actual contemporary sources for so many assertions. I thought that it was going to rely much more heavily on the BBS Documentary than it ultimately did, because the Author dug up so much contemporary material! I appreciate the serious treatment as opposed to what frequently is the type of rose-tinted retro tech light journalism you see out of outfits that shall remain nameless.

July 2024 Web Links

It was a crazy month for news, but this ain’t it.

Hobby pages are finally up (blog.eamonnmr.com)

Took me a while. I spend too much time documenting stuff on discord and not enough in places I can link. So here’s a bit of a remedy: photos of painted miniatures, organized by force.

The painting tutorial I learned the most from (YouTube.com)

This came up during a discussion of how to dealt with shakey hands while painting. I described a trick I learned a long time ago that reduces brush jitter. This is probably the painting tutorial that I’ve learned the most from. Watched it early in my wargaming career. Funny thing is, I’m just getting around to thinking about unloading my STAW ships. Ah well.

Pitchfork skewers a recent album (pitchfork.com)

Absolutely gruesome.

If Perry was willing to cop the built-in bad press of making a song about women’s lib with an alleged abuser, shouldn’t the song at least be a banger? Instead, it’s unfathomably tepid, irritating at best. In the immortal words of Sister Catherine Rose Holzman, uttered moments before she died: “Katy Perry, please stop.”

The Face Of Connecticut (70.91.221.154)

Yep, bare IP address. I won’t spoil my future review of it by explaining this one. It’s a forty year old geology book but it touches my heart in a unique way.

Bionicle’s original story guy set the record straight (alastairswinnerton.com)

Just though this was interesting. This guy’s contributions seem to sometimes eclipsed by Farshtey and Faber.

My very first Ubuntu bug (bugs.launchpad.net)

I’ve been using Ubuntu off and on since the aughts (I’m pretty sure my first install was Hardy Heron back in ’08) but I don’t believe I’ve ever had occasion to file a bug report before. I was trying to get Sheepshaver running on a fresh OS install, and discovered to my dismay that the padsp binary has disappeared. If anyone knows where it went or where I can find it, leave a comment!

https://predawka.bandcamp.com/album/erynias

erynias (predawka.bandcamp.com)

Excellent melodic Drill’n’Bass record from an artist you probably haven’t heard of before. I sure hadn’t. Reminds me of Fine Primitive Sounds a bit. Great sound design, great melodies, and the timing is impeccable, with no element overstaying its welcome.

Don’t make fun of renowned Dan Brown (onehundredpages.wordpress.com)

Bit mean, but very funny.

Study Reveals location of starfish’s head (news.stanford.edu)

I was wondering recently if we’d made any progress on Starfish development, and was not disappointed.

Lead Testing wargaming minis

First, an apology. If I’d known I was going to write this up, I would have taken pictures of the minis and the lead test results. Lacking that, you’ll just have to trust that I read the test strips correctly. I encourage anyone to test any minis they’re concerned about, and don’t file or sand metal minis around kids.

Random weird knock off space marines of questionable origin: Lead

I tossed them, but they weren’t anything I’ve seen before or since. They resembled space marines but had vertical slats for face plates and resembled robots. May have been garage minis. Really kicking myself for not taking a picture.

Microworld Games: no lead

Agents Of Gaming: No lead

Brigade Models Starmada ships: No Lead

Scotia Grendel: Positive

Privateer Press (warmahordes): Positive (this is surprising because they’re a pretty big outfit.)

Old Questionable Fasa hex walkers: Positive

Cloud Nine’s Heavy Gear mechs: clean

Fading Suns A Call to Arms: Clean

I have a bunch of IWM things, so I tested a few

the Forestry mech labeled ‘Lead free pewter’ was indeed lead free

The Long Tom seemed clean, maybe the slightest positive?

But another seemingly new tank (probably a Shrek PPC carrier) had one of the strongest positive results I saw.

Lab Notes

I accidentally flicked a bit of vinegar/reagent mix into me eye. Owch. Washed it out pretty exhaustively… I hope.

June 2024 Web Links

Excellent This American Life episode (ThisAmericanLife.org)

If anyone could make AI spew sound good, it’s got to be Werner Herzog.

More info comes to light about the ill fated Titanic implosion sub (ArsTechnica.com)

It’s a Wired article, but Ars ran it too. Clears up a lot of the rumors and confusion around the event, such as “how was Boeing involved?”

Samples used in the C&C Series (Reddit)

The real win here though is the link to Methods Of Mayhem. Some really awesome samples and a ton I recognize from Red Alert and Red Alert 2, including many of the voice clips (including the infamous Brain From Outer Space clips used in the Yuri’s Revenge soundtrack.)

I will ****ing piledrive you if you mention AI again (ludic.mataroa.blog)

The title really says it all, this article made the rounds this month. Though it does slide in some AI X-risk stuff, so a good antidote is:

AI Doomers have warned of the tech apocalypse while doing their best to accelerate it (salon.com)

Someone put these pieces together. Admittedly, though, it’s basically doing the homework for that tweet where Altman said Yudkowsky needed a Nobel.

Penryn Space Agency

This was a great electronic music mix show. There are over fifty episodes to listen to. I don’t know the inside story but it sounds like they had difficulty getting to the studio during the pandemic. Their archives are a treasure trove of electronic music recommendations. Get them while they’re hot (and still hosted.) They do a great job of linking to the music they play so you can find new artists.

The Living Computers Museum Finally Isn’t (Old Vintage Computing Research)

This is unfortunate news for the retro-computing community. I’d always hoped to visit this place if I could ever make it out there.

Finding Deceit in the Chambers of Xenobia

A mystery reminiscent of Sour Grapes. Thanks to https://digipres.club/@ryanfb for posting this one on Mastodon.

I’m making a go of it on BlueSky (bsky.social)

I dunno, is this thing on?

May 2024 Web Links

News Related Wikipedia Drama (Wikipedia)

Wikipedia talk pages are always an interesting place, but this one is a pretty interesting discussion, because it gets at the heart of Wikipedia’s role in our evolving Truth landscape.

AI Is Breaking Google (Better Offline Podcast)

A conversation about the ludicrous ‘AI summary’ feature that google debuted recently. The juiciest bit of gossip is that the SEO community has been playing with the feature for a year prior to release and thought for sure that Google wouldn’t release it in that form because it was so busted… and they just up and did it!

Intro contains a cogent explanation of why Google’s latest move is so bad for the web and web users. If anyone has an alternate search engine they’re planning on launching, best to strike while the iron is hot!

The Batsh*t [sic] Software Aphex Twin Used (YouTube / The Flashbulb)

The Flashbulb (yes, that The Flashbulb, the guy who gave us Please Don’t Remember and The Bridgeport Run) talks about software Aphex Twin used. You probably already knew about Supercollider, Trackers, and Metasynth, but I’d only heard passing reference to CDP, for example. I wish he’d gone into a bit more depth about Supercollider and shown off exactly what sort of things you can do with it.

One thing that I found really interesting was the insight into one of my favorites; RDJ album. Tracker outputting MIDI triggering a hardware sampler, because trackers of the day couldn’t handle samples as nice as you hear on RDJ album. I suppose that suggests that HAB was using samples inside the tracker for drums and outboard synth for the melodies? At the very least it’s always sounded like someone manually playing with the cutoff in the first part of Arched Maid Via RDJ, it sounds great and it’s an effect I’ve often tried to emulate.

I’m surprised The Flashbulb considers Bucephalus Bouncing Ball the all time best. I mean it’s a great track and I love how the sweet melody sneaks in after the harsh metallic noises of the intro, then are just as quickly washed out by more crazy noodling. But the best Aphex Twin track at any given time tends to either be from his latest album or second to latest album. I’d put Rushup | Bank 12, Xmas, or Collapse up against anything from what he called RDJ’s ‘peak era’ (Windowlicker, RDJ, etc.) If anything, what the SoundCloud release shows is that the reason the Analord era sounds so different is that RDJ now feels happy (or financially motivated) to actually release (or at least DJ) more of what he makes rather than holding a ton of it back as he did during earlier eras.

A pretty good thread on The Orange Site about GraphQL

Sums up my feelings about how our attempt to implement GraphQL went back when we tried it out at SmarterTravel.

I thought we had passed the era of Peak Zoom Calls (YouTube / Detroit Free Press)

But here we are.

April/May Web Links

Might not stick with that title, but I do want to stick to the format. We’re in a period where “algorithmic” content feeds and search are becoming less than ideal, and there’s been a trend towards a smaller, more human web. I’ve long maintained a links page both as a more durable bookmark list and as a curated set of links to share. But not everything is evergreen; some things are timely, and I think a regular feature would be a more appropriate place for that. Plus it would motivate me to write a bit more, so here goes.

EV Nova Aftermath – (EV Nova Fandom Wiki)

EV Nova Aftermath was one of the most anticipated EV Nova TCs. Previously, all we had was the (defunct) Aftermath website, landing pictures, and other scattered remnants.

That all changed thanks to a friendly leak a year ago that didn’t really garner much attention. However thanks to the efforts of the indefatigable SharkyNebula, we now have pretty much everything on the wiki. I plan to write more about this and back up the resources on IA, but until then just marvel at these immaculate ship sprites. This was some of the best CGI that the EVN community had to offer, back in the day. They still look great now!

Data General Nova and Eclipse emulators (Wild Hare Computer Systems)

Tracy Kidder’s Soul of a New Machine is one of the great pieces of literature written about the computing field, and it centers on the team (lead by Tom West) upgrading the Nova into the Eclipse. Data General is a fairly obscure minicomputer company; the only one people still know by name is their more popular competitor, Digital Equipment Corporation, of PDP and VAX fame. So actually playing around with one of these wasn’t possible back in the day. But now there’s an emulator! You can even run it on a Raspberry Pi, which is exactly what I plan to do. If I get it running, I’ll write up a how-to.

https://fantastic-plastic.com/

For hobby modeling fans, this is a nice database of old model kits including images and enough information about them to find them via google with only a vague description. I stumbled across it while trying to figure out the provenance of a strange but very cool model kit, which turned out to be a Perry Rodan spacecraft. The model kit was purchased either at Neckers Toyland (still in operation!) or War And Pieces in Hartford (long defunct.) Seven years after War and Pieces closed, a Games Workshop store opened in the same location.

Dell HTPC thing from the aughts (youtube)

I found this video on Lemmy, interesting teardown.

World’s Fiasco of 2007 (yoyo fandom wiki)

In 2007 there was apparently some drama in the YoYo community. This would make an excellent Netflix special along the lines of The Pez Outlaw. I have no idea what the veracity of the story is and it contains some fantastical elements, but it’s also exactly the kind of foot-in-mouth emergent screwup that happens when you put enough people in a room and ask them to make decisions about how they should interact with their customers. I’d love to hear the other side of the story.

https://melonking.net/melon?z=/email/mailclient

If they still gave awards for “web site design” that included little site badges for the winner, this site would deserve them all. I feel like I haven’t even scratched the surface with it. Be warned – I have no idea what’s lurking under the surface here.

https://www.wheresyoured.at/the-men-who-killed-google

Ed Zitron has been on a tear lately with a lot to say about the tech industry. The basic observation that we’ve been frogboiled into a truly lackluster Google search experience is a correct one.

The Sky was full of ships (project Gutenberg)

A short story by Theodore Sturgeon, in Thrilling Wonder Stories, June 1947. I have a very vivid memory of this story as one of the first proper scifi short stories I ever really clicked with. Reading Del Ray’s history of early scifi made me think of it again, so I figured I should save the link for next time.

https://www.thelcars.com/

A CSS framework for making Star Trek style Okudagram websites.

Dependency Injection (like pytest fixtures) with a Python decorator

If you’ve used Pytest, you’ll notice a neat little pattern. If you want a particular fixture, you just ask for it, seriously, check out the docs:

@pytest.fixture
def fruit_bowl():
    return [Fruit("apple"), Fruit("banana")]


def test_fruit_salad(fruit_bowl):
    # Act
    fruit_salad = FruitSalad(*fruit_bowl)

test_fruit_salad gets called when you run tests, and it will automatically pass the result of fruit bowl to test_fruit_salad. This pretty much blew my mind when I first saw it.

The following decorator helps you achieve something similar with your own functions. It lets you do something like this.

@opt_in_args
def request_a(foo: str, *, a: int):
    print(f"Foo is {foo}, a is {a}")

@opt_in_args
def request_b(*, b: str):
    print(f"b is: {b}")

@opt_in_args
def request_both(*, b: str, a: int):
    print(f"b is: {b}, a is: {a}")

request_a("Blarg")
request_b()
request_both()

Note that the * args just mean “everything after this is a keyword argument only”, it helps guard against accidentally passing in bad kwargs and you should always use it, but the above program will work the same without it. The output of the program looks like this:

Foo is Blarg, a is 123
b is: foobar
b is: foobar, a is: 123

First let’s look at the implementation of the decorator:

import inspect

def opt_in_args(func):
    def wrapper(*args, **kwargs):
        signature = inspect.signature(func)
        opted_in = {}
        optional_kwargs = {
            "a": 123,
            "b": "foobar",
        }
        for kwarg, value in optional_kwargs.items():
            if kwarg in signature.parameters:
                assert signature.parameters[kwarg].annotation == type(value)
                opted_in[kwarg] = value
        return func(*args, **kwargs, **opted_in)
    return wrapper

Let’s look at a few specific lines to illuminate what it’s doing:

def opt_in_args(func):
    def wrapper(*args, **kwargs):

This is standard decorator magic. The outer function has the function in-scope, the wrapper is (because we return it from the decorator) what actually gets called in place of the wrapped function, so we capture *args and *kwargs so we can pass them along.

signature = inspect.signature(func)

Note that we imported inspect at the top of the module. Inspect lets you introspect on python functions, and in this case we use it to grab the signature. signature.paremeters will now have a key for each parameter the function accepts; we can now write any code we like based on the params.

        optional_kwargs = {
            "a": 123,
            "b": "foobar",
        }
        for kwarg, value in optional_kwargs.items():
            if kwarg in signature.parameters:

This approach is totally optional. There are any number of ways you can enumerate the optional kwargs. You can make another decorator and supply functions which are only called if they’re requested (I think pytest fixtures must be doing something like this) or you can have a bunch of ifs to decide what to instantiate and put in.

                assert signature.parameters[kwarg].annotation == type(value)

This I just put in there to show one way you could enforce typing on the keyword arguments. This is of course also optional; you could write your decorator to only care about the name by removing this line.

                opted_in[kwarg] = value
        return func(*args, **kwargs, **opted_in)

We create a dictionary called opted_in and populate it with the additional kwargs we want to pass. The final line of the wrapper function calls the wrapped function with the args and kwargs the caller sent, unmodified, and finally with the opted_in args the function asked for in its signature.

For such a slick effect, this is a surprisingly easy decorator; decorator magic often is.