Labnotes

Weekend Reading — The last programming book you'll ever need

Published on

@ThePracticalDev

This week we learn to design with empathy; make Bash sensible again; let me npm that for you; we explore bad metaphor; IRS gets hacked again; art and science are made for each other; no more voicemail!


Design Objective

Too Sensitive You can't do good UI until you start caring about people:

Karen McGrane has this great quote about mobile: “You don’t get to decide which device people use to access the internet: they do.”

You also don’t get to decide the state someone ought to be in when they use your service, or the feelings they ought to have along the way.

Dsyelixa This is what the web looks like to people with dyslexia.

Why Circular Profile Pictures Accentuate Faces

On chat as interface

Here’s the short list:

  • The surface area of the interface is almost untestable.
  • The UI is the log file.
  • Every user interaction is also a survey.
  • Chat is a great interface for the Internet of Things.

@chopeh

How to sum up three years of design in one image.


Tools of the Trade

Draft.js A framework for building rich text editors in React, powered by an immutable model and abstracting over cross-browser differences.

What’s New in jQuery 3 jQuery 3 catches up with JavaScript iterators and promises, uses requestAnimationFrame.

Introducing CSS Scroll Snap Points Fix junky scroll hijacking with this one cool CSS trick.

Tasty CSS-animated hamburgers/ Animating hamburger icons using CSS3 3D transforms (translate3d).

CSS: Binary Writer This is pretty cool use of HTML and SCSS (no JavaScript!)

mrzool/bash-sensible "A a simple starting point for a better Bash user experience out of the box." These settings do make Bash easier and more useful.

Pony Foo Weekly A newsletter about the open web, highlighting the most important news about the web every Thursday.

The pluggable linting tool for text and markdown. Natural language text, Markdown and HTML (via plugin).

diafygi/acme-tiny This is a tiny, auditable script that you can throw on your server to issue and renew Let's Encrypt certificates.

@waldojaquith If yours any more complicated? Why?

I wrote this regex to validate people’s names: (.+)

Visualizing Influence Relations of Programming Languages What it says on the label.

@noahsussman

The great thing about cache invalidation jokes is they never get old.

@GonzoHacker Never happened to me ...

That thing where you open Xcode on purpose this time


Lingua Scripta

marten-de-vries/kneden A Babel.js plugin that transpiles async/await to vanilla ES6 Promise chains.

let me npm that for you Hilarious.


Lines of Code

@jessitron This exercise is the key to better, easier to maintain code:

Programming exercise:

I give you some requirements

You write the code

A third person tries to guess the requirements based on the code.

@venkat_s

Best advice I heard from a very mature & experienced developer: "Don't fear to throw away what you create. That's the only way you improve."

@ExpertBeginner1

Good variable naming is not in the budget. From now on, there's a 10 second time limit on naming anything.

@dimensionmedia "Something something UNIT TESTING ."


Architectural

Be Careful with Software Metaphors "Software is just like construction, provided you’re terrible at building software."

@phillip_webb Software development is the art of getting neither right:

What would you like to complain about?

[ ] Too much magic

[ ] Too much boilerplate

@RealNickJacques This explains so much ...

"A full-stack developer is one who can add technical debt to any layer of the application" -My coworker


Locked Doors

The IRS is using a system that was hacked to protect victims of a hack—and it was just hacked It gets better, and by better, I mean worse:

“Some likely identity thieves were able to correctly answer authentication questions,” the report said, “while some legitimate taxpayers were not.”

More than 11 million HTTPS websites imperiled by new decryption attack The thing about encryption backdoors:

Tuesday's OpenSSL updates make it impossible for ordinary end users to enable SSLv2 without declaring explicit intent to do so. The patch also removes support for extremely weak 1990s-era ciphers that are key to making DROWN attacks work. The weak ciphers were added to all SSL and TLS versions prior to 2000 as part of US government's export regulations (more about that later).

Bidding On Security You have to read it all to understand why this is so naive:

Sure, their regex only matched alphanumeric characters inside script tags, but really, who writes javascript without using letters or numbers? How much harm could possibly be done?

The absolute horror of WiFi light switches The Internet of things you should never buy and install in your house:

I'm guessing, with a small amount of effort, you could toggle strangers' lights to your heart's content.

Most software already has a “golden key” backdoor: the system update "Software updates are just another term for cryptographic single-points-of-failure."

fulldecent/system-bus-radio Turns your computer into a radio transmitter, illustrating how hard it is to air-gap your devices. All in 25 lines of JavaScript.


Techtopia

Art and Math and Science, Oh My!

And that’s why stories and movies and comic books are so valuable as inspiration for what technology we build. Technology-inspired technology gives us incremental improvements. Art-inspired technology gives us brand new ideas.

Today’s hoverboard hysteria isn’t so different from the early panic around bicycles Neophobia:

Because it was new, some dismissed it as a frivolous toy. Others saw it as a peril. There were legitimate concerns scattered amongst the hysteria, but most of it was noise.

My eyes are already bad.


None of the Above

Aussie penguins in rehab take to hipster jumpers

More than ever, science must be central to all our lives

“Oh, that sounds fascinating and terribly clever. I’m afraid I was never very good at science or maths. I know nothing at all about it.”

The conversation quickly moves on to the latest novel they’ve read or concert they’ve attended. Now imagine the reverse. Suppose I had said: “Oh I really know nothing about literature or arts or music.” The same people who proudly proclaim their ignorance about science and maths would consider me an uncivilised boor.

The Most Dangerous Writing App Set session time and don't stop writing or it will delete everything.

@LibyaLiberty

If you're an American confusedly watching the darkest forces of ur nation rally behind a demagogue-maybe u can understand the Mid East now.

Do people in non-English-speaking countries code in English? [closed]

I'm from Canada, but live in the States now.

It took me a while to get used to writing boolean variables with an "Is" prefix, instead of the "Eh" suffix that Canadians use when programming.

For example:

MyObj.IsVisible

MyObj.VisibleEh

Pantograph – The strange and unusual objects of Japanese designers

@ASmallFiction

We scattered our signals across the cosmos, searching for life.

When the reply came from the stars, it decoded to one word:

"Unsubscribe."

No More Voicemail "This simple app helps get the modern day message across that people should just text you if it's important." Cool trick:

The app isn’t actually disabling voicemail per the carrier – it only seems like it is. Instead, No More Voicemail uses the conditional call forwarding feature on your phone to send your unanswered calls to a virtual number that will just ring and ring.

Neko Atsume Characters Macarons Tower