Toolkit links – zsh

I’ve been teaching myself Python this summer, to support some of the things I need to do for my product. And while much of my learning experience conformed to the stereotypes about developers (cough Google cough StackOverflow), there have still been a few useful things I’ve learned along the way that were worth linking and writing down.

Maybe the most useful things I learned were at the humble shell. Here’s a few things I picked up and how I applied them:

Updating the path in MacOS Catalina – after installing a newer Python version, I couldn’t figure out why pip and other commands weren’t working. Path update to the rescue! Adding the directory where the Python install places the unversioned symlinks did the trick.

Searching command history in zsh – I have no idea how I lived this long without knowing this was possible. I was searching backwards to find this syntax…

Recursively zipping only certain files in a directory – Let’s say you have a code scanner in the cloud and you want to feed it all the code, but none of the git history, media and other fun stuff in the directory. This command to the rescue! And ultimate that led me to…

zsh functions – shell aliases on steroids! These little command shortcuts are tasty and addictive. Here was my zip function:

vczip () {
        zip -R $ '*.py' '*.html' '*.js' 'requirements.txt' '*.json' '*.lock' '*.ts'

And then calling it is just as simple as typing vczip zipfilename in the appropriate directory.

Hardly rocket science, but definitely productivity enhancing.

Again, gone to the devil, again

I’m not convinced that Diablo II wasn’t made for these times.

I started re-playing the original Diablo, thanks to the open source program Devilution, about three weeks ago. I made it all the way through and thought, what’s next? Do I re-play on a higher difficulty? And I did. But after two run-throughs, I was bored.

I then remembered that, in the box where my original Diablo game disk was, there was a two-CD case, containing my Diablo II disks, and, importantly, with the license code on the front.

Turns out that Blizzard will allow you to convert the old pre-download license code to a new modern license code that will allow you to play older games as fresh downloads. And that the Diablo II codebase still works on all Mac OS versions up to (and not including) Catalina. And that I still have one Mac running Mojave.

So I’m now about ten days into Diablo II. I’m partway through Act III, playing with an Amazon who’s pretty good with a bow and OK with a sword. I die a lot; I once had to spend all day getting killed over and over again in the Act II finale by Duriel before I wore him down enough to destroy him. (Amazons don’t do well against Duriel, but I beat him without hiring a mercenary, the old fashioned way: by dying a lot.)

And it’s amazing. The game ticks all the right boxes for my brain chemistry: sometimes exciting but basically mindless, never ending, just frustrating enough.

But I’m eager to get to the end of it. Because it turns out that in these days, while I have a lot of aggravation to get out, I also don’t have a lot of spare brain cycles. It would be nice to get those back.

Right after I go after Mephisto.

Gone to the devil, again

If you’re like me and staying home is starting to get tedious, you could do worse than checking out DevilutionX. It’s an emulator for the original Diablo game engine, so all you need is the data file from your CD and you too can get lost for hours. I’ve been playing it on the Mac, but there’s apparently a version for Android, Linux, Windows, and even the Switch.

The Untitled Goose Game is the game we need right now

It’s a sign of how incredibly high our boredom levels are that we bought a Nintendo Switch this past week. It arrived yesterday and we hooked it up. Of course the games we ordered won’t come until later this week, but we checked out the online store and there it was.

“What’s the ‘Untitled Goose Game’?” Lisa asked.

I explained about how the mission of the goose is to be as obnoxious as possible to the people of the village.

“Get it,” she said.

After playing it for a while — and having The Boy play it — I ended up buying a copy for our Mac too. There’s something about being a butthead goose that is amazingly satisfying.

Making history. Or at least transcribing it

Boston Globe: Boston Public Library asks for help in transcribing abolitionist letters. William Lloyd Garrison’s letters are among the more frequently consulted collections in the Boston Public Library; this project seeks to make them accessible and searchable over the web. This is a rare opportunity, in this world of Google Books and OCR, to help to digitize an asset the old fashioned way. You can sign up to help at The effort uses the new-to-me Zooniverse platform, which enforces not just crowd sourcing but also crowd-correction: no transcription is accepted unless three volunteers provide the same transcription.

I did a bit of book transcription when I had my first Internet-facing job in 1994, as an undergraduate in the Electronic Text Center at the University of Virginia (now absorbed into the Institute for Advanced Technology in the Humanities), but most of what I worked on was marking up and correcting texts transcribed by volunteers at Project Gutenberg. Crowdsourcing digitization goes way back.

Weekend entertainment: Super Mario HTML5

I started my kids on Super Mario Brothers, which we own in emulation on the Wii (the only game console I own). I’m still trying to teach my son which way to hold the Wiimote to play the game, but my daughter is pretty conversant already with the game. So I can already tell I need to practice if I want to stay ahead of them.

Super Mario HTML5 looks like a pretty good way to do that while I’m away from the Wii. The gameplay is pretty close, at least for the two levels I’ve played so far, with the exception that the sky and ground expand to fill the browser window.

Time for another Mickey Mouse copyright law rewrite?

Ars Technica: Why Mickey Mouse’s 1998 copyright extension probably won’t happen again. The article, which Lawrence Lessig pointed to, is a little skimpy on the research. OK, so the RIAA and MPAA say they’re unlikely to pursue another copyright term extension. I still say we’re likely to see legislation that shows up at the last minute to keep 1923 era works from entering the public domain.

Why? Because it’s happened before, twice, and because I can’t believe the borg-that-is-Disney would voluntarily let go of the opportunity to monopolize the monetization of its collective intellectual property without a fight.

I might be wrong about this, and it’s possible that their ongoing absorption of Lucasfilm, Marvel, and other entertainment properties are a way to diversify so that they can survive losing exclusivity over some of their earliest art. But I’m not holding my breath, until I see Disney swear that they aren’t going to lobby for another round of copyright exclusions.

Turning inside out

Dave Winer posted a link to some of the earliest podcasts recently, Chris Lydon’s interview series. In the header he used a photo from the first Bloggercon. (That’s me, on the left with my eyes down toward my screen, above one of many Mac TiBooks in the audience.)

It got me thinking about Bloggercon and looking back at some of what we learned, and in particular my two-part blog on takeaways, What is a blog? and Blogs providing voices/Blogs mediating connections. There’s a note in the second post that connected especially strongly with me today:

Blogs written by individuals inside institutions also, through their personal nature, offer the readers of those blogs a connection to the institution at an individual level that they would not experience otherwise. This empowers them through connecting them more closely to that institution and enabling them to better understand the institution. This is empowerment by access.

Finally, when the blogger outside the institution publishes a comment and a link to the work of the blogger inside the institution, and the institutional blogger reciprocates with a link, a relationship develops between the two, the outsider and the institution, that helps the outsider to understand, and in some cases affect, the institution. This is empowerment by relationship.

What I meant in writing this by “institution” was “any organization,” but how I feel it today is “a company.” There’s so much expertise tucked away within a modern organization that may not expose itself through a company’s official messaging, but which holds much of a company’s competitive strength. Like what it’s learned about aligning product management to the business, or doing agile at scale, or even applying agile principles to other disciplines like marketing.

Some of the value drivers for blogging seem to have weakened in the last 14 years, but this avenue of empowerment of the individual writer and of their audience by connecting with them is still deeply important.

Thirteen years ago…

I was looking at an article on the history of interactive fiction, including the Infocom games (Zork, Hitchhiker’s Guide, and its ilk).

The link in the original article was to a Java version of the Hitchhiker’s Guide game. There’s been a subsequent revision that doesn’t require Java and has some slight graphical blandishments to boot (which kind of spoils the fun).

Also ironically, the link to the original article is broken and was not preserved by the Internet Archive (and the hosts of the site were kind enough to claim that “Internet Archive generates us no value” in their robots.txt! Well, who’s laughing now?)

Learning from learning

In the spirit of owning my own words publicly, here are some thoughts I shared on a friend’s Facebook page about the value of my higher education degrees. My friend’s question: “Has anyone ever studied the attitudes of persons with bachelor’s degrees toward the value of a postsecondary education as it correlates with field of undergraduate study after 20 or 30 years? Are hard sciences graduates more likely than most to describe their undergraduate years as well-spent, or less? Liberal arts? Business administration?”

I am, in fact, a hard-sciences major with a liberal arts minor undergrad, and an MBA, so I am either supremely qualified or un-, depending on how you value the respondent’s ability to make up one’s mind in evaluating whether you want to listen to the answer.

Regarding physics, I have felt for the past twenty-five years or so a deep gratitude for what it taught me about approaching deep problems, learning by hypothesis and disproof, and the necessity of striking out beyond one’s comfort zone when it becomes clear that one has spent four years getting a degree whose value depends on one’s willingness to spend another twelve years in and post-school and embrace a life of poverty in government funded labs of uncertain stability. They don’t ask me to talk about the last one to modern SPS students.

Regarding my English minor, I believe it gave me a lifelong appreciation for the well-chosen word and for our bloody-minded language, as well as appreciation for history, philology, semiotics, and half a dozen other things I never studied but which were hinted at darkly among the edges of my curriculum.

And business? Little poetry in it, but considered as a sociological study for the alien tribes with whom I’ve spent my latter career, it’s been invaluable preparation.

So, no, none a waste of my time. But I’d argue that choosing any undergraduate major for preparation into a lifelong vocation is not only wrong-headed but shows a dangerous lack of imagination or a distressing naïveté, or both. (I really thought my father’s 30+ career at NASA was the norm when it came to the longevity of employment in the sciences.) But choosing majors that arm the mind with intrinsic skills for future battles—that’s different.

A syllabus for a history of Internet social and privacy issues

Paulina Borsook, Freedom to Tinker: Neophilia and Human Nature. After a well written illustration about how concern about Internet behavior and regulation is more “nothing new under the sun,” Borsook offers a bibliography that would make a fantastic syllabus for a college course on the roots of Internet culture, policy, and journalism.

Near miss

A Wikipedia page I was largely responsible for has been spared the axe, and I feel like a successful defense lawyer.

Wikipedia is an encyclopedia that’s free for anyone to edit, that aspires to surpass other encyclopedias in quality. To meet both goals it has evolved a series of rules, a few arbitrary but most well thought out and endlessly debated, that determine what stays in and what goes. Rules like “Wikipedia is not a directory” and “Wikipedia is not for promotion” are self explanatory; “Wikipedia is not a memorial” may take more careful reading. (I find this page a helpful summary.)

So when Wikipedia editors get in an argument about whether something belongs, it is through a formal process called AfD, for “Articles for Deletion.” And the discussion often goes down the various principles listed above, frequently referred to by initials rather than by name.

That the ensuing debate is called Wikilawyering is unsurprising, as is the fact that that term itself can refer to misuse of rules to obey the letter of the Wikipedia policy while violating its intent.

But in the end, your article is likely to prevail if you have taken steps to ensure you write about notable things, cite your facts, and avoid original research and puffery. It’s a great educational process, in that way.

Hacking the legal system for reputation repair?

Eugene Volokh and Paul Alan Levy, Washington Post: Dozens of suspicious court cases, with missing defendants, aim at getting web pages taken down or deindexed. Brilliantly slimy hack of the legal system and search engine infrastructure. Google won’t take down search results without a court order? Sue an imaginary defendant with a similar name, get him to settle, and use the settlement to get the pages taken down.