I should have announced this here sooner. Following the demise of G+, my microblogging has moved to MeWe. Find me at https://mewe.com/profile/5a66494451ee975004c3cdf8 Why MeWe? Technically I would have preferred a Federation platform, but MeWe had an importer for my G+ content. It lost the video links, alas, but text and still links from G+ are… Continue reading My microblogging has moved to MeWe
Contributor agreements considered harmful
Yesterday I got email from a project asking me to wear my tribal-elder hat, looking for advice on how to re-invent its governance structure. I’m not going to name the project because they haven’t given me permission to air their problems in public, but I need to write about something that came up during the… Continue reading Contributor agreements considered harmful
Live from Prague!
Live from Prague! Dave Taht, he who sometimes fixes the Internet from my basement (last week was the most recent occasion) asked me to post this “because G+ is dead”: It GPLs me
Am I really shipper’s only deployment case?
I released shipper 1.14 just now. It takes advantage of the conventional asciidoc extension – .adoc – that GitHub and GitLab have established, to do a useful little step if it can detect that your project README and NEWS files are asciidoc. And I wondered, as I usually do when I cut a shipper release:… Continue reading Am I really shipper’s only deployment case?
Declarative is greater than imperative
Sometimes I’m a helpless victim of my urges. A while back -very late in 2016 – I started work on a program called loccount. This project originally had two purposes. One is that I wanted a better, faster replacement for David Wheeler’s sloccount tool, which I was using to collect statistics on the amount of… Continue reading Declarative is greater than imperative
How not to design a wire protocol
A wire protocol is a way to pass data structures or aggregates over a serial channel between different computing environments. At the very lowest level of networking there are bit-level wire protocols to pass around data structures called “bytes”; further up the stack streams of bytes are used to serialize more complex things, starting with… Continue reading How not to design a wire protocol
Announcing loccount 2.0 – now up to 74 languages
I just released the 2.0 version of loccount. This is a major release with many new features and upgrades. It’s gone well beyond just being a faster, cleaner, bug-fixed port of David A. Wheeler’s sloccount. The count of supported languages is now up to 74 from sloccount’s 30. But the bigger change is that for… Continue reading Announcing loccount 2.0 – now up to 74 languages
RISC-V is doing disruption right
I’ve recently become aware of RISC-V. Verry innterresting. Technical introduction here (somewhat out of date; hardware support is broader and deeper now, and I have seen video of a full Linux port running Doom), but the technicalia is not mostly where I’m going with this post. I’m seeing a setup for a potentially classic disruption… Continue reading RISC-V is doing disruption right
A martial artist looks at swordfighting in the movies
I was reminded, earlier today, that one of the interesting side effects of knowing something about hand-to-hand and contact-weapons-based martial arts makes a big difference in how you see movies. Most people don’t have that knowledge. So today I’m going to write about the quality of sword choreography in movies, and how that has changed… Continue reading A martial artist looks at swordfighting in the movies
Announcing a new book: “The Programmer’s Way”
A decade and change after “The Art of Unix Programming”, I’ve decided to do another book. Actually, I have more than just an intention and some notes; I’ve been working hard on it over the last five days it and have 41 Kwords of rough-cut manuscript ready.
Pessimism about parallelism
Massive concurrency and hardware parallelism are sexy topics in the 21st century. There are a couple of good reasons for this and one rather unfortunate one. Two good reasons are the combination of eye-catching uses of Graphics Processing Units (GPUs) in games and their unexpected secondary uses in deep-learning AI – these exploit massive hardware… Continue reading Pessimism about parallelism
The blues about the blues
Some kinds of music travel well – they propagate out of their native cultures very readily. American rock music and European classical music are obvious examples; they have huge followings and expert practitioners pretty much everywhere on earth that’s in contact with civilization. Some…don’t travel well at all. Attempts to imitate them by people who… Continue reading The blues about the blues
The curious case of the missing accents
I have long been a fan of Mark Twain. One of the characteristics of his writing is the use of “eye dialect” – spellings and punctuation intended to phoneticize the speech of his characters. Many years ago I noticed a curious thing about Twain’s eye dialect – that is, he rendered few or no speech… Continue reading The curious case of the missing accents
SRC, four years later
Four years ago, I wrote an entire version-control system in a 14-hour burst of inspiration. It’s a small, lightweight tool designed for solo single-file projects that allows several histories to coexist in a single directory – good for /etc files, HOWTOs, or that script collection in your ~/bin directory. I wasn’t certain, at the time,… Continue reading SRC, four years later
Contemplating the cute brick
Some years ago I predicted that eventually the core of your desktop PC would morph into a physically tiny compute engine that would merge with your smartphone, talking through standard ports and cables to full-sized peripherals like a keyboard and (a too large to be portable) flatscreen. More recently I examined the way that compute… Continue reading Contemplating the cute brick
Stop whining and get the job done
I’ve been meaning to do something systematic about losing my overweight for some time. last Thursday I started the process by seeing an endocrinologist who specializes in weight management. After some discussion, we developed a treatment plan that surprised me not at all. I’m having my TSH levels checked to see if the hypothyroidism I… Continue reading Stop whining and get the job done
On the Squirrel Hill shooting
To my Jewish friends and followers: I’m grieving with you today. I know the neighborhood where Tree of Life synagogue sits – it’s a quiet, well-off, slightly Bohemian ‘burb with a lot of techies living in it. I’m not Jewish myself, but I figured out a long time ago that any society which abuses its… Continue reading On the Squirrel Hill shooting
How to write narrative documentation
The following is a very lightly edited version of email I wrote to my apprentice Ian Bruene after he wrote documentation for his new Kommandant project that was, alas, as awful as I generally expect from programmers. I’m not training Ian for mere coding competence; he’s too talented for that and anyway I have higher… Continue reading How to write narrative documentation
Reposurgeon’s Excellent Journey and the Waning of Python
Time to make it public and official. The entire reposurgeon suite (not just repocutter and repomapper, which have already been ported) is changing implementation languages from Python to Go. Reposurgeon itself is about 50% translated, with pretty good unit-test coverage. Three of my collaborators on the project (Daniel Brooks, Eric Sunshine, and Edward Cree) have… Continue reading Reposurgeon’s Excellent Journey and the Waning of Python
Rule-swarm attacks can outdo deep reasoning
It not news to readers of this blog that I like to find common tactics and traps in programming that don’t have names and name them. I don’t only do this because it’s fun. When you have named a thing you give your brain permission to reason about it as a conceptual unit. Bad jargon… Continue reading Rule-swarm attacks can outdo deep reasoning