Labnotes

Published on

Design Objective

Designing a Better Notes App — Design + Sketch App Designing a simple note-taking app: from rough idea, through UX mapping, to low-fi UI sketches, and finally hi-fi interactive prototype.

A* - A Truly Iterative Development Process

In A*, the product owner has no vision of the solution, only a vision of the problem, and a clear idea of how we’ll know when that problem’s been solved. … They don’t describe a software product, they describe the world around that product, and how it will be changed by what we deliver. We ain’t done until we see that change.

7 Things Every Designer Needs to Know about Accessibility Covers the major things you need to know in order for your products to meet the minimum of Section 508 and the Web Content Accessibility Guidelines 2.0.

The Web isn’t uniform

As an active empathy practitioner I imagined what the ongoing no JavaScript Web browsing experience could be. While the percentage of these users might be relatively low, we fail to remember that until the scripts load, that scenario is true for all of us.

Build Your User Base with These Human Behavior Hacks

So back in the day, a bunch of economists were trying to predict how people and markets would behave assuming they’d use rational criteria. What they found is that it basically never happened,” says Alvarez. “Instead, people were being driven by what researchers considered ‘supposedly irrelevant factors’ (or SIFS). It turns out these ‘irrelevant’ factors are everything.

Tools of the Trade

can-zone Zones provide a way to hook into the behavior of the JavaScript event loop.

@kventil "Docker."

Lines of Code

hugh geoff true

the one where writing a commit message makes you realise your solution isn’t actually very good so you find a better one

Noah Sussman:

Beware of bugs in the above code. I have only googled the SO answers, not clicked on them.

Architectural

“The Art of Computer Programming” by Donald Knuth

… it strikes me that whoever chooses the constraints of the target development environment is choosing the playing field for our future innovations.

Programming Wisdom:

“Without requirements or design, programming is the art of adding bugs to an empty text file.” - Louis Srygley

Mannish Agarwal:

As programmers,our most useful skill isn’t so much knowing how to solve a problem as knowing how to explore a problem we haven’t seen before

Peopleware

Being A Developer After 40

As long as your heart tells you to keep on coding and building new things, you will be young, forever.

Sarah Mei:

Junior, mid-level, senior developers: I just realized what the actual difference is.

Junior devs need help figuring out how to do things. They don’t have the research skills to get things done on their own.

Mid-level devs have figured out the how & are starting to get the why, though they don’t communicate their ideas very well.

Senior devs long since figured out the how and the why. They have their own ideas and can get other people to go along with their ideas.

There’s a limit to how much impact 1 person writing code has. Senior-level impact is when you can change how other people write their code.

Work/Life

Why I Hire People, Not Skills

Intelligence and experience are valuable, but a scrappy person who fits well on the team can learn fast.

F*** You, I Quit — Hiring Is Broken

I wrote this story to share my tech interview experience during past several months and why I’ve decided to stop looking for a job.

Landing an internship has become way more important and complex than anyone's acknowledging No one wants to be the first full-time employer anymore of new college graduates who haven’t worked or interned anywhere. On the race to lock up the best interns early in their undergraduate career.

Locked Doors

SecuriTay:

“Everyone should run their own services, fight centralization!” How about no, that’s what got us millions of unpatched Wordpress sites.

Recreate the famous "decrypting text" effect from the movie Sneakers (1992)

Techtopia

Bots are awesome! Humans? Not so much

What I learned about humans and AI while sifting through those conversations is fascinating and also a little disturbing.

When the next Twitterbot loses it, remember that its tweets are protected

The Dutch example illustrates what police might do in the event of a “true threat” from a Twitterbot. The Tay debacle suggests that a Twitterbot could produce speech so hateful that local, state, or federal government might want to prohibit it.

None of the Above

William Shakespeare, Playwright and Poet, Is Dead at 52 A modern day obituary. Brilliant.

An Amateur vs. ISIS: A Car Salesman Investigates and Ends Up in Prison The story of one man’s deepening obsession with a terrorist group is a reminder of how the Internet provides easy portals to distant, sometimes dangerous worlds. It shows the complications for law enforcement agents who confront an overeager amateur encroaching on their turf.

