Linus rants at the security community again – bravo

Linus goes off on the security community who keep trying to make sweeping, under-tested, destabilizing changes to the kernel, and while his delivery leaves something to be desired, the message is welcome and apparently remains necessary.  Making radical changes that do nothing to help the system operators and users know what’s going on, or be able to control or even just report the issues, is shall we say frustrating.


It’s this kind of flagrant power play by security mavens that irks the rest of us to homicidal degree. It punishes the user in the hopes that that user will push the pain uphill to the originator of the buggy code.

Except that no typical user (i.e. 99% of the computing end user population) even *recognises* that the problem is with the calling code (app, driver) rather than the OS (“computer”, “CPU”, “crap phone”) that is merely trained to enforce these extreme behaviours.

I find after a couple of decades in infosec land that this is motivated by the disregard security folks have for the end user victims of this whole tug-of-war, which seems so often to break down to “I’m sick of chasing software developers to convince them to fix their bugs, so instead let’s make the bug ‘obvious’ to the end users and then the users will chase down the software developers for me”.

Immediate kernel panic may have been an appropriate response decades ago when operators, programmers and users were closely tied in space and culture. It may even still be an appropriate posture for some mission-critical and highly-sensitive systems, if you favour “protection” over stability.

It is increasingly ridiculous for the user of most other systems to have any idea how to communicate with the powers that be what happened and have that turned into a fix in a viable timeframe – let alone rely on instrumented, aggregated, anonymized crash reports be fed en masse to the few vendors who know let alone have the time to request, retrieve and paw through millions of such reports looking for the few needles in haystacks.

Punish the victim and offload the *real* work of security (i.e. getting bugs fixed) to people least interested and least expert at it? Yeah, good luck.

It is entirely appropriate in an increasing number of circumstances to soften the approach and try warning the user and trusting them with a little power to make some decisions themselves (rather than arbitrarily punish them for mistakes not their own).

I love many of my colleagues in the security community dearly, and wouldn’t tell them to quit their jobs, but goddamn do we quickly forget that the options are not just “PREVENT” but also “DETECT” and “CORRECT”. I’m glad to see that Kees Cook’s followup clarifies that he’s already looking into this, and learning that such violent change to a kernel can’t be swallowed whole.

Bug Reports: hoopla + comics

An occasional series of the bugs I attempt to report to vendors of software I enjoy using.

Bug #1: re-borrow, can’t read

I borrow a comics title on Hoopla, it eventually expires. I re-borrow it, then when I try to read it reports “There was an error loading Ex Machina Book Two.” error.

I tried a half-dozen times to Read it. I killed the app and restarted it, then tried to Read, still the same error.  I am unable to find a delete feature in the app, so I cannot delete and re-download the content.

This same error has happened to me twice with two different comics titles.  I only read comics via hoopla, so I cannot yet report if this happens for non-comics content.

Repro steps

  • Open Hoopla app on my device, browse to the title Ex Machina Book Two
  • Tap the Borrow button, complete the Downloading phase
  • Tap the Read button – result: content loads fine
  • Wait 21+ days for DRM license to expire
  • Browse to the same title, tap Borrow
    (Note: it take no time at all to switch to the Read button, which implies it just downloads a fresh DRM license file)
  • Tap the Read button

Expected Result

Book opens, content is readable.

Actual Result

App reports Error “There was an error loading…”, content does not load:

hoopla error re-borrowing comic.png

User Environment

iPad 3, iOS 9.3.5, hoopla app version 4.10.2

Bug #2: cannot re-sort comics

I browse the “Just added to hoopla” section of Comics, and no matter which sorting option I choose, the list of comics appears in the exact same order. Either this is a coincidence, or the sorting feature doesn’t work (at least in this particular scenario).

