Linux backup workflow for hackers with restic, rclone, Backblaze B2

In 2017, CrashPlan was one of the most popular full-computer offsite/cloud backup tools for consumers. It had millions of paid users, usually paying around $10/month for a few terabytes of offsite storage. But then… “On August 22, 2017, Code42 announced they were shutting down CrashPlan for Home, effective in October 2018. They were not accepting … Continue reading Linux backup workflow for hackers with restic, rclone, Backblaze B2

The smartphone app audit

I recently upgraded from a Google Pixel 7 to a Pixel 8 phone. Nothing earth shattering about this upgrade. Incremental. “Performance smartphones,” as the DOJ recently called iPhones and high end Androids, have leveled off in core functionality. The Pixel 8 is slightly smaller than the Pixel 7, which makes me happy, as I treat … Continue reading The smartphone app audit

The Blog Chill

The film The Big Chill came out a bit before I was born, over 40 years ago, in 1983. The plot focuses on a group of middle-aged friends, perhaps in their late 30s and early 40s, who had attended the University of Michigan – Ann Arbor together. They reunite after 15 years, brought together by … Continue reading The Blog Chill

Dependency rejection

Sam Altman once said: “Minimize your own cognitive load from distracting things that don’t really matter. It’s hard to overstate how important this is, and how bad most are at it. Get rid of distractions in your life. Develop very strong ways to avoid letting crap pile up.” In programming, there is a technique called … Continue reading Dependency rejection

Parse.ly, Automattic: the long view

In 2009, I quit my first programming job after college to work on a startup. That startup eventually became Parse.ly. I’ve written about Parse.ly’s startup beginnings and evolution elsewhere on this blog, including: “The Startup Diet” “What One Does” “Startups: Not for the faint of heart” “Why Startups Die” “Shipping the Second System” It is … Continue reading Parse.ly, Automattic: the long view

GNU parallel is underrated

I’m always surprised to learn that a friend who has used Linux for a long time, in both server and desktop contexts, might not have heard of GNU parallel. If you use GNU parallel together with pv (pipe viewer), UNIX shell pipelines, and Python fileinput module, you get a pretty powerful parallel job running framework … Continue reading GNU parallel is underrated

Managing software teams: the definitive reading list

Frederick Brooks once wrote: The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. In his classic essay, “No Silver Bullet”, he also wrote about software’s “essential” complexity: The complexity of software is an essential property […] Hence, descriptions … Continue reading Managing software teams: the definitive reading list

Learning about babashka (bb), a minimalist Clojure for building CLI tools

A few years back, I wrote Clojonic: Pythonic Clojure, which compares Clojure to Python, and concluded: My exploration of Clojure so far has made me realize that the languages share surprisingly more in common than I originally thought as an outside observer. Indeed, I think Clojure may be the most “Pythonic” language running on the … Continue reading Learning about babashka (bb), a minimalist Clojure for building CLI tools

JavaScript: The Modern Parts

In the last few months, I have learned a lot about modern JavaScript and CSS development with a local toolchain powered by Node 8, Webpack 4, and Babel 7. As part of that, I am doing my second “re-introduction to JavaScript”. I first learned JS in 1998. Then relearned it from scratch in 2008, in … Continue reading JavaScript: The Modern Parts