… web developer, writer, and consultant based in Hveragerði, Iceland.

I write about web dev, interactive media, digital publishing, and product development.

I’m available for consulting and hire.

Bookmarks – learnable programming

Oh, and ad blockers.


But ad blockers are ruining the web, right? Aren’t I actively harming my favorite web sites? To some extent, that’s probably true. Will it lead to a reduction of good content? Maybe, though anecdotally, the number and obtrusiveness of ads on a site doesn’t seem to be positively correlated with the quality of the content. I also admit that I’m selfish. I’d still run an ad blocker if all web ads were unobtrusive, had no performance impact, and ad networks would not track me. Why? First, because I can.2 Second, because I think advertising is bad for me and I owe it to myself to fight it.

Let’s not forget that advertisers are not our friends. They try to manipulate it us into buying stuff we don’t need. Advertising just isn’t a good thing for society.3 I would even argue it’s our moral responsibility to block out as much advertising as we can from our lives. In some sense, blocking ads is like using encryption to make it harder for governments to spy on us – something too few us do.

Is it Immoral to not Block Ads? by Ole Begemann (935 words).


If your "plan" to stop human tafficking is to criminalize all sex workers then your plan to stop kidnappings is to arrest all kids #sexwork

— Terence Tolman (@TWTdip) August 5, 2015


As I've said before, publisher 'community' sites are not genuinely reader-first if they're not publisher-agnostic.

— Sam Missingham (@samatlounge) August 5, 2015


Similarly, content strategy has always been a part of web projects. Notice the number of people now calling themselves content strategists who describe having had an epiphany after  realizing what they were  doing had a name. What content strategy as a discipline did was give visibility to activities and processes which could help make web teams less dysfunctional in relation to the content their web sites and applications were intended to deliver.

You Got Your Content in My Web Design by John Eckman (496 words).


"Hey, I'd prefer if you didn't do this thing." "I'm going to do this thing you dislike, but I'm joking! So it's ok and I'm funny!"

— Susan Arendt (@SusanArendt) August 5, 2015


Thesis statement: "sex takes up more space in imagination than in reality & so we have entirely disordered thinking around the subject"

— Jessa Crispin (@thebookslut) August 5, 2015


Birth control? BAN IT! Abortion? BAN IT! Gay marriage? BAN IT! Guns? Look, banning things never works. People will find ways to get them.

— Nick Martucci (@BlunderingIdiom) August 4, 2015


"Someone has talent, is good at what they do, let's ignore that they are a bigot!" What? No. >

— Spookyline (@marcyjcook) August 5, 2015


How many people held up as role models never asked for it and are deeply uncomfortable with label & accompanying expectations of perfection?

— Stoya (@stoya) August 5, 2015


When you check work email and have only 5 emails and can't believe it but it's that your mail client hung and now you have 194 emails.

— Scott Hanselman (@shanselman) August 5, 2015


There's no myth as sacred to the moneyed classes as the one that tells them they earned their position through hard work and merit.

— Clayton Cubitt (@claytoncubitt) August 5, 2015

The myth of meritocracy serves two purposes: to justify riches for the rich, and to blame the poor for their own poverty.

— Clayton Cubitt (@claytoncubitt) August 5, 2015


maybe if news organizations stopped selling their readers out to the highest bidder they might have a little better luck, idk call me crazy

— Adam Schweigert (@aschweig) August 6, 2015


When you realize you're more liberal than the aunt known as the "liberal aunt" in the family.

— Katie Schenkel (@JustPlainTweets) August 6, 2015


Dev: I'll include this icon font for these 5 social icons. Browser: OK, I'll download this 125Kb file… User: Why is this site so slow?

— Matt Hill (@matthillco) August 6, 2015


Scroll hijacking breaks basic user assumptions and muscle memory because the designer considers a site you fly by is a special snowflake

— !FALSE (@mahemoff) August 6, 2015


People sometimes say to me, ‘God you’re prolific.’ Or, ‘How do you get so much done — you must work nights and weekends too.’

I don’t think either statement is true. I write for a living. I do this probably forty eight weeks of the year, the rest being for leisure. That ought to generate more than one book in my opinion. The secret, if it is one, is simple… routine.

Routines are great because they remove from you the question, ‘Should I write now or… (insert relevant work avoidance practice here)’. If you have a routine you do it because it takes a conscious decision to break the habit. A good routine becomes something you follow without noticing. Bucking it is what takes the effort.

If there’s a secret to productive writing it’s a routine by David Hewson (644 words).

It’s pretty much the secret to productive anything.


By contrast live coding gives instant feedback so one sees whether one is getting closer to the solution. This leads to programmers not needing to think as much, they can just take a random guess and see how the output changes. If it gets better then they keep that change and make another. If it gets worse then they revert the change and make another. Watching programmers code in this manner is like watching a new species evolve; it works, but it is painfully slow and by the end the ‘programmer’ has no idea how the program works.

Neil’s News by Neil Fraser (421 words).


live-coding Processing environment addresses neither of these goals. JavaScript and Processing are poorly-designed languages that support weak ways of thinking, and ignore decades of learning about learning. And live coding, as a standalone feature, is worthless.

Alan Perlis wrote, "To understand a program, you must become both the machine and the program." This view is a mistake, and it is this widespread and virulent mistake that keeps programming a difficult and obscure art. A person is not a machine, and should not be forced to think like one.

How do we get people to understand programming?

We change programming. We turn it into something that's understandable by people.

Learnable Programming by Bret Victor (531 words).

Join my Newsletter

Do you ever wonder why a newly released open source project matters? Why it doesn't? How new or old standards or specifications affect your work? Why the web, tech, and publishing are the way they are?

This is an unapologetically political newsletter about tech, the web, and publishing—with context.

Because, to decide whether to use a piece of software, web standard, or open source project, you need to know why it‘s interesting, not just that it‘s interesting.

I won't send you spam. Unsubscribe at any time.

Writing