PodRide a practical and fun bicycle-car An all-weather bicycle!

Published on

How to Use Math Words to Sound Smart


Design Objective

Bots won't replace apps. Better apps will replace apps. Remember when on-demand/sharing economy was the Next Big Thing, and everyone went there, and then it turned out that it only works well in a few specific markets? Well …

Not only is “conversational UI” a red herring, but as we look more closely, we’ll can even see places where conversational UI has breached its limits and broken down.

The Future of Technology Is In Your Ear When you are away from keyboard — even if it’s just a few feet, or a pocket away — that opens the door for new interactions: conversation UI but with sound instead of text.

Designing complex products The two-fold challenge with complex products:

Complexity in product design tends to rear its head in two ways 1) the complexity of managing people and opinions. And 2) the complexity of designing the product itself.

How designers can use unit testing to build resilient and happy design systems

Because one of the most challenging parts of creating a sustainable design system across a large organization is getting other teammates to use it, establishing a collaborative process up to the moment of integration can make it easier. When people collaborate on something, their buy-in is increased.

Design for Humanity

The first time you meet someone, your first thought isn’t “How do they function?” it’s “How do they make me feel?” And when you’re asked about that person later, you describe their personality: “She’s relaxed, smart, witty. She makes me laugh.”

Designing with Science A small team is given a big problem to solve: presenting a trove of analytics data in easily digestible form.


Tools of the Trade

GitHub - dustinspecker/awesome-eslint A list of awesome ESLint plugins, configs, etc.

We don’t know how to build conversational software yet

For now, at least, startups can build a defensible business by getting their hands dirty and building better conversational software the inelegant way. In a few years, that could become a lot easier, and that will change the landscape all over again.

LazyDOM — an experiment to bring virtual DOM to the browser natively TL;DR React-style virtual elements are fast but cannot be consumed like real Elements, LazyDOM elements are fast like React elements, but can be consumed like real DOM Elements because they lazily proxy to one.

How to implement SRI in your build process Subresource Integrity is a very simple way to secure static assets hosted on servers you have no control over. Here are some tips for adding SRI to your build process.

Alephbet/gimel Run your own A/B testing backend using AWS Lambda and Redis HyperLogLog.

The Annotated Programmer Off-beat code annotations that need to exist:

@Undocumented This annotation is an expression of the API developer’s frustration that they inherited this code without having any idea of what it is for, what is is doing, and how it is (or is not) doing its job.


Lines of Code

Studying the Language and Structure in Non-Programmers’ Solutions to Programming Problems Fascinating study about the way in which non-programmers describe solutions to common programming problems (PDF):

The majority of the statements written by the participants were in a production-rule or event-based style, beginning with words like if or when.

Most popular languages require iterative operation on the objects, one at a time, while the participants strongly preferred to use set and subset expressions, or plurals, to specify the operations in aggregate.

Cheng Lou

Lisp: everything’s data

Smalltalk: everything’s an object

Haskell: everything’s computation

JavaScript: everything’s a library


Architectural

Hacker News Onion

How LinkedIn Scaled To Billions Of Unread Messages


Peopleware

Born for it On the lack of diversity in tech, and how we fooled ourselves into this situation:

It’s startling to realise that the pressure of the software crisis, the resulting hiring practices and these two psychologists from the 60s might have shaped this whole image, while so many people are still assuming that it’s ‘just natural’.

The Novelty Effect Hack yourself with this one neat trick:

Once you know about the novelty effect, you can use it as as form of existential judo. When I start a new writing project I’ll download a new word processor specifically to trigger the effect, knowing in advance that it’ll only last a few weeks or months, but what the heck—it’ll be fun while it lasts. The novelty effect is a blast for tool users!

Mistakes at Work Are Not Sins 100%

Software development is a difficult activity and software developers will make mistakes. They shouldn’t be crucified for making honest mistakes. It’s part of the learning. Great managers don’t cheat their employees of personal growth and development opportunities.

