Weekend Reading — Democracy needs Javascript

Published on

Design Objective

Designing Moments Explores the design decisions behind Facebook's Moments app.

The anatomy of a credit card form How to design the perfect credit card form.

Meaningful Design for Apple Watch How most apps are doing it wrong, and where the real opportunity lies.

The Web’s Cruft Problem

Despite these various cruft-reducing features, I still believe this is an area ripe for innovation in the browser space. Why is it that as a publisher of articles your only real monetization option is injecting bulky ads that produce a worse experience for everyone?

Tools of the Trade

It's Time for Everyone to Learn About PostCSS What you need to know about PostCSS before making up your mind:

When people think they are criticizing “PostCSS,” they are probably criticizing some particular plugin, or plugin pack, or particular way to use a particular plugin.

Which is fine — criticize away — but don’t trick yourself into dismissing other PostCSS-based tools because one of them rubs you the wrong way.

12 Little-Known CSS Facts (The Sequel) And a few more things about CSS.

I Left My System Fonts in San Francisco The ugly CSS hack you need to use the San Francisco font in web apps.

More AWS Services, More Choices, and Still a Challenge I like the direction Amazon is going, but can't see myself using any of the new stuff. As the article says:

All of this … makes it clear that AWS is thinking one layer above individual services, and more about the entire environment.

But there are so many services it is hard to connect the dots.

aredridel/xhyvedocker Use Docker under OS X sans VirtualBox. This needs to be productized.

Duratio A calculator for time expressions, that understands statements like "08:00 until 16:30" or "Next sunday from today".

@qntm And you think your internet connection is slow?

New Horizons is now transferring the ~40Gb of data it gathered at Pluto back to Earth

at ~1kbps

for sixteen months

Lingua Scripta


The "just don't mutate stuff" approach to immutability working out pretty well for me. Especially with ES6 syntax:
b = {..a, changed: true};


In ES6, it’s still wise to use whitespace and parentheses for readability. o_O

It’s not your job to minify JS code, that’s uglify’s job. Arrow functions should read (…) => {…} most of the time:

DrBoolean/mostly-adequate-guide "Professor Frisby's Mostly Adequate Guide to Functional Programming."

This is a book on the functional paradigm in general. We'll use the world's most popular functional programming language: JavaScript.

gkz/es-collections An ES6 collections library including Stack, Queue, and PriorityQueue.

Promise Patterns & Anti-Patterns There's still a lot of that in production (and open source), check that you're not failing for these code traps.

Lines of Code

@Catfish_Man This is my number one rule for software developers:

If you write software, you owe it to your users to get some sleep, to relax in a park, to take a vacation. Tired and stressed means bugs.


Is it really functional programming if you don't give a talk about it?


DRY does not apply to test data. Tests should NOT share state. #tdd #code


NASA: Decade long flight across the solar system. Arrives within 72 seconds of predicted. No errors.

Me: undefined is not a function

@RebeccaSlatkin "What a Pull Request looked like in 1988."


Strangely Consistent A consistency model that's often used in product, but hardly ever discussed in the literature:

The phrase "strangely consistent" refers to the tendency of even unrelated parts of the design to exhibit patterns or interact in some way.

@cpojer Yes, you can use experimental features in a large scale project:

At Facebook, a team of 20 just killed more than 400 invalid super calls from our early implementation of ES2015 classes. Great team.

Locked Doors

What is ‘DFIR’? And how do ‘Digital Forensics’ roles vary?

The second biggest myth is that ‘porn mode’ has any impact at all on me being able to see what you’ve browsed in the last several weeks. It rarely does. Not judging, again.

Crisis Communications for IR (The Preso!) How to commmunicate as part of incident response.



The book I am reading just crashed, so I did a hard reboot and lost the page I was on. The future is weird sometimes.

Car Hacker's Handbook All the communication protocols you can use to hack your car.


5 Tips for Being an Effective Tech Lead

I have worked in several teams where developers had no idea how their task fit into a bigger picture. A small technical decision made by a developer might have a wider architectural impact but impossible to prevent if developers to do understand the broader picture.

After the Hero Comes

Don’t be a hero. Our work is about shared understanding, communication, and teamwork. I try very, very hard to never be a hero.

Why aren't there a lot of old programmers at software companies? This is how you avoid turning into a manager:

Wear hats and hawaiian shirts, even in the dead of winter. … Companies hire using hiring managers, and hiring managers want to hire people who look like them. If you are eccentric in your dress, even just a little bit, you will be invisible when they are looking to promote someone to management.

None of the Above


git commit -m "Fixed interface issues."

The hashtag #Curvy has been ousted from Instagram The problem with crowd-sourced community moderation:

It does present a problematic possibility: that images with the hashtag don't necessarily violate the nudity guidelines more often than other suggestive hashtags, but that these #curvy photos are simply more likely to be reported by users.

If You Buy The Stuff No One Else Likes, You Just May Be A “Harbinger Of Failure”

“Certain customers systematically purchase new products that prove unsuccessful,” … “Their early adoption of a new product is a strong signal that a product will fail.”

This means if you’re the kind of person who liked the Zune, you probably also liked Frito Lay Lemonade, which apparently was a thing.

tessalt/echo-chamber-js So cynical, and so fantastically brilliant:

When a user submits a comment, echochamber.js will save the comment to the user's LocalStorage, so when they return to the page, they can be confident that their voice is being heard, and feel engaged with your very engaging content. It does not make any HTTP requests. Since LocalStorage is only local, you and your database need not be burdened with other people's opinions.

With The Faithful 32 - Modded Edition Texture Pack Babel.js has a drunk tag.


Democracy needs Javascript to work. Oh my.