Blog
Review: The Fall of Hyperion
Hyperion is great, but it’s incomplete. It ends without resolution for its frame story. That would be fine for a “loose” framing like in The Illustrated Man, but the tales in Hyperion (not to mention their narrators) are far more interrelated. I couldn’t make up my mind about that book without knowing how the story ended. For me, The Fall of Hyperion had a lot riding on it.
It would have been hard enough to deliver a satisfying conclusion if the sequel could reuse the same basic formula.
Blog
JSHint: Wrestling it Free
This is the final essay in a four-part series about relicensing the JSHint software project.
The struggle to relicense JSHint was about to get ugly. We’d decided to forcibly take control by rewriting targeted sections of the source code. To be fair, we weren’t looking for trouble. We tried to get permission from every contributor, but that turned out to be impossible. We turned to rewriting only reluctantly because of the danger in swapping out pieces of such a complex and widely-distributed program.
Blog
JSHint: Asking Nicely
This is the third essay in a four-part series about relicensing the JSHint software project.
Despite initial appearances, relicensing JSHint involved much more than modifying a single text file. The LICENSE file is just the technical representation of a legal contract, and the consent it describes is not something you can patch in a text editor.
Specifically, we wanted to remove the clause, “The Software shall be used for Good, not Evil.
Blog
JSHint: Dug In
This is the second essay in a four-part series about relicensing the JSHint software project.
In a previous essay, I explained what made the JSHint project’s bizarre license so toxic for JSHint and its users. However, a fully free and well-maintained alternative (namely ESLint) has been available for many years. A wider perspective may make the plight of the JSHint project less compelling.
“Geez, just use another project,” you might be thinking.
Blog
JSHint: Watching the Ship Sink
This is the first essay in a four-part series about relicensing the JSHint software project.
The process of relicensing JSHint took seven years. That’s far longer than anyone expected, but seeing this through wasn’t just a matter of endurance. As I worked with people around the world to move to the MIT Expat license, I regularly experienced how non-free licensing (even as seemingly trivial as “Good, not Evil”) poisons the well of free software.
Blog
You May Finally Use JSHint for Evil
JSHint is a software tool designed to help developers write JavaScript code. Since its creation in 2011, it has been encumbered by a license which includes the following clause:
The Software shall be used for Good, not Evil.
That stipulation disqualifies JSHint from the distinction of “free” software and “open source” software.
Today, with a release 7 years in the making, we’re removing the clause. Support for Evil is a new feature but not a breaking change, so in keeping with Semantic Versioning, we’ve incremented JSHint’s minor version.
Blog
Ingradient: building the cooking tool I've always wanted
Years ago, a cooking blog got me thinking about reverse-engineering recipes. I thought I could build an application for that. For those of us privileged enough to contribute, open source software is an endless time sync. I kept putting off the idea for some other shiny pet project–usually JSHint.
With my work on JSHint finally maybe wrapping up, and with a whole lot of extra time due to coronavirus-inspired lifestyle changes, I finally set out to build the thing in March.
Blog
Review: Trinity
This book’s subtitle is, “A Graphic History of the First Atomic Bomb” and it really is just that. If you’re looking to learn about the ramifications of the detonation, the dispersal of the technology, or the moral struggles of the people involved, you can skip this one. Author Jonathan Fetter-Vorm focuses almost entirely on the construction of the thing, and I guess that’s a valid focus.
I was expecting more, though.
Blog
Review: Hyperion
Although it’s set hundreds of years in the future, Hyperion spends very little time trying to catch you up about how society has changed in the time between today and the 29th century. That’s a specific kind of challenging: as a reader, you’re forced to sit with ambiguity and slowly build context based on inference. The effect is compounded in Hyperion because it’s a frame story with a rotating cast of narrators: the perspective (along with the assumptions about what the reader knows) is constantly shifting.
Blog
Review: Batman: White Knight
The Joker is rehabilitated, but Batman’s suspicious. Sound familiar? Two-Face went through this in the 80’s, and Poison Ivy got the same treatment in the 90’s. The seemingly-tired plot made me suspicious of author/artist Sean Murphy from the get-go. The opening pages didn’t make me feel any better.
Murphy sets up a world where Batman is brutal and irrational. That’s a hard pill to swallow. It’s not that I can’t tolerate flaws–really, the best stories are the ones that explore the man’s shortcomings.