Published on

@sdw "I label increasingly nonsensical images with ‘UI’ and ‘UX’ and hope they get used in serious presentations"

This week we stay awake until 2AM because Photoshop; we Google "python curses"; we review the new O RLY? book; we learn about the ohnosecond; remember when computers had flashing lights?

Design Objective

In Defense of Homogeneous Design I'm firmly in the camp of boring/familiar design:

Digital product design isn’t abstract visual expression. It’s a conversation framework between a human and a computer. The components and interactions we create as designers are like parts of a global language.

@iamdevloper Ever wondered why developers don't take designers too seriously?

“I was up until 2am last night because one of our Photoshop mockups stopped working” - said no visual designer ever.


respect for users as a business model vs contempt for users as a business model

Tools of the Trade

janeway A curses/blessed-based console, inspired by the developer tools in Webkit/Blink.

@moss Apropos:

Just googled "python curses", which is totally a normal programming thing and definitely not a sign that I am summoning a magic serpent. 🐍☠️

About rel=noopener target=_blank makes window.opener available to the target window, so use with care, and counteract with rel=noopener.

Gulp 4: The new task execution system - gulp.parallel and gulp.series Finally. Can we have a dependency graph next, like Make/Rake?

Lookback Use a USB cable to screen record your iOS device.

0x Profile and generate an interactive flamegraph for a Node process in a single command, on both Linux and OS X.

nplaym A wrapper for npm so you can play a Space-Invaders-a-like game while installing.

Lingua Scripta

eslint-plugin-immutable An ESLint plugin to disable mutations in JavaScript: don't use let, don't use this, and don't mutate objects.

Caching and Promises If you're still wondering what promises are good for.

Lines of Code

Demeter: It’s not just a good idea. It’s the law. Great overview of what Demeter's law is and isn't, and how to apply it to reduce structural coupling:

Look again at the definition of the Law: it never says anything about the number of methods called, or the number of objects a method uses. It is strictly concerned with the number of types a method deals with.


Common coding mistake: Trying to do too much in one commit.

Commits should honor the single responsibility principle too.

@ThePracticalDev "Bonus points if you can't even read it yourself"



Software development is essentially the application of Zeno's Paradox to the Pareto Principle: "80% done, only 80% left to go"


Here's a diagram of two microservices and their shared database.



An "Ohnosecond" is defined as period of time between when you hit enter & you realize what you just did #sysadmin

Locked Doors

What ISPs Can See You'll be surprised how much your ISP can learn from watching you surf the web:

Hacking Blind Interesting read about buffer overflows, counter measures, and counter counter measures:

We show that, under the right conditions, it is possible to write exploits without any knowledge of the target binary or source code. This works for stack vulnerabilities where the server process restarts after a crash. Our attack is able to defeat ASLR, NX and stack canaries on modern 64-bit Linux servers.

I stayed in a hotel with Android lightswitches and it was just as bad as you'd imagine


My modified multitool made it through two airports today! It may help that I laser etched "TSA Compliant" on it.



I’m so used to printers failing in every creative way imaginable that when one is “just” out of paper, it takes time to realize it.


They should just make a key on phone keyboards that types the whole phrase "Damn you autocorrect!"

None of the Above

PDP11/70 A PDP11/70 emulator in JavaScript. Remember when computers had flashing lights?

Climate Change and Conservative Brain Death In spite of their best attempts, the US (and the world) are decarbonizing:

The four largest American coal-mining firms, which were worth a combined $34 billion five years ago, are now worth $150 million — a loss of more than 99 percent of their value.

Brewchase Craft beer name and tasting notes generator.


if you worked from home, you too could be folding laundry during a conference call.

Published on

@teenybiscuit (Also and also and also)

Design Objective

The Myths of UX Design/ Product Design/Whatever They Call It This Week Explains away the confusion between UX design, product design, ID/AI/UI, if you're into that sort of things.

When U.S. air force discovered the flaw of averages There is no such thing as "the average _":

