Last phase of the desktop wars?

The two most intriguing developments in the recent evolution of the Microsoft Windows operating system are Windows System for Linux (WSL) and the porting of their Microsoft Edge browser to Ubuntu. For those of you not keeping up, WSL allows unmodified Linux binaries to run under Windows 10. No emulation, no shim layer, they just… Continue reading Last phase of the desktop wars?

Categorized as Software

Looking for C-to-anything transpilers

I’m looking for languages that have three properties: (1) Must have weak memory safety. The language is permitted to crash on an out -of-bounds array reference or null pointer, but may not corrupt or overwrite memory as a result. (2) Must have a transpiler from C that produces human-readable, maintainable code that preserves (non-perverse) comments.… Continue reading Looking for C-to-anything transpilers

Categorized as Software

Lassie errors

I didn’t invent this term, but boosting the signal gives me a good excuse for a rant against its referent. Lassie was a fictional dog. In all her literary, film, and TV adaptations the most recurring plot device was some character getting in trouble (in the print original, two brothers lost in a snowstorm; in… Continue reading Lassie errors

30 Days in the Hole

Yes, it’s been a month since I posted here. To be more precise, 30 Days in the Hole – I’ve been heads-down on a project with a deadline which I just barely met. and then preoccupied with cleanup from that effort. The project was reposurgeon’s biggest conversion yet, the 280K-commit history of the Gnu Compiler… Continue reading 30 Days in the Hole

Fear of COMITment

I shipped the first release of another retro-language revival today: COMIT. Dating from 1957 (coincidentally the year I was born) this was the first string-processing language, ancestral to SNOBOL and sed and ed and Unix shell. One of the notational conventions invented in COMIT, the use of $0, $1…etc. as substitution variables, survives in all… Continue reading Fear of COMITment

The dangerous folly of “Software as a Service”

Comes the word that has announced a ban on its customers selling “military-style rifles”. The reason this ban has teeth is that the company provides “software as a service”; that is, the software you run is a client for servers that the provider owns and operates. If the provider decides it doesn’t want your… Continue reading The dangerous folly of “Software as a Service”

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

Categorized as Software

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