Avoiding the Trap Learning to recognize burnout before it hits you.

Unintuitive Things I’ve Learned about Management (Part 2)

Ultimately, you need to have faith in yourself and do what resonates with you. And when you reflect back on those outcomes, you need to recognize and learn from your mistakes.


Startup Life

My startup failed, and this is what it feels like… Although a rollercoaster that ended with the company shutting down, this is a story of true grit, a founder that won’t give up, and found a way to route around one obstacle after the other. This is what it takes to be successful.

What US Software Companies Should Understand About The Rest Of The World A rant from outside the Silicon Valley echo chamber:

Rather than dealing with really difficult issues (getting product on time, fixing bugs, etc), you’d rather fantasize about viral ad campaign that will triple your business, so that you don’t have to deal with problems that you weren’t able to fix so far.


Locked Doors

#126109 CSV Injection in business.uber.com CSV injection?

Reversing the petya ransomware with constraint solvers

The malware is different & unique from typical ransomware as it does not encrypts file. Instead it encrypts the MFT (Master File Table) on NTFS volumes.


None of the Above

Yes, the jet-powered hoverboard is real, and yes, the creator has crashed it

The Victorians who flew as high as jumbo jets

It was one of the most foolhardy flights in history, and only a stroke of luck at 37,000ft prevented them drifting up to their deaths at the edge of the atmosphere.

The Twitter That I Used to Know Tara Hunt on where Twitter lost its way, how it turned from the world’s largest water-cooler into yet another popularity contest, and what we can do to reclaim the old Twitter.

Emotional Responses to Corporate Text Messages, Vol. 3 Conversing with bots.

Have you tried turning it off and on again?

Published on

idiosynchris "Voltron: teaching kids distributed computing since 1984"


Design Objective

Why I love ugly, messy interfaces — and you probably do too Not all products benefit from ultra-minimalistic UIs:

Products that solve big, hairy problems are life savers. I love using these products because they work so damn well. Sure they’re kind of a sprawling mess. That’s exactly why they work!

The simplest way to achieve simplicity is through thoughtful reduction One way to arrive at products that are as complex as they need to be, is through thoughtful reduction:

The process of reaching an ideal state of simplicity can be truly complex, so allow me to simplify it for you. The simplest way to achieve simplicity is through thoughtful reduction. When in doubt, just remove. But be careful of what you remove.

Shedding Light on Dark Social: a Publisher's Case

we found that copying and pasting a link represented a staggering 84% of total shares. Furthermore, an astonishing 91% of all social referrals (visits that arrived through a share) were generated by copy paste shares.

The Inherent Problem with Anonymous Apps Makes the point that anonymous apps fail because they’re primary entertainment products and buy their nature cannot foster a community.


Tools of the Trade

CS 61A: The Structure and Interpretation of Computer Programs This is part of the CS curriculum at UC Berkeley. It’s their version of the SICP, but using the more practical Python language, with a sprinkle of SQL, Prolog and Scheme. If you or someone you know is starting their career in computer science, start here.

Font Awesome 4.6 Font awesome 4.6 introduces accessible font icons:

Every FA icon example page now has a better, more accessibility-minded default block of code that users can copy and paste.

voronianski/simon-le-bottle Getting started with Facebook Messaging Platform and Node.

John Allsopp

web dev axioms to live by:

  1. if you can do it in HTML, don’t use CSS
  2. if you can do it in CSS, don’t use JS
  3. if all else fails use JS

brew/Analytics.md Homebrew will shortly begin gathering anonymous aggregate user behaviour analytics and reporting these to Google Analytics. Here’s how to opt out.

Parker Higgins

One of my favorite bots is rm. You chat with it and it tell it what files to delete and it deletes them. Really fun stuff.


Lingua Scripta

Why Javascript Development is Crazy This:

The state of Javascript development is overwhelming and confusing because everyone is overengineering their apps by default without even realizing it.