Out of 4,063 pilots, not a single airman fit within the average range on all 10 dimensions. One pilot might have a longer-than-average arm length, but a shorter-than-average leg length. Another pilot might have a big chest but small hips. ... If you’ve designed a cockpit to fit the average pilot, you’ve actually designed it to fit no one.

The new CSS property that’s about to become overused on the mobile web TL;DR -webkit-backdrop-filter:blur( );

Tools of the Trade

pyupio/statuspage A status page generator that you can host free on Github. Uses Github issues to display incidents and labels for severity.

How I ended up paying $150 for a single 60GB download from Amazon Glacier Talk about misleading pricing: with Glacier you don't pay for how much you downloaded, but how much you could download in a given month:

Glacier data retrievals are priced based on the peak hourly retrieval capacity used within a calendar month. You implicitly and retroactively “provision” this capacity for the entire month by submitting retrieval requests.

rhysd/NyaoVim Modernize Vim by running it inside a browser, Electron in this case.

American Statistical Association releases statement on statistical significance and p-values TL;DR "The p-value was never intended to be a substitute for scientific reasoning." Here are the six principles to avoid misusing the p-value:

  • P-values can indicate how incompatible the data are with a specified statistical model.
  • P-values do not measure the probability that the studied hypothesis is true, or the probability that the data were produced by random chance alone.
  • Scientific conclusions and business or policy decisions should not be based only on whether a p-value passes a specific threshold.
  • Proper inference requires full reporting and transparency.
  • A p-value, or statistical significance, does not measure the size of an effect or the importance of a result.
  • By itself, a p-value does not provide a good measure of evidence regarding a model or hypothesis.

Track Changes Podcast #3: Make HTML Great Again Which candidate has the best web platform?

c-jump ® Ski & Snowboard Race "Discover fundamentals of computer programming by playing a board game!"

Lingua Scripta


I wonder if time spent typing const makes up for all those "amazingly concise" arrow functions we now have. There's no way out...

Lines of Code

5. Federally Funded Custom Code as Open Source Software Fantastic news from the US government:

Although the minimum requirement for OSS release is 20 percent of custom code, covered agencies are strongly encouraged to publish as much custom-developed code as possible to further the Federal Government’s commitment to transparency, participation, and collaboration


Perhaps instead of "we must get better at estimates" we should try "let's become less dependent on fortune telling."

@sonicadvance1 "Typical code debugging."

Locked Doors

Watch a Gun Safe Get Cracked Open with Just a Paper Clip This safe has biometric fingerprint sensor ... and a backdoor.

Surprise! NSA data will soon routinely be used for domestic policing that has nothing to do with terrorism That was totally unexpected, and only everyone saw it coming.


AlphaGo beats Lee Sedol again in match 2 of 5 In the end, AI isn't about machines that think like humans, it's about machines that think their own way, and that's both interesting and scary:

These abstractions all made a lot of sense, and feels natural, and certainly helps game play -- no player can consider the dozens (sometimes over 100) stones all as individuals and come up with a coherent game play. Chunking is such a natural and useful way of thinking.

But watching AlphaGo, I am not sure that's how it thinks of the game. Maybe it simply doesn't do chunking at all, or maybe it does chunking its own way, not influenced by the physical world as we humans invariably do. AlphaGo's moves are sometimes strange, and couldn't be explained by the way humans chunk the game. "4 stages of email"

  • Hi!
  • Sorry for the slow reply.
  • Sorry for the really slow reply!
  • Move into a folder named "too awkward to respond".

Teenagers react to Windows 95, cannot imagine what their elders endured My favorite part, the reactions to "it's now safe to turn off your computer." Software has come such a long way.


Career Advice No One Tells You That's quite true:

The name of the game is noticing the ‘unspoken rules’ around you, and giving people what they want before they have to ask you. That’s how you win.

None of the Above



The Relativity of Wrong Not everything is absolutely wrong or absolutely right, there are degrees of being wrong.

Never Mind Trump. The Internet Wants to Watch What’s Behind Him Is this the best correction, or what?

