Michael Lopp's Blog, page 41
August 31, 2014
You are Bad at Giving Technical Interviews
Laurie Voss via Quartz:
You are looking for grasp of complex topics and the ability to clearly communicate about them, which are the two jobs of the working engineer.
August 21, 2014
Finding the Perfect Underline
From Marcin Winchary on Medium:
The perfect underline should be visible, but unobtrusive — allowing people to realize what’s clickable, but without drawing too much attention to itself. It should be positioned at just the right distance from the text, sitting comfortably behind it for when descenders want to occupy the same space…
I believe Medium’s fastidiousness regarding typography is one of the defining characteristics of their brand.
August 20, 2014
The End of Printed Newspaper
Clay Shirky on Medium:
Contrary to the contrived ignorance of media reporters, the future of the daily newspaper is one of the few certainties in the current landscape: Most of them are going away, in this decade. (If you work at a paper and you don’t know what’s happened to your own circulation or revenue in the last few years, now might be a good time to ask.) We’re late enough in the process that we can even predict the likely circumstance of its demise.
August 19, 2014
A Path to Discovery
Saturday morning is for discovery. Multiple browser windows point me in multiple directions and I wander until I discover a thing to consider. The key to Saturday morning is not direction, the key is association. I am free associating myself across the internet looking for… something.
Turntable.fm used to be key to this experience. This now shutdown service was my soundtrack for free association Saturday mornings. Turntable.fm allowed you to jump into a virtual room where a small handful of DJs were playing music they selected. These DJs were simply users who chose to share music rather than hang back and listen.
Rooms were given titles that would give you an idea of what you might hear, but enforcement was sketchy. Most of the pressure to stay on theme was social. Playing Britney Spears in the dubstep rooms was hilariously frowned upon. My Saturday morning move was to find a room with a moderate sized population and an interesting title. Electro-house themed rooms were a favorite with their combination of energy and lack of distracting lyrics.
Whether inspired by Turntable.fm or another browser window, the Saturday morning moment I’m looking for is a moment of discovery. It’s a unique state of mysterious familiarity. I am presented with a song, image, or text that I instantly know is important, but have never heard, seen or read.
The essential varied systems that scale the internet are incentivized to capture your eyeballs because your attention means monetization, which when achieved allows these systems to fund their growth. They want your attention and they’ll do whatever is necessary and legal to capture it because they must do so to survive. This is their core motivation is to provide you precisely what you are searching for because doing so bring you back.
While these services are important, this is not what I’m looking for on Saturday morning. I am looking for mysterious familiarity, I am willing to head out in a seemingly random direction with belief there is value out there, but no actual evidence. I am choosing the risky path of discovery.
Turntable.fm shut down at the end of last year. They couldn’t figure out how to monetize, but in late 2011 Turntable.fm had discovery dialed in. Sometime around Christmas 2011, I was huddled in a dubstep room sweating through my second cup of coffee and someone played this. This is great. I immediately jumped into iTunes to find the artist – nothing. Wait, wait? A Google search revealed the artist known as OVERWERK had no website and was offering his music on a pay what you can model. Huh? This amazingly talented artist was a virtual unknown, he was giving his music away, and I’d somehow found him. I’d discovered something new.
The daily tools and services we’ve surrounded ourselves with are incentivized to satisfy our urgent need for instant gratification – to make the precious moments we send on them as useful as quickly as possible. I’m on the lookout for something different. I need more tools and services that encourage serendipity as their primary function because I know how to search for what I need, but what is to discover what I do not know.
August 18, 2014
My Favorite Kevin Cornell
After 200 issues of A List Apart, Kevin Cornell is retiring as staff illustrator. I find Cornell’s work to be gorgeous:
I was fortunate enough to have him illustrate the very first (out of print) Rands t-shirt. Can’t wait to see what he tackles next.
Designer’s Guide to DPI
My hunch is a lot of folks are going to have a bunch of questions that will easily be handled by this handy guide by Sebastien Gabriel:
This guide is designed as a “get started” or introductory read for the starting to intermediate designer who wants to learn or get more knowledge about cross-DPI and cross-platform design from the very beginning.
July 27, 2014
The internet is still at the beginning of its beginning
From Kevin Kelly on Medium:
But, but…here is the thing. In terms of the internet, nothing has happened yet. The internet is still at the beginning of its beginning. If we could climb into a time machine and journey 30 years into the future, and from that vantage look back to today, we’d realize that most of the greatest products running the lives of citizens in 2044 were not invented until after 2014. People in the future will look at their holodecks, and wearable virtual reality contact lenses, and downloadable avatars, and AI interfaces, and say, oh, you didn’t really have the internet (or whatever they’ll call it) back then.
Yesterday was a study in contrasts. I was cleaning up part of the garage in the morning and found a box full of CD cases containing classic video games: Quake, Baldur’s Gate II, Riven, and Alice. Later in the day, I also had the opportunity to play the open Destiny Beta for a few hours.
Anyone who believes that we’re not a part of a wide open frontier only need look at what was considered state of the art just a few years ago.
July 20, 2014
Hacking on Mtrek
Mtrek is a real-time multiplayer space combat game loosely set in the Star Trek Universe. Sounds pretty sweet, right? Check out a screen shot.
OoooOooh yeaaaaaaaah.
Designed and written by Tim Wisseman and Chuck L. Peterson in the late 80s at University of California, Santa Cruz, Mtrek is completely text-based. To understand where an enemy ship was, you had to visualize the direction via the onscreen data. If this wasn’t enough mental load, it was absolutely required to develop a set of macros on top of the game’s byzantine keyboard commands in order to master a particular ship. Furthermore, if you weren’t intimately familiar with the performance characteristics of your particular ship, you’d get quickly clobbered.
Mtrek was brutally unforgiving to new players. It was a pain in the ass to master, and constantly playing Mtrek was the primary reason I almost didn’t make it through my freshman year at UCSC, but that is not why it’s important to me.
The Mtrek Appeal
Mtrek’s painful learning curve was part of its appeal for me. It was a badge of honor to be able to sit at a Unix terminal, stare at a bunch of numbers, and crush your enemies. Mtrek was also a tantalizing preview of the connected nature of the the Internet. Remember, this was the late 80s and we were years away from the arrival of the consumable Internet afforded us by web browsers. Most important to me, Mtrek arrived when I was early in my computer science career, so it wasn’t just a way to avoid studying; it was a machine I desperately wanted to understand.
After months of playing, I learned that one of the the game’s creators, Chuck L. Peterson (“clp”) was a frequent player. After one particularly successful evening with my Romulan Bird of Prey, I mailed clp and asked if there was anything, however small, I could do to help with the game. Without as much a signal question to vet my qualifications, he gave me a project.
In Mtrek, there are a handful of bots that perform various utility and housekeeping tasks within the game. One of these bots the THX-1138 ran around the quadrants, and he wanted to alter its behavior. He sent me the source, gave me the barest of explanations of the code, and sent me on my way.
Let’s talk briefly about my programming qualifications at the time. My experience had recently peaked at an elegant snippet of Pascal that did an ok job of counting words from a file. The THX bot was written in C and it ran against a real-time game engine which was a programming construct far beyond my current understanding. I was terrified, so I hacked.
Hack Spectrum
MIT defines a hack thusly:
The word hack at MIT usually refers to a clever, benign, and “ethical” prank or practical joke, which is both challenging for the perpetrators and amusing to the MIT community (and sometimes even the rest of the world!) Note that this has nothing to do with computer (or phone) hacking, which we call “cracking”.
This was not the hacking I was doing late on a Thursday night while I avoided studying for my History of Consciousness final. My version of hacking at the time was, “Oh shit, how am I going to write this code in a language I don’t know against a codebase I don’t understand quickly enough that this guy who I respect doesn’t think I’m an idiot?”
The experience involved a set of tasks that I’ve become intimately familiar with over the years. To solve this particular problem, I had to figure out how to comprehend someone’s mostly undocumented code via a series of investigative experiments that started small (“Does it compile?”) and grew larger (“What happens when I change this function?) as I gained confidence.
It was a technical mystery and my job was to unpack and understand the mystery in whatever way I could in a pre-Google world. I searched newsgroups, I read man pages, and when I was stuck and felt I had a credibly hard question, I sent clp a well-researched email to which he’d quickly and briefly respond with delicious unblocking clarity.
Two weeks later, I still didn’t know C, and had only the barest understanding of how the Mtrek game worked, but the THX bot was acting how clp had expected. I shipped. It was a hack, it was an inelegant but effective solution to a computing problem and I had performed it.
An Unknown Someone
I’m not sure why I started thinking about Mtrek earlier this week. I think I was reflecting on the spartan interface. I searched for the game’s name and discovered the original game was no longer online, but a Java equivalent had been written and was alive and kicking. Sadly, I also discovered that clp had passed away in 2012.
I never met the guy, but as I wandered the Mtrek website reminiscing, I discovered he took the time to acknowledge my small, inept addition to the Mtrek universe. But far more importantly, he took a chance on an unknown someone he didn’t know nor would ever meet.
He doesn’t know the impact of a small decision he made many years ago, or that the result of that decision allowed me to not only produce the first piece code that I felt was mine not because I wrote it, but because I learned how to write it. The experience of writing this snippet of forgotten code was my first glimpse into the essential lessons of learning. The end result of clp’s small decision gave me timely and essential confidence to become a software engineer.
Thank you, clp.
July 9, 2014
I’m the Problem
Josh Olson asks, “How do you stay the course with task management?”
As part of the new gig, I’m continuing with [Workflowy] as my personal to-do system. It’s a bookmark called “Brain” and it’s roughly a page-long outline, but it’s still early in the gig. I’m bracing for the inevitable flood of tasks when I leave the honeymoon phase.
When this flood does occur, I’ll likely do what I’ve done in the past. When the work associated with task management become onerous, when it’s 1am and I’m dragging and dropping tasks hither and fro, I’ll think, There has got to be a better way.
There is. And it has nothing to do with well-designed productivity software.
I eagerly evaluate every single shiny new productivity system because my sincere hope is that they’ve solved for… me. They need to solve for the fact that I excite easily, but I have a short attention span. They need to solve for the fact that I eagerly embrace the disruptive new, I’m not beholden to the past, and will adapt to whatever new craziness they’ve designed. But they also need to account for the fact that new craziness has an incredibly short half-life.
It’s an impossible design specification and my advice for productivity software vendors is to ignore it.
We spend a lot of time asking too much of our tools when, in fact, what we really need is just good practices. I’m certain I could keep track of my individual tasks on a torn coffee-stained napkin reliably as long as the practice around the maintenance of that napkin list was reasonable and, more importantly, maintained consistently.
I eagerly evaluate every new productivity solution that shows up because I truly want them to be “the one,” but after doing this for over a decade, I’m certain the tool isn’t the problem. I am. Where the innovation needs to occur is not within Asana, Things, or Workflowy, it’s with how I choose to spend my time. It’s developing a well defined protocol for myself regarding maintaining my to-do list, and then religiously following this protocol and consistently investing my time.
Fact: to-do list management is boring. It’s like writing unit tests for your life. It’s maintenance work and we engineers both understand the value of maintenance work and excel at finding brilliant excuses to not do it. A simply delicious way of avoiding this boredom is to keep it interesting by changing the rules, finding a new application, and talking about your productivity workflow rather than maintaining that workflow.
Which is what I’m doing right now. See, I’m the problem.
July 5, 2014
Going Deep on Yosemite’s Icons
Nick Keppol via MartianCraft:
The first thing people usually want to discuss with an update like this is the look and feel. However, there are plenty of comparisons between the Mavericks and Yosemite icons. They’re cleaner, they’ve removed the gloss, made things happier and brighter looking, and retained some skeuomorphic elements.
I have a thing for people who obsess.
Michael Lopp's Blog
- Michael Lopp's profile
- 144 followers