Repro steps

  • Open the hoopla app on my device, tap the Books tab
  • Tap the Comics selector across the top of the app window, then tap the Genres link at the top-right corner
  • Select the option Just added to hoopla
  • Scroll the resulting comics titles in the default popular view, noting that [at time of writing] three Jughead titles appear before Superman, Betty & Veronica and The Black Hood
  • Tap the new arrivals and/or A-Z view selectors along the top

Expected Result

The sort order of the displayed comics would change under one or both views (especially under the A-Z view, where Jughead titles would be listed after Betty & Veronica). The included titles may or may not change (perhaps some added, some removed in the new arrivals view, if this is meant to show just the most recently-added titles).

Actual Result

The sort order of the displayed comics appears identical to the naked eye.  Note that in the A-Z view, the Jughead comics continue to appear at the top, ahead of the Betty & Veronica comic:

hoopla sort order in A-Z view.png

User Environment

iPad 3, iOS 9.3.5, hoopla app version 4.10.2

Occupied Neurons, October edition

Melinda Gates Asked For Ideas to Help Women in Tech: Here They Are
I am psyched that a powerhouse like Gates is taking up the cause, and I sincerely hope she reads this (and many other) articles to get a sense of the breadth of the problem (and how few working solutions there are).  The overlap with race, the attempts to bring more women into classrooms, the tech industry bias towards the elite schools and companies (and not the wealth of other experiences). It’s a target-rich environment to solve.

Building a Psychologically Safe Workplace: Amy Edmondson at TEDxHGSE

I am super-pleased to see that the concept of Psychological Safety is gaining traction in the circles and organizations I’m hanging with these days.  I spend an inordinate amount of time in my work making sure that my teammates and colleagues feel like it’s OK to make a mistake, to own up to dead ends and unknowns, and will sure make the work easier when I’m not the only one fighting the tide of mistrust/worry/fear that creates an environment where learning/risks/mistakes are being discouraged.

Three Books That Influenced CorgiBytes Culture

Andrea and Scott are two people who have profoundly changed my outlook on what’s possible to bring to the workplace, and how to make a workplace that truly fits what you want (and sometimes need) it to be. Talking about empathy as a first-class citizen, bringing actual balance to the day and the communications, and treating your co-workers better than we treat ourselves – and doing it in a fun line of business with real, deep impact for individual customers.

This is the kind of organization that I could see myself in. And which would draw in the kinds of people I enjoy working with each day.

So after meeting them earlier this year in Portland, I’ve followed their adventures via their blog and twitter accounts. This article is another nuanced look at what has shaped their workplace, and I sincerely hope I can do likewise someday.

Reducing Visual Noise for a Better User Experience

View at

These days I find myself apprehensively clicking on Design articles on Medium.  While there’s great design thinking being discussed out there, I seem to be a magnet for finding the ones that complain why users/managers/businesses don’t “get it”.

As I’d hoped, this was an honest and detailed discussion of the inevitable design overload that creeps into most “living products”, and the factors that drove them to improve the impact for non-expert users.