Why you should enforce Dangling Commas for Multiline Statements TL;DR easier to read diffs.

Stranger Danger: Addressing the Security Risk in NPM Dependencies A presentation from the O'Reilly Fluent Conference by Snyk co-founders. I linked to the buffer exploit blog post last week, this talk covers the exploit, and shows you how to use Snyk in your development workflow.

JQL - Mixpanel MixPanel using V8 to run your map/reduce/group analytic queries.

This is the age of server-less architecture, we’re going to see a lot more services offering hosted queries. The thing about hosted queries: you pay for access to the feature (as part of a plan), not for the performance (CPU hours). And so it makes more sense for providers to choose JavaScript because it’s well known, dynamically typed, and fast enough.


Architectural

Noah Sussman

“containers don’t magically fall over all by themselves” — ops wisdom from a kindergarten classroom

Bla bla microservices bla bla Jonas Bonér looks at microservices from the perspective of first principles, distilling it to its essence and putting it within the context of distributed systems. (Video)

The Linux Scheduler: a Decade of Wasted Cores Looking at performance issues of the Linux scheduler when running on multi-core machines. An interesting peek into how the scheduler works. (PDF)


Locked Doors

bscht In case anyone needs a clever nickname for the next Linux kernel privilege escalation: You're welcome.

Internet mapping turned a remote farm into a digital hell

If it knows only that an IP address is somewhere in the U.S., and can’t figure out anything more about where it is, it will point to the center of the country.


None of the Above

Estelle Weyl

Her: The Internet is like ancient Egypt.

Me: How so?

Her: Everyone worships cats.

The sugar conspiracy

In 1972, a British scientist sounded the alarm that sugar – and not fat – was the greatest danger to our health. But his findings were ridiculed and his reputation ruined. How did the world’s top nutrition scientists get it so wrong for so long?

@LisaDib1 "I'll explain on the way, just get in"

Published on

“Sprint planning” George Caleb Bingham, 1846

“Sprint planning” George Caleb Bingham, 1846


Design Objective

Peter Lyons

I'm a web developer. I don't click the back button. That's like asking for a random problem.

@DesignUXUI "When you think your design works perfect but then you do user testing…"


Tools of the Trade

𝚫 now: realtime node.js deployments One-step deploy Node.js web apps in the cloud. Fantastic for demos, tests, hackdays.

Chrome is finally getting native push notifications on Mac You can turn it on today with chrome://flags/#enable-native-notifications.

React v15.0 Is here. Better support for SVG, and createElement replaces innerHTML — read the notes to learn why it matters.

VersionPress Git-backed WordPress! Tracks changes to database, uploads, themes and plugins, so you can undo any change. It can even git merge database changes.

Eran Hammer

Don’t feel bad. No one really knows how to use git beside add commit push pull tag and clone. We all fake it

AWS Lambda Supports Node.js 4.3 Finally!

Building a Dynamic DNS for Route 53 using CloudWatch Events and Lambda Still not sure what AWS Lambda is for? Here’s one project using Lambda to respond to infrastructure changes in real-time.

groupon/ndu: node disk usage Visualize how much space your Node dependencies are taking.

DylanPiercey/auto-sni Let’s Encrypt no-fuss TLS certificates for Node.js webapp.

Spectacle CodeSlide: Present code with style This is a fantastic way to present source code when making a presentation.


Lingua Scripta

joakimbeng/middl A generic middleware library, inspired by Express and suitable for anything. Supports promises and generators.

Exploiting Buffer The lesson I learned from this: when you implement it, argument overloading feels like it’s simplifying the API, but over time it has the opposite effect, and the resulting complexity could lead to bugs and security defects.

ES6 module loading: More complicated than you think JavaScript, why you so complicated?


Lines of Code

How to Avoid Brittle Code My favorite practice is “Upgrade everything, all the time”. Because it works. If you keep exercising the code base, the code base stays in great shape. Leave it alone for a while, and good luck when you do need to make a change.

