Showing all posts tagged #programming:
Posted on April 7th, 2019
A special characteristic of open source software (OSS) is that you don't need institutional support to get started. It's interesting to compare this to physical infrastructure, like dams or railroads. Before you can begin those projects, you need upfront capital, permits, rights-of-way, environmental impact reviews, community hearings... and so much more.
By contrast, all you need in order to begin a digital infrastructure project is an inte...
Posted on August 24th, 2018
Excited to announce the second episode of Tools & Craft!
In this video I interviewed Stu Card, who began work in Human Computer Interaction before it even had a name. His was the first PhD in the discipline, and Stu has made fundamental contributions to HCI including the design of Engelbart's mouse and Information Foraging Theory.
In his work at Xerox PARC and beyond, Stu has always emphasized "theories with a purpose", the idea that academi...
Posted on August 22nd, 2018
I gave in to my paranoid tendencies today and wrote a little backup script for Twitter, which I figured I'd share here.
Two requirements: github.com/sferik/t: A command-line power tool for Twittergithub.com/wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats
To install these from the terminal:
Here's the script to do the backup itself (which I plan to run ~1/mo):
For some rea...
Posted on June 19th, 2018
I am so excited to announce Tools & Craft, an interview series I've been working on with Notion for the past few months!
In this first episode, I spoke with Andy Hertzfeld, who designed the operating system of the original Macintosh.
I've always been fascinated by the process of creating new tools and interfaces, especially those that amplify our thought and communication. We’ve all seen the legendary Apple keynotes and how personal comput...
Posted on June 3rd, 2018
Epistemic status: High confidence about the pros/cons discussed regarding my own experience, fairly low confidence about the parts I heard secondhand.
Epistemic effort: Low-to-medium effort. I realized these things were connected while I was in the shower last night, then I spent two hours stream-of-consciousness writing to get them onto the page. I then read it over once for minor editing and shared it with a friend to sanity check.
Posted on April 1st, 2018
Effective software developers know how to manage their ignorance. Studying the inner workings of each dependency and every layer of your stack is a luxury you often can't afford, so it's important to know how and when to make leaps of faith.
More than any explicit technical knowledge, this intuition is perhaps the biggest thing that differentiates experienced programmers from inexperienced ones. When I first started coding, painful awareness ...
Posted on March 12th, 2018
I originally gave this talk at Typescript Conference 2018. You can find the slides here.
TypeScript is a godsend for Webpack and Ethereum developers. In the nascent world of smart contracts, developer-friendly tooling is almost non-existent, the only error message is VM Exception: revert, and bugs can cost millions of dollars. Meanwhile, most Webpack config files are incomprehensible, fragile, and cobbled together from a mess of Stack Overflo...
Posted on February 6th, 2018
I often use a thesaurus while coding, and I mentioned this fact to a non-programmer friend today. He was shocked, and he said that he thought that programming was mathematical, not lexical. But it’s not so easy to separate out—naming is one of the most important parts of programming (and math!), because it’s how you reduce complexity down to something that you can understand, explain, and maneuver.
The conversation reminded me of a post I rea...
Posted on June 19th, 2017
You can write your Webpack config in Typescript, and it’ll save you a huge amount of pain. Webpack’s docs would lead you to believe that using Typescript requires a hacky customized set up, but in fact it’s as simple as installing a single module and changing your extensions from .js to .ts!
You can find the rest of the post at the Webpack blog.