Hi, fellow reader. And welcome back! We've got new reads & new rants. The team's been back in the office for a month now and everything seems to be into place.
I want to write about what happens when things don't really go down the smooth path with apps. Apps are always going to break. And when they do, it's sudden, abrupt and with little hope for recovery.
Crashing is that doomed state where your application goes black and your user goes mad. Definitely not a desirable place to be. But crashing isn't always bad. Crashing means you assumed something and that assumption failed in a certain environment or state. So you have to know about that.
- The app crashes.
- You get an email from your crashlytics solution.
- You find out what went wrong.
- You fix it and apply a patch.
- The patch gets to production.
- Users are happy.
Question is: can the whole process be avoided?
Most crashes happen due to programming errors - in which case the app probably isn't in a state where it can safely/reliably perform its function anyway. Think about critical devices. Something fails on a medical device. This kind of device should definitely not run when something goes wrong. The solution is to fail fast. No graceful degradation, no nothing.
There's even a more radical idea: crash-only software. Crash safely and recover quickly. This kind of a system enters in a recovery loop whenever a crash happens. Also, there's no other way to stop such a software rather than crashing it.
Of course, some situations demand defensive programming. But in most cases, I believe it's better to crash and recover than to crash and cover-up.
This monthly feature is always split in 3 parts: the rant, the articles and the icing on the cake. And my time for the rant is over. Next up, the articles:
You leave your laptop, walk to the kitchen and the moment you get there you forget why you wanted to go in the first place. Bummer!
In this piece (shoutout to Darius for recommending btw), three researchers from the Department of Psychology at the University of Notre Dame delve into this exact phenomenon: the "bug" that gets to your system when you walk though a doorway. This, in fact, is rather a symptom of the way your working memory functions.
Working memory temporary keeps information at-hand for a limited amount of time. When shelf-time expires, the data is purged in favor of new stuff.
Apparently, walking through a doorway signals the brain "yeah, perfect time to discard the information from the previous room, who needs that?"
All about hashing and salting passwords, with a special mention for the very veeeeery well-written FAQ section. A terrific takeaway is being sure not to forget to implement hashing comparison in length-constant time, so as to avoid timing attacks.
This piece brought to you by Cosmin.
On building a great product and being ready to be flexible & iterate fast. The point of the article (courtesy of Ioana) is to count a couple of regrets and put forward some advice for the early stages of software product craftsmanship.
My takeaway: always - and I mean always - use an established database management system.
Take a bowl. Put in some 9 to 5 work. Add a startup/project/passion. Add leisure time. Add sleep. What sleep? Discard extraneous tasks. Add commute time. Food. Errands.
Optional: listen to Cat Power’s Nothin’ But Time (feat. Iggy Pop)
Thanks go to Andrei for this piece.
Grit is living life like it's a marathon, not a sprint.
In this talk discovered by Silvia, Angela Lee Duckworth dishes on why and how 'grit' is a better predictor of success than IQ. In a compelling talk, she demonstrates how grit is determined neither by talent, nor by IQ, but rather by the ability to stick to commitments on the long term and to cultivate the 'growth mindset' triggered by learning from failure.
Building a startup is easy. You only need a great idea, a great team, a great product and great execution. Yeah, right.
This recommendation from Daniel is as straight to the point as it gets. I'd say it is a required read even if you just want to take your chance at Startup Weekend the next time it unfolds in your city.
Articles, done. Now, up to the inessential addition. /r/dataisbeautiful is my second to favourite subreddit and I've been advised to put some links here. I like the idea. So here you go. Enjoy some money flowing.
Watch my money flow! An animated representation of my 2018 income and expenses. [OC] from r/dataisbeautiful
Aaand still not done. Here's the bonus, an infographic from Ale, our new colleague from the QA team.
That's it. Out.
And don't let your reads pile up, my friend.