Writing good code: how to reduce the cognitive load of your code

  1. Keep your personal quirks out of it
  2. Divide and conquer it
  3. Make it discrete and processable
  4. Make it readable
  5. Make it easy to digest

How Many People Does It Take To Ship Software? “I miss the days when the team was small but the results were big.”

Lari Kirby

this is why to have a good test suite: so when you do something stupid, you look at the tests and say to yourself, “Oh, that was stupid”


Devoops

Contaminate AWS instances on ssh login Immutable infrastructure to the max: tag an AWS as contaminated the moment anyone SSH into it. (Or use a platform that doesn’t allow you to SSH into a running instance)

If Dr House did DevOps I like Differential Diagnosis as a framework to formalize the investigation process, to help make decisions in a stressful situation, and to train less-experienced engineers in incident response.

Developer looking at production logs after a regression w/ downtime - oil canvas,circa1580


Peopleware

Hanlon’s Razor and the Infuriating H-1B Visa System

All human systems will be gamed and designing easily game-able systems is a moral betrayal.… Hanlon’s Razor (the excuse of stupidity) does not morally exonerate

What Do Millennials Really Want at Work?

So why in the face of such overwhelming evidence do the myths about Millennials persist? Part of the reason is the proliferation of poor “research,” or overreaching and invalid conclusions based on otherwise valid facts.


Locked Doors

Jason Macintosh

Assume that every web-password you use is stored in plaintext, and that a crontask emails it around daily. (I see how the sausage is made.)

'Devastating' bug pops secure doors at airports, hospitals All it takes Lawshae says is ‘a few simple UDP packets’ for the 'potentially devastating bug’ to be exploited. Authentication is not required.

‏@troyhunt: How to identify a vehicle at risk of collisions


Techtopia

Welcome to S.F., the premier assisted living community for Millennials

Even when you’re not sick, household chores aren’t a blast. In San Francisco, you don’t have to do any of them — if you can afford it.

Innovation is overvalued. Maintenance often matters more Capitalism excels at innovation but is failing at maintenance, and for most lives it is maintenance that matters more

I doomed mankind with a free text editor Will long and complex words make you look smarter? Meet the people who think that short words will make us dumb


Startup Life

Frog and Toad are Cofounders The characters you loved as a child, all grown up and working in San Francisco.

Paul Bellamy

A startup accelerator is where you smash startups into each other at high speed, in the hopes of capturing the emitted business model.


None of the Above

Karl Kovacs: How a career in technical writing ruined me as a letter writer

AP Stylebook

We will lowercase internet effective June 1, when the 2016 Stylebook launches.

Also, we will lowercase web in all instances – web page, the web, web browser.

OMATA One: Analog GPS Speedometer Bicycle GPS computer with a minimalist, modern, analog UI. (KickStarter)

A Hacker’s Guide to Bending the Universe If you’re going to conquer the world, you can’t let a broken CRT monitor stand in your way.

RUN and RUN / lyrical school Open your iPhone, click this link, and watch this music video.

Published on

Design Objective

Introducing Design Systems Ops An interesting way to deal with the gap between design and engineering:

A Design Systems Ops is a person who is part of a design systems team … At the same time, Design Systems Ops need to understand the engineering requirements … In a way, a Design Systems Ops is the translator between these two worlds.

The Veil of Ignorance This is something that I often struggle with, when working with young designers: how do we make design more inclusive?

Finding your own style as a designer Don’t worry about finding your style, it will find you:

You see, having your own style is impossible to avoid. But I like to see my “style” more as a definition of how I approach my work. How I work with people, how I deliver results, and how I solve problems.

This Is Why I Never Hire Product Managers When you hire for the role of product manager, look beyond the usual suspects.

Mathias Verraes

There are surprisingly few software design books that recommend taking a walk, a shower, or a nap, as an important step.

Apple, Google, And The Race To Create A Skeuomorphism You Don't Hate Skeumorphism is not just leather stitch in a notes app, it’s also objects that work in their environment, like screens that adjust to ambient light.

BTW the screen on the new 9.7" iPad Pro is fantastic.