(I am personally most interested in improving the non-expert users’ experience – experts and enthusiasts will always figure out a way to make shit work, even if they don’t like having to beat down a new door; the folks I care to feed are those who don’t have the energy/time/inclination/personality for figuring out something that should be obvious but isn’t.  Give me affordances, not a learning experience e.g. when you’ve got clickable/tappable controls on your page, give me lines/shadows/shading to signify “this isn’t just text”, not just subtle whitespace that cues the well-trained UI designer that there’s a button around that otherwise-identically-styled text.

Occupied Neurons, early May 2016

The continuing story of the intriguing ideas and happenings that I can’t shake off…


(Have you ever seen an episode of Pigs In Space?  If not, go sample one now, and you’ll get my droll reference)

Infinite Scrolling, Pagination or “Load More” Buttons? Usability Findings in eCommerce

Summary (and something I plan to bias towards in future designs, under similar conditions): The “Load More” design pattern is the most well-received by users and creates a minimum of friction while still enabling access to the page footer.

How Spotify’s Poor API Hygiene Broke a Bunch of Hardware and Software

This is a pretty epic rant on the fallout for independent Spotify developers from a haphazard approach to managing the APIs offered over the years by this consumer entertainment service. Having worked on the other side of these kinds of decisions, I can well imagine how this came to be: thin staffing levels keeping from putting adequate attention on developer communications and engineering maintenance, plus distracted attention by PMs (or possibly even frequent PM turnover) such that late in the game, no one even remembers lets alone still believes in the original value prop behind the original APIs.

It doesn’t excuse the broken promises behind the APIs, and especially not the lack of communication in obvious channels when changes were made (eliminated), but I’ve been in such positions as a Product guy and found myself making decisions that feel just as compromised – trading off one disappointment for a better-mitigated disappointment elsewhere. It happens, especially when the product being extended through those APIs has a pretty low profit margin, and when the staff devoted to managing those concerns are terribly compromised (higher priorities and all).

Theory of Constraints

At the Intel-sponsored Accelerate Results gathering, a few themes/durable concepts kept coming up (and have come up in this community repeatedly over the years). One is the Theory of Constraints, which seems popular among all systems thinkers, even in big software design (at least in concept if not in execution).

I firmly believe we have a duty to consider outside perspectives on our industry, even when they appear to have no direct applicability – myopia, tools bias and fad-driven design/execution are the restraints I make deliberate effort to resist in my own practices.

Standing on the Shoulders of Giants

Eliyahu Goldratt is a huge influence on the thought leaders at the Accelerate Results conference, and many made reference to his seminal essay that seems to have kicked off this whole revolution. Worth a skim, even if it’s only to be able to nod thoughtfully when others keep talking about this.

Everyday Internet Users Can Stand Up for Encryption — Here’s How
I worked with Mark Surman a long time ago back in Toronto for a non-profit Internet Service Provider. It’s more than a little amazing to me to see how our paths have diverged and yet how he’s speaking about issues today that are very near and dear to my heart.

The “-ity” Echo Chamber

What Kicked Off This Rant

I watch a blog at work that lectures about all the reasons why they’re wrong about this blogger’s pet subjects – design, UX, research, many of the secondary aspects of quality of a piece of software (much like security and privacy are secondary quality characteristics of technology projects). Overlong weekly screeds with tons of footnoted research to “prove” the points.


Like a dozen per post.

No, seriously.

Then the fawning praise comes in from the people in the same field who all already agree with the points being made, and feel like their voice is being amplified and broadcast.

Only it ain’t. When your readership is the Echo Choir, I’m sure the adulation and affirmation that you’re “right” feels great, but does any of that advocacy translate into changing the minds of the folks who actually hold the power to implement (or ignore) your demands?

Echo Chamber

Continue reading “The “-ity” Echo Chamber”

How I do UX, partial thoughts: the no bullshit edition

Don’t expect a masters treatise, much in the way of theory, or anything resembling proof that UX Is Right.

Rose_PricklesI’m not interested in changing minds right here, or finding out if you’re a design bigot.  (I already know.) 

I’m also not going to pretend I’m something I’m not.  I’m not going to use a lot of flowery language, cryptic metaphor or industry jargon.  It is what it is.  A rose is a rose.

The important thing for me right here and now is to spell out what I do when I’m applying user experience principles to the stuff I create.  If you look closely, you’ll notice the topics are ordered according to where I spent most of my energy and attention. 

Interaction Design: identify what tasks a user needs to accomplish, understand why they need to accomplish it one way and not the others, and figure out how to provide an obvious/efficient/effective path through the software to successfully complete the task. 

Usability Engineering: identify the trouble spots, understand why that causes problems for people, and figure out how to make it better.

User Research: listen, ask questions, observe, ask more questions, offer unfinished ideas for early feedback, and thank them for their time and input. 

Information Architecture: spell words properly, choose words that users are familiar with, don’t use more words than you need to. 

Visual Design: choose colours that aren’t too garish, use colours and fonts consistently throughout the application(s), make sure things are aligned, don’t make users hunt for the affordances and cues.

Neilsen’ Ten Usability Heuristics (including my favourite)

These simple-sounding but powerful principles keep resurfacing in my work, and a quick reminder never hurts.

My current favourite is "aesthetic and minimalist design":

Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.

I keep running into the proponents of "what’s the harm in a little more info?", and I find this principle of "relative visibility" compelling. I’ll see how well this works as an argument for not overloading the user with "just in case" information.

Useable Security tales, part the 23rd: TouchID spoof still smells in the realm of the fantastic

CSI Fingerprint Investigation KitSaw the latest video proof of the possibility of spoofing the iPhone 5S TouchID sensor with a fingerprint replica ‘recovered’ from the iPhone.  Yes, the “proof” is in the video, and congrats to the CCC who have demonstrated their mastery of fingerprint recovery over the decades.  But I think we should remember to think critically about this laboratory demonstration, and what it does and doesn’t demonstrate.  I’m going to focus simply on the first step, the capture of a viable fingerprint from the phone itself.

In a word, trivial – under what real-world (not Hollywood) scenario will you be finding such a (a) clean phone (b) just logged in via passcode and (c) capture the phone in a state where that fingerprint hasn’t been smudged?

I don’t know about you, but in my experience this is quite a unique usage model:

(a)    Take a clean iPhone screen (no previous smudges, swipes or smears on the screen to muddy up the about-to-be-captured fingerprint)

(b)   Login via passcode on a 5S where TouchID has already been enrolled (i.e. this phone hasn’t been used in 48 hours, or it’s only *just* been rebooted and never unlocked)

(c)    Grab the phone *immediately* afterwards (before the user has a chance to touch, swipe and pinch the crap out of that “perfect” fingerprint image)

(d)   Make sure you don’t touch the screen before you capture a hi-res scan of the fingerprint image (i.e. don’t grab it too heavily as a running thief might, and definitely don’t throw it in a bag or pocket as you run away)

When will I be unlocking my 5S with a passcode?  Statistically speaking, most likely in one of the two locations where I use it most: at home, or at work.  Is it likely a thief is waiting behind the credenza for me there?  With an adult diaper and a bag of snacks (as he waits for that perfect moment to bonk me on the head)?

I’m also pretty likely to continue to use the phone – I don’t know too many people who unlock the phone and then leave it aside.  So I’m very likely to pinch, swipe and tap all over that screen, given all the apps locations and usage models I and many users have.

Finally are we relying on a threat scenario where the thief happens to have a forensic evidence-quality bag to drop the phone into…and is he wearing rubber gloves?  If Benson, Stabler or Grissom wanted to grab my phone, I’m pretty sure they’ve got other ways to get at the secrets that I happen to have stored on my phone.

Are we really accepting that this is a realistic enough scenario to warrant all the fear against a significant advancement in consumer security technologies?  Yes the industry can do better, but I hope we’re not letting perfect be the enemy of good – I’d hate to see anyone’s next business ventures all be judged on that model (and still derive the massive profits we’re all in search of).

Usability and UX – are you a practitioner? How to hone my instincts?

My career has been veering for a couple of years now towards the squishy-but-satisfying creative arenas of Usability & UX (User Experience), and I’d like to make this an explicit career direction. That means (a) meeting other folks already practicing these disciplines, (b) learning how to behave more like them, and (c) sharing my experiences with any who are looking to learn from newer practitioners. I expect the full transition to take a number of years, but where I have creative freedom in my job to flex in these directions I’ll be taking advantage of every chance I get.
As for immediate changes:

  • I’m joining some local user groups here in Portland (PDX UX already, Chifoo and IxDA next)
  • I’ve been re-reading “Don’t Make Me Think” from my iPhone while commuting
  • I’ve bookmarked this discussion on Slashdot (! yes, ironic to find Linux geeks who can spell UX)

What’s next? Who should I be talking to? Where should I seek out like-minded folks? What should I be reading/doing/learning next?