Correction at 9:58 a.m. on 3/09/2016: Due to an oversight involving a haphazardly-installed Chrome extension during the editing process, the name Donald Trump was erroneously replaced with the phrase “Someone With Tiny Hands” when this story originally published.

The Bike Wars Are Over, and the Bikes Won What happens when city officials are allowed to do what's right by their residents, and ignore the vocal NIMBY:

None of the bike-lane opponents’ predictions has come to pass. City streets have never been safer, more economically thriving, or offered more transportation options than they do today. My successor as Transportation commissioner is greatly expanding the network of bike paths and doubling the size of the city’s bike-share system.

@Edubya Can't argue with this:

The most exciting three words in the English language are "Out for Delivery."

MentalHealthError: an exception occurred "Avoid falling in love with hyper-intelligent pan-dimensional beings."

When the sky crashed in Odessa

Published on


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.


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.


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.


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."


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 ."


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.


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.


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:



Pantograph – The strange and unusual objects of Japanese designers


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

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


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

Published on

This week we learn about the delayed effects of system design failures; multi-person authentication; we talk about comparison signs and code reviews; impossible errors that do happen; using lottery for better security; creating music from unrelated YouTube videos.

Design Objective

Design Trumps Training "Delayed effects of system design failures". Exactly.

User error is a folk term. It colloquially expresses our natural tendency to attribute results to human actors. In contrast, use error is a specific term used by designers and human factors engineers to describe failures resulting from a mismatch between a device and its user. ... Use error emphasizes that “the active errors of stressed [users] are, in large part, the delayed effects of system design failures.”

Futures of text Surveying the current state of conversational UI:

What's more, messaging AI benefits from an obvious feedback loop: The more we interact with bots and messaging UI's, the better it'll get. That's perhaps true for GUI as well, but to a far lesser degree. Messaging AI may get better at a rate we've never seen in the GUI world. Hold on tight.

How to build and care for your own sassy, quirky, funny interface robot To all the people who think web design is about pixels, time to start practicing your content skills.

FourZeroFour Creative 404 pages.

How to make email confirmation a little easier for your users Show them a button labeled “Open in Gmail”, that links to the Gmail search for the confirmation email. Works with other web-based emails as well.


Every website these days... #UX

Tools of the Trade

santinic/how2 Like man, but gets answers from StackOverflow.

zzarcon/psaux pa aux as a promise-based Node library.

Delivering Fast and Light Applications with Save-Data Using the Save-Data header to deliver lighter resources to users that opted in to data saving mode.

CloudFlare Registrar Prevent domain hijacking using multi-person authentication:

All changes to domain ownership or nameserver information is verified and executed manually. ... The goal is to ensure that any change to your nameservers or registration data is approved by your organization as a whole

The Fab Four technique to create Responsive Emails without Media Queries Cool technique that uses calc(), width, min-width and max-width to deliver responsive emails.


brew cleanup for the (9.6G) win!

@climagic There needs to be a term for this:

Nullaphobia - The fear of what might be happening after you start to run a command and don't see output immediately. ie. rm -fr *

Lines of Code

Giving better code reviews Everyone on your team should be practicing their code review skills:

Trust no one. Question everything (kindly). Assume that the author has made mistakes that you need to catch. Save your users from those bugs.

Don't use the greater than sign in programming What happened if we only had one way to test if X < Y?

This is such a nice way to express numbers I wonder why programming languages allow for the greater than sign ( > ) at all.

The Wrong Abstraction Like naming things, this feels like a constant struggle to get right:

The moral of this story? Don't get trapped by the sunk cost fallacy. If you find yourself passing parameters and adding conditional paths through shared code, the abstraction is incorrect. It may have been right to begin with, but that day has passed.


People run into trouble with DRY because it doesn't tell you *what* not to repeat. People assume syntax, but it's actually concepts.


Linux kernel bug delivers corrupt TCP/IP data to Mesos, Kubernetes, Docker containers You know how some errors should never happen? Well, funny story:

Each affected application showed “impossible” errors, like weird characters appearing in strings, or missing required fields. ... Exacerbating this problem: in any distributed system, data, once corrupted, can cause errors long after the original corruption (they are stored in caches, written to disks in logs, etc.).

Secure Code is Hard, Let’s Make it Harder! The biggest problem with software security is the large - unnecessarily large - attack surface:

I had not looked at sudo in depth for probably 20 years, and I’m shocked to discover that it has a -e option to invoke an editor, a -p option to process format string bugs, and a -a to allow the invoker to select authentication type(?!?!)

@tveastman "This product is a perfect physical metaphor for all of modern software architecture."

WiFi ResetPlug - A smart plug to monitor your WiFi router/modem and reset power if WiFi fails.

Locked Doors

Dan Kaminsky is an expert on DNS security – and he's saying: Patch right God damn now The glibc bug meets the a hard problem in computer science:

The key thing here is cache traversal: Kaminsky believes it's possible for malicious payloads to linger in caches, which (say) JavaScript running in browsers could exploit, firing off thousands of requests a second, until the payload hits its target.

Million Dollar Curve A cryptographically secure elliptic curve whose randomness was produced in February 2016 from national lotteries.

Cops are asking and 23andMe for their customers’ DNA From the #sawthiscoming department.


A 19-year-old made a free robot lawyer that has appealed $3 million in parking tickets Speaking of conversational UI, DoNotPay helps you fight parking tickets (UK only for now).

What’s Next in Computing?

Observers have noted that many of these new devices are in their “awkward adolescence.” That is because they are in their gestation phase. Like PCs in the 70s, the internet in the 80s, and smartphones in the early 2000s, we are seeing pieces of a future that isn’t quite here.


At the source of every error blamed on the computer, there are at least two human errors, including the error of blaming it on the computer

None of the Above


Cyclists please watch out for gaffer tape on bike racks covering up that they're cut straight through


We are living in the golden age of animated gifs, or as I like to call it, the second silent era of film.

@benicus_rex "When you post a selfie but no one favs it"


My advice for my students: The "I don't know what I'm doing" feeling never goes away. You just learn the "but I can figure it out" part.

The Brain: A neural network built entirely in Quartz Composer Wow.


If your org creates a "Center of Excellence", they blew it.

Thru You Too "A music album composed of unrelated YouTube videos". Also check out Inner Galactic Lovers, a mix of Fiverr artists.

Published on

@LASTEXITshirts Too soon?

This week we build a lightsaber app and revisit the PC XT; Node.js reactions do tumblr dot com; we practice naming things; and learn to not prematurely optimize; let AIs talk amongst themselves; we turn the gears on Ferrero Rocher.

Tools of the Trade

iTerm2 Version 3 Just entered beta with many new and exciting feature:: shell integration, session restoration (tmux without tmux!), password manager, even inline images:

Sci-Fi swords and Progressive Web Apps Using the Motion Events, Web Audio and Service Worker APIs to build a lightsaber app that works in any browser.

All Origins Open source alternative to with support for gzipped content. You can use it to fetch data from any website, bypassing same-origin policy, e.g.:

