Weekend Reading — Made of practice

Truth Facts: Explaining the battery life of your laptop

This week we explore spatial interfaces and the dark patterns of Ashley Madison; we learn about progressive apps and the CRAP metric; we practice beautiful code and settle the score on tabs vs spaces; we make safer, easier to memorize passwords; we blame Tinder on the fall of society; and enjoy the most awesome cat video from 1928!

Design Objective

Spatial Interfaces Design that goes beyond elements on a page:

A great Spatial Interface meets our expectations of a physical model. Designed for human beings, it supports a mind, living in the dimensions of space and time. They are Interfaces that are sensible about where things lay. Like a well designed building, they’re easy to traverse through. One space flows into the other, without surprise.

How Ashley Madison Onboards New Users Hilarious look at the dark patterns that Ashley Madison uses when on-boarding new accounts.

Tools of the Trade

What Comes next for the Web Platform (video talk) Progressive apps: start as a web page, install on home screen, works offline (including notifications). This needs to happen on all browsers.

Hypothesis Brilliant, and I'd love to see this ported to JavaScript:

It works by generating random data matching your specification and checking that your guarantee still holds in that case. If it finds an example where it doesn’t, it takes that example and cuts it down to size, simplifying it until it finds a much smaller example that still causes the problem.

The Code C.R.A.P. Metric Hits the Fan How have I not heard of the CRAP metric before?

The Change Risk Analysis and Prediction (CRAP) score uses cyclomatic complexity and code coverage from automated tests to help estimate the effort and risk associated with maintaining legacy code.

atom-pair Atom package for pair programming.

isometric-contributions Chrome extension that renders Github contribution graphs in 3D:


if you want to write fast software, use a slow computer

Twitter Contest Winning as a Service Haha:

This is the story of how I wrote a Twitter bot to automatically enter contests and ended up winning on average 4 contests per day, every day, for about 9 months straight.

HTTP Status Dogs HTTP status codes explained with dogs.

Lingua Scripta

Loupe A visual tool to help you understand how JavaScript's call stack and event loop work.

The JavaScript Looping Evolution JavaScript loops through the times: from ES3 to ES5 to ES6.

textract A text extraction node module. Works with HTML, Markdown, PDF, DOC, XLS, PPTX, PNG/GIF/JPG and many other data formats.

JavaScript is the C++ of the Web And C++ is never a compliment:

Since then, I feel I’ve been watching JavaScript go the way of C++, it’s becoming a “kitchen sink” language. So many new features have been added that the new ES6 specification document is literally twice the length of the ES5 specification. Worse yet, a year before the ES6 specification was even completed, there was already a laundry list of features scheduled for integration into ES7

Lines of Code

Beyond PEP 8 -- Best practices for beautiful intelligible code PEP 8 is the Python code style guide, and this talk uses PEP 8 to illustrate the difference between stylistically correct code and clear, maintainable code. You don't need to know any Python to learn from this video.

Popular Coding Convention on Github Whether you want to go with the flow (spaces) or stand out from the crowd (tabs), this handy code style popularity index is your friend (495 stars). Presented here, without irony.


Retries: magic way to turn errors into slow operations

Timeouts: magic way to turn slow operations into errors


The other side of avoiding premature optimisation is bothering to optimise when it is no longer premature.


The bugs are coming from INSIDE the developers


Basic rule of programming: if you stay up all night, you'll probably fix the bug, but you definitely won't be fixing any the next day

Locked Doors

Passphrases That You can Memorize — But That Even The NSA Can't Guess Using a dice and dictionary to create secure yet easy to use passwords:

Not too bad for a passphrase like “bolt vat frisky fob land hazy rigid,” which is entirely possible for most people to memorize. Compare that to “d07;oj7MgLz’%v,” a random password that contains slightly less entropy than the seven-word Diceware passphrase but is significantly more difficult to memorize.

Privacy Badger 1.0 Is Here To Stop Online Tracking! A self-learning algorithm:

As you browse the Web, Privacy Badger looks at any third party domains that are loaded on a given site … If the same third party domain appears to be tracking you on three or more different websites, Privacy Badger will conclude that the third party domain is a tracker and block future connections to it.

The old speak: Wassenaar, Google, and why Spender is right This. Very much this:

But if you care about systemic security. The kind where you don't give two flying fucks if Bob's desktop gets clientsided or Jane's Android doesn't know how big an mpeg4 frame oughta be, then you will stop circle jerking over individual vulnerabilities and listen to what Spender has been saying for years.

Which is: you don't chase and fix vulnerabilities, you design a system around fundamentally stopping routes of impact.

A junior Defence staffer allegedly took home an intelligence report and posted it online The interesting twist to the story: the 4chan community responds with "fake and gay", an hour later, the report disappears.


Tinder and the Dawn of the “Dating Apocalypse” The sky is always falling. This generation's romantic life is no longer threatened by bars, raves, AOL chat rooms, or rock & roll. But Tinder will be its downfall.

The Data Drive I'm not quite sure where to put this, other than, check out the site and read the story behind it. An experiment in automated lobbying and artificial politics.

Is this illegal? I hope not.

Do you actually care? No.


I'm not made of magic; I'm made of practice <= How to be better at anything!

Fund Club Pledge $100/month to fund tech projects by and for marginalized people.

Hacking is Important On the importance of hacking culture to innovation and growth:

A healthy product company is, confusingly, one at odds with itself. There is a healthy part which is attempting to normalize and to create predictability, and there needs to be another part that is tasked with building something new that is going to disrupt and eventually destroy that normality.

How One Startup Grew From Zero to $100K in Monthly Revenue
In Only 11 Months
Shameful click-bait title. But this is actually a fantastic interview with Laura Roeder, many gems about software marketing and managing people, here's but one:

Something that we do that works really well is we have people fill out a questionnaire instead of submitting a resume.

You can’t really tell much from someone’s resume.

That Boss Who Set Minimum $70,000 Salaries for All Employees? Here’s How That’s Working Out So Far Not too well. It seems that, when people are invested in class hierarchy — income disparity is the modern embodiment of class — they'll find every excuse to reject income equality:

Mr. Moran also fretted that the extra money could over time become too enticing to give up, keeping him from his primary goal of further developing his web skills and moving to a digital company.

None of the Above

@AllLondonBoy Click to watch. This is why, as a cyclist, never yield the middle of the lane to a deadly vehicle!


"Why does philosophy matter?"

"I don't know, why does science matter?"

"Well because scie-"

"Annnnnnnd you are doing philosophy."

Great Leaps Forward In Ice Cream History The history of my favorite dessert.

PC2Respect Google Chrome extension that replaces "political correctness" with "treating people with respect".

BiIIMurray Me. So much.

I act like Pacman at parties. I walk around the room eating everything in site and avoiding everyone.

@BFI "If you watch one cat vid today make it this one from 1928"

🔥 Looking for more? Subscribe to Weekend Reading.

Or grab the RSS feed