Labnotes

Weekend Reading — Software party

Published on

@sarah_edo "Time to throw a *software party*"

This week we're throwing a software party; the hardest problem in computer science is "npm complete"; how we stopped teaching kids about recursion; artisinal, small batch, uptime; we find the Internet's biggest blind spot; fix your SSH; and cats taking selfies.


Tools of the Trade

Medis Beautiful Management Application for Redis (OS X)

No, I Don't Want To Configure Your App! Even software designed strictly for developers should just work:

“Oh goddess, finally!” you exclaim, exasperated. You feel as if a major weight had been lifted from your shoulder, but you’re too frustrated with how bad computers are to think properly about this. “Now I can actually move on and get some work done,” you conclude, grumbling.

Eliminating Known Vulnerabilities With Snyk Snyk makes it easy for you to find, fix and monitor for known vulnerabilities in Node.js.

variadico/noti Trigger a notification when a terminal process finishes (OS X/Linux).

Safari 9.1 iOS 9.3 and OS X 10.11 betas support <picture> element, CSS variables, no-delay taps, and much more.

@bitemyapp

It's weird to me that programmers even assume all resources for learning a discipline that is very well paid should be free.

TheMozg/awk-raycaster Pseudo-3D shooter written completely in awk using raycasting technique.

@searls

TIL if you can't get your shrinkwrap.json file to work, the problem is said to be "npm complete"


Lines of Code

A software developer's guide to clean code Great rule for naming things:

The larger the scope, the more important to get the name right. Don't concatenate your variable and function names, you're not going to run out of bytes! But self-describing code is just about understanding the intent. It's also about refactoring and improving your code flow. Imagine if you did a standard "Search & Replace" for all references of variable "x" or even worse "a" or "b". A world of fun awaits as you undo your changes and revert to manually changing all instances of that variable.

@manisha72617183

Writing correct code at scale is essentially impossible.The best we can do is write simple code w/ as little undocumented magic as possible.

@tomaspetricek

Ouch. "50 million accountants use monads in Excel. They just don't go around explaining monads to everyone..." @Felienne #ndclondon

@soopa

Steps in mastery of a programming skill:

  1. Can I do this?
  2. Can I do this more easily?
  3. Can I do this more elegantly?
  4. Can I not do this?

@librarythingtim "Why kids today don't understand recursion."


Architectural

Tear Down This Wall! When IT needs grow, the common knee jerk reaction is to throw more coupling at it:

Ok, NOW you have a problem. Because now you’ve got coupling. And coupling is a much worse enemy than duplication. The number of systems doesn’t matter nearly as much as the amount of coupling you have between them.

@tef_ebooks

it's for craftsmen who need artisanal, small batch, uptime


Peopleware

Elaconf Keynote by Saron Yitbarek "Punching your feelings in the face." Fantastic talk.

How I Stumbled Upon The Internet’s Biggest Blind Spot Open source software, necessary, but not getting the investment it needs:

What could go wrong? Well, this, or this, or this. People getting burned out and quitting. Bugs or security vulnerabilities that go undetected. But also, people just making less stuff. Society moving a little more slowly.


Locked Doors

OpenSSH: client bugs CVE-2016-0777 and CVE-2016-0778 Patch your SSH config, while waiting to patch your SSH client:

echo 'UseRoaming no' >> /etc/ssh/ssh_config

TrendMicro node.js HTTP server listening on localhost can execute commands Friendly reminder that anti-virus software is often buggy and makes your computer less secure.

@jsoltero

Two factor authentication is great until you put the second factor in the washing machine.

@old_sound "I've built my own crypto"


None of the Above

@rrhoover "1/This cat is taking a selfie"

@JohnLyonTweets

Tips for improving concentration:

  • Make a list of tasks.
  • Take on one task at a time.
  • Take On Me was a fun song.
  • Ooh I found the video.

The Reductive Seduction of Other People’s Problems

If you’re young, privileged, and interested in creating a life of meaning, of course you’d be attracted to solving problems that seem urgent and readily solvable. Of course you’d want to apply for prestigious fellowships that mark you as an ambitious altruist among your peers. Of course you’d want to fly on planes to exotic locations with, importantly, exotic problems.

The resolution of the Bitcoin experiment Turns out, building distributed solutions at scale is a people problem:

Bitcoin has no future whilst it’s controlled by fewer than 10 people. And there’s no solution in sight for this problem: nobody even has any suggestions. For a community that has always worried about the block chain being taken over by an oppressive government, it is a rich irony.

Ruggie™ - The World's Best Alarm Clock Alarm clock that won't stop until you get out of bed and step on it.

Kittens VS BB8 Droids