$.getJSON('' + encodeURIComponent('') + '&callback=?', function(data){

Issue and Pull Request templates Github now allows you to set a template for new issues and pull requests, to help contributors add the right details at the start of the thread.

sindresorhus/refined-github Chrome extension that simplifies the GitHub interface and adds useful features.

straker/html-tagged-template Proposal to improve the DOM creation API using template literals. I'd love to see this added to the DOM:

html`<input type="number" min="${min}" max="${max}" name="number" class="number-input" ${ (disabled ? 'disabled' : '') }/>`;

html`<div class="row">  
  <div class="col">

Cache API The Cache API (part of Service Workers), what it is and how to use it.

Introducing Vector Networks Interesting way to deal with vector graphics.

The IPv6 Numeric IP Format is a Serious Usability Problem "Visually parsing an IP address should not feel like visually comprehending C++ templates."

@noahsussman "Hi, this goes in ~/.gitconfig. You're welcome."

  whatever = commit -a --fixup HEAD
  whatevs = commit -a --fixup HEAD
  fuck = commit -a --fixup HEAD
  wat = commit -a --fixup HEAD

IBM PC XT running Windows 1.01 This is pretty cool. It's a JavaScript simulation of a PC XT running Windows 1.01. Try and use Notepad, it's as fast as any modern text editor.

@JennyBryan Sometimes I miss XML. Not.

This is your spreadsheet.
This is your spreadsheet on XML

Lingua Scripta

An update on strong mode An update on the strong mode experiment in V8, what worked and what didn't, and why it's going away.

JdeH/Transcrypt Python to JavaScript transpiler.

warning: possible EventEmitter memory leak detected. 11 listeners added. Of course there's a Node.js reactions dot tumblr dot com.

Lines of Code

Naming Things This is something that happens to me a lot. In the process of trying to figure out better variable/function names, I slowly discover the story behind the code, and then rewrite the code to tell that story. What I end up with is more coherent, easier to read, and often even performs better.

In this example, a big pile of "what does this even do?" turns into an obvious fetchRegisteredUsers().then(updateRegisteredUsersTable) -- you don't need to know JavaScript to figure out what it does.

Why Quantity Should be Your Priority And this applies to code, design, documentation, pretty much everything. Or as my wife says, "I'm not made of magic, I'm made of practice".

Let me elaborate: quantity should be a higher priority than quality, because it leads to higher quality. The shorter path to maximized quality is in maximized quantity, and executing on the feedback after each finished product. (Some may say that this is a less refined form of deliberate practise.)

I no longer understand my PhD dissertation Math, with its single letter variables, terse syntax, and "let's just drop all these steps for brevity" ... not so different from programming after all:

“The result now follows easily…” may have made sense back when, but now the author-turned-confused reader can profess that it most certainly does not follow easily, at least in his own mind.

Codeology Turns your Github projects into 3D ASCII art. This is what Zombie.js looks like.


Write code that is easy to delete, not easy to extend. This. So much this:

To avoid paying for a lot of code, we build reusable software. The problem with code re-use is that it gets in the way of changing your mind later on. ...

To write code that’s easy to delete: repeat yourself to avoid creating dependencies, but don’t repeat yourself to manage them. Layer your code too: build simple-to-use APIs out of simpler-to-implement but clumsy-to-use parts. Split your code: isolate the hard-to-write and the likely-to-change parts from the rest of the code, and each other. ... Don’t try to do all of these things at the same time, and maybe don’t write so much code in the first place.

Should I Optimize? Calculates whether code is worth optimizing, based on your hourly salary and EC2 instance pricing. Tape this to the office wall: "Are you going to save more than 412 hours of instance time?"


Why Do Employers Rarely Offer Explanations to Rejected Candidates? Cue #notallcandidates:

Just know that a big part of the reason why you can't get insight into your interview performance is likely due to the loud, unprofessional, and often vocal minority who have pretty much ruined it for everyone else.


A Conversation Between Two AIs When two AIs try to schedule a meeting for their humans:

As you can see, the AIs communicate with one another in natural language as a lingua franca. It seems — what’s the AI analog of dehumanizing? — for them to have to put up with such a primitive form of communication. But I suppose it what’s they’re stuck with until the singularity.

@assaf "Damn kids today, never off their phone"

None of the Above

@RyanJohnNelson This, I definitely have to try at home:

That Ferrero Rocher can rotate like gears is probably the most important thing I've learned today.


thank god I don't have to hunt for my food i don't even know where tacos live

The Shortest Mystery You’ve Ever Watched A creative whodunit that fits into a 6 seconds Vine. See if you can spot the murderer:

Rent A Minority When you can't tell the difference between satire and real life ...

A Tiny Game of Pong The Apple Watch app you've been waiting for since 1972 has finally arrived: Pong!

Kommute Offline reader for any website, so you can keep reading Hacker News while on BART.