Showing all posts tagged #programming:

On bounties

October 12th, 2020

Michael Kaminsky recently emailed me an interesting post he wrote about bounties in open source, and I took the opportunity to write up some thoughts that had been swirling in my head for a while. You can find the (lightly edited) response I sent to him below. ~ Bounties are great for well-scoped, low-context work. For example, bounties work can quite well for things like penetration testing, because it's fairly clear what the objective is (sp...

Situated Software clipping

March 14th, 2020

Written by Clay ShirkyFirst published March 30, 2004 on the "Networks, Economics, and Culture" mailing list. Subscribe to the mailing list. I teach at NYU's Interactive Telecommunications Program (ITP), where the student population is about evenly divided between technologists who care about aesthetics and artists who aren't afraid of machines, which makes it a pretty good place to see the future. Part of the future I believe I'm seeing is a ...

OSS lazy-loads governance

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...

Twitter backup

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...

A steelman for tradition

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. 1. "Bik...

Strategically ignorant

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 ...

Webpack and Ethereum smart contracts with Typescript

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...

What's in a name?

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...

Unambiguous Webpack config with Typescript

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.