Connie Chan Read this first, to decide if conversational commerce is right for your product:

1/ Conversational commerce is unproven, even in Asia. If texting takes more time than clicking a button on a webview, why is it better?

6/ THIS is what a WeChat transaction actually looks like (ordering McDonalds); not a chat but an app-within-an-app.

Tools of the Trade

Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Who are you and what did you do with Microsoft?!

This isn’t Bash or Ubuntu running in a VM. This is a real native Bash Linux binary running on Windows itself. It’s fast and lightweight and it’s the real binaries. This is an genuine Ubuntu image on top of Windows with all the Linux tools I use like awk, sed, grep, vi, etc. It’s fast and it’s lightweight.

Spreadsheets are dead, long live reactive programming environments! A spreadsheet that is testable, and git-table? Yes please!

ServiceWorker Cookbook The Service Worker Cookbook is a collection of working, practical examples of using service workers in modern web apps.

State of affairs: Bootstrap 4 vs Foundation 6.2 Need a help deciding between the two?

Apple launches Safari Technology Preview for developers “Apple tells TNW it will update Safari Technology Preview every two weeks or so, and will sign and validate each release.” A way to test new Safari features without messing with WebKit nightly.

The Three Breakthroughs That Have Finally Unleashed AI on the World

  1. cheap parallel computation
  2. big data
  3. better algorithms

Lingua Scripta

What if we had a great standard library in JavaScript?

A standard library would make it a lot easier to write JavaScript by eliminating the need to come up with similar or same solutions to small issues. It would effectively make code easier to read and write as a lot of “searching for a library” and “or maybe I should write this quickly myself” would be eliminated.

The npm Blog — changes to npm’s unpublish policy Follow up to last week’s catastrophe/mishap (depends on who you ask), npm is going immutable(-ish). Limits unpublishing to 24 hours, although packages can still get unpublished and replaced with something else, at npm’s discretion, so really more of a “trust us” architecture.

Why using _.chain is a mistake

There are two not insignificant problems with any application or library that makes use of _.chain: its most common use promotes importing the entirety of lodash to work, and it’s hard to extend with new methods.

Node.js ES2015/ES6 support ES2015 support matrix in Node 4.x, 5.x and upcoming 6.0.

async-csp CSP style channels using async/await:

const ping = await table.take();  
await table.put(‘pong’);  

Lines of Code

Unit Tests For Algorithm Time Complexity How would you test and algorithm to prove that has a time complexity of O(N log N)?

don't read comments

Today’s overloaded CS term: “pass by reference”. You can’t tell if they mean that or if they mean “pass reference by value”

Rick "This GitHub search says everything about the art of programming"

18,164,823 search results for "This should never happen"

Architectural

This week in Architectural, we look at the highs and lows of memory usage:

Peter Seibel

OH: it is amazing how many people reach for some complex distributed system when really all they need is a PC with 256 gigs of RAM in it.

Bill Budge

Older programmers are like people who grew up in the Great Depression. Thrifty with code and memory because we grew up with so little.

Techtopia

Modstock Modern stock photography for the lives we really live.

We have to go out for dinner. The refrigerator isn't speaking to the stove

Startup Life

How to Decrease the Odds That Your Startup Fails

We chose the wrong market, we didn’t understand the value drivers, we didn’t do enough planning and we did what we thought was cool but the market didn’t validate that.

Peopleware

On leaving your politics at home

I totally understand that from a white male atheist perspective leaving your politics are home is a thing you can do, should do, and is a thing you want everyone to do, but this is not a thing I can do.

Late sleepers are tired of being discriminated against. And science has their back TIL that I’m “evening-oriented”:

Camilla Kring is the founder of the B-society, an international advocacy group calling for increased acceptance of the evening-oriented.

None of the Above

mortenjust/cleartext-mac Write better, with a text editor that only allows the top 1000 most common words in English.

Pádraig Belton “Spare a thought for the @nationaltrust staff, up at 2 am to change the time at Stonehenge. #TimeChange”