Origin of Good (and Bad) Hair Day

When I was in middle school in the late ’70s I struggled to get my hair to feather properly. It just didn’t want to do it. Like many kids that age I was newly conscious of my appearance — and I naïvely thought that well-feathered hair was a necessary (though not sufficient) key to fitting in. (Which was probably true, by the way.) Every morning I would find that my hair behaved, at least somewhat, or it didn’t. So I categorized each day as a “good hair day” and a “bad hair day.” I told my friends about this categorization — including a neighborhood girl named Sarah. She ended up telling other kids at school. And pretty soon those kids, even kids I didn’t really know, would stop me in the halls or at lunch and say, “Hey Brent — good hair day or bad hair day?” Not meanly. Teasingly. It was funny. Years later I started hearing the phrase on TV, and I was surprised that my little middle-school thing had spread and become part of the culture. * * * Of course, it’s also possible that I picked it up from Jane Pauley. But for all these years I’ve believed — no joke — that it was me, that it was my phrase. Maybe Jane Pauley got it (indirectly) from me. It’s highly unlikely — of course, I know this — that I’m the originator. But still, it had to be someone, right? (Not necessarily. It’s kind of obvious and could have had many originators.) * * * I stopped categorizing good and bad hair days by the time I got to high school. And these days I’m just glad that I still have some hair.

Posted by on 9 February 2016 | 1:09 pm


River5 is Dave Winer’s river-of-news RSS aggregator. It’s a Node app. You can run it on a public machine and access it anywhere, or run it on your desktop and just read your news there.

Posted by on 8 February 2016 | 3:41 pm

Stop Watch

Some time last week my iPhone started prompting me frequently to re-enter my iCloud password. And then my Watch started doing the same, about once a minute — with a little tap on the wrist each time. Obviously I did re-enter my password — and have done so a dozen or so times now — but it doesn’t seem to matter. So I stopped wearing my Watch and have switched to a mid-sixties Hamilton that my Dad gave me. (He had gotten it as a high school graduation present.) I’m no watch aficionado — but I do appreciate a good and attractive watch (which this is), and I appreciate even more an old watch that’s a family thing. Here’s the thing, though: the Apple Watch contains a hundred miracles of engineering and design, surely, but serious problems with software and services can turn even the most incredible hardware into something you just sit on your desk and ignore.

Posted by on 6 February 2016 | 3:05 pm

On Sanders Governing

The Atlantic, Norm Ornstein: But is there any real evidence that there is a hidden “sleeper cell” of potential voters who are waiting for the signal to emerge and transform the electorate? No. Pure candidates on both sides of the spectrum often claim that their purity will bring in the checked-out voters, because they’re just waiting for a real conservative or a real liberal. It’s an enduring fairy tale with terrible consequences. To put faith in it is to lose to the other party.

Posted by on 5 February 2016 | 5:00 pm

CocoaConf Podcast with Me

Cesare Rocchi interviewed me for the latest CocoaConf Podcast on life before the App Store. There was a life, by the way. It was fun! We could release software any time we wanted to.

Posted by on 5 February 2016 | 3:25 pm

How the Republicans Win

Democrats nominate Sanders, and Republicans nominate Rubio or Cruz. Then there’s this TV ad: Blank screen. Voice says: “Socialism was tried…” Fade-in: hammer and sickle. Voice: “The Union of Soviet Socialist Republics failed…” Black-and-white video plus audio of Reagan: “Mr. Gorbachev, tear down this wall!” Black-and-white video of a statue of Lenin being pulled down. Color photo of Rubio (or Cruz) with family. Voice: “Marco Rubio’s parents fled socialist Cuba to come to the land of the free, where anyone’s child can become President… The United States of America.” Shooting fish in a barrel sounds difficult compared to beating Bernie Sanders.

Posted by on 5 February 2016 | 11:02 am

Panic Report

Panic — those mad geniuses somewhat to the south of here — look back at 2015 and forward to 2016. If Panic didn’t exist, we’d have to invent a time machine and send Cabel and Steve back in time so that they create Panic. Which may be what happened.

Posted by on 27 January 2016 | 1:10 pm

Happiness for Grafflers

Omni: Stenciltown gets an upgrade. (Don’t know what Stenciltown is? Just go see it, then. It’s an OmniGraffle thing.)

Posted by on 27 January 2016 | 1:05 pm

Omni: Looking Back, Looking Ahead

On the Omni blog, Ken Case writes about how we did in 2015 and what’s coming up in 2016. My personal favorite part: For OmniOutliner, I’m very pleased to share that we have some major writing improvements on the way! On both Mac and iOS, we plan to support distraction-free full-screen editing, the ability to see your current word count, and support for directly editing Markdown documents. Lately I’ve been working on OmniOutliner for Mac. (It’s my favorite Omni app.) Helping to add Markdown support is going to be fun.

Posted by on 26 January 2016 | 12:59 pm

A Big Tall Drink of Chocolate

Cocoa with Love is back! It’s the Swift era.

Posted by on 26 January 2016 | 12:42 pm

Omni Hiring Graphic Designer

See the jobs page. Omni’s a great place to work.

Posted by on 20 January 2016 | 1:10 pm

Nick on Twitter

My friend and former co-worker Nick Harris writes: I found myself evaluating my professional worth based on who and how many people followed me. All the while knowing that some of the best developers I’ve ever worked with either don’t have accounts or rarely use them. Caring about your status is a natural and human thing to do. The problem with things like Twitter is that it’s too easy to focus on that way too much. Every time I noticed my follower count go up, I was glad, and then I felt sick that it made me glad. * * * I don’t have any analytics on this blog. I don’t know how many visitors it gets, how many RSS subscribers it has, or which posts are more popular than other posts. I like not knowing. I did have Google Analytics for a few months in 2014 when I was doing sponsorships. I spent too much time looking at the numbers and trying to make them go up. But no amount of going-up is ever satisfying: I just wanted more. And that affects my writing. I should write exactly what I want to, when I want to, with no care whatsoever for popularity. (I want to be read by smart people like you, but I don’t want to try to maximize the number of readers.) I assume my blog gets more traffic than the average blog, and way less traffic than a blog like Daring Fireball, and for me that’s just right. And if it’s not true, in either direction, I don’t want to know — because I don’t want to care.

Posted by on 20 January 2016 | 12:51 pm

Not Back on Twitter

When the new Star Wars movie came out, I decided to take a break from Twitter so I could avoid spoilers. I mostly kept away (but for a few small hits). I finally saw the movie (which I enjoyed) this past weekend, and so I came back to Twitter. Now, a few hours later, I’m off Twitter again. I didn’t like being back. * * * This past year was very bad — see In the Room — and 2016 will be bad for the same reason. And I turn 48 in a couple months. And I have a whole lot of work I want to do and not necessarily enough time to do it all. (Note: my personal health is good. I don’t want to give the wrong idea here.) Here’s what I found: being off Twitter, that squeaky treadmill, gave me back some time, and it made me happier and calmer than I would have been. (It’s hard to measure, because of everything going on, but I believe it, and that’s what matters.) I know full well that I have a responsibility, as a writer and maker of things, to be accessible, and I take that seriously. But I also have a responsibility to myself, and to people close to me, to be happy. I do everything better when I’m happy — including helping other people. It’s a trade-off, but I have to care for my own happiness. * * * Which means I’m back to ignoring Twitter. I’m not deleting my account, but I’ve turned off all notifications and uninstalled the app from all computers and devices. I just won’t be looking. If you need to reach me: take my Twitter handle and assume that I use Apple’s email service. Old-fashioned, yes, but it works. * * * The happiest I’ve ever been in front of a computer was when I was 14 at my Apple II Plus, with headphones on, working on my little BASIC apps. No network and no distractions. Simple and quiet. While I love the web, I don’t love those corners that insist on my attention. I don’t have to accept it. I just want to make things.

Posted by on 19 January 2016 | 6:31 pm

People Stared at the Makeup on His Face

Without Bowie I’m not me. I don’t think like me, feel like me, make things like me, or love like me. The first album I owned was Ziggy Stardust and the Spiders from Mars. I’ve never stopped learning from Bowie, and I never will stop. He’s my greatest and bravest hero.

Posted by on 11 January 2016 | 12:28 pm

Sound Off Round 1 - AlterConf

From Sound Off: AlterConf is a traveling conference series that provides safe opportunities for marginalized people and those who support them in the tech and gaming industries. By highlighting the powerful voices and positive initiatives of local community members, we build hope and strengthen the community’s resolve to create safer, healthier spaces for everyone. The conferences go beyond the limited definitions and basic discussions of diversity to create a deeper, more nuanced conversation. Each conference features a wide range of speakers delivering critical analyses of tech and gaming culture and presenting their vision for what our community can be. To ensure that every event is accessible to as many people as possible, AlterConf provides both live captioning and American Sign Language interpreters, which cost an average of $1500 to $2000 per conference. You can help AlterConf continue to provide these essential affordances at future events by donating at: http://soundofftech.org/alterconf Sound Off is a new foundation with the mission of increasing “access to professional settings for marginalized peoples in tech.” It’s an important goal. Once a month Sound Off will do a donation drive for a specific thing (such as live-captioning and ASL for AlterConf), and I’ll post here to help publicize it. People of the future will look back and judge us for how well or poorly we expanded our tribe.

Posted by on 4 January 2016 | 1:43 pm

How to Solve Tabs vs. Spaces Forever

Code is a tree structure, but we use text editors to write and edit code. Picture this bit of Swift: if let x = foo() {     bar(x)     moreThings(x) } someOtherCode() The braces are there to make the structure explicit, and the indentation is there for human-readability. Picture this same bit of Swift written using a tree structure editor — an outliner: if let x = foo()     bar(x)     moreThings(x) someOtherCode() No braces needed. You can’t see it in the example above, but the indentation isn’t tabs or spaces — it’s part of the UI of the outliner. You also can’t see how easy it is rearrange code. To move the entire if let… section, you’d grab that line and move it (via mouse or keyboard), and the entire block of code (before someOtherCode()) would go with it. You can also expand and collapse things to get a high-level view, and drill down into detail when needed. (Code folding gives you some of this, but it’s always been a poor substitute for an actual outliner.) * * * One of the arguments against using an outliner to edit code is that code wouldn’t be in a plain-text format, and it’s wise to store things like code in a plain-text format. Well, it’s easy enough to translate plain-text code to an outline and back. The plain-text format would include braces, and it would use tabs or spaces (whichever) for indentation. You could still use your favorite SCM and diff tools and everything else with that code. You could still collaborate with people who prefer a text editor. * * * Another possible argument against using an outliner is that nobody’s ever tried it, and so we don’t know how horrible it would be in practice. This argument isn’t true. I wrote most of my code in an outliner for eight years (when I was working on UserLand Frontier). And I miss it every day. Writing code in an outliner is the exact opposite of horrible. It’s marvelous. I wish Xcode had an outline mode. PS These days I work on OmniOutliner for Mac. Because I learned to love outliners from writing code in an outliner.

Posted by on 21 December 2015 | 2:09 pm

The Hillary Landslide

If Trump wins the nomination — which is more likely every day — then Hillary Clinton could win all 50 states. Democrats might gain both houses of Congress, because the presidential candidate has an effect on Congressional and even state and local races. As a Democrat, I should be ecstatic at the thought of such a landslide. But I’m not. * * * I’m not ecstatic because I’m an American. In modern times both parties have nominated some awful people, but none so extreme that they’d fit better as a National Front candidate. Think about how other nations and people around the world would see us then. Think about how we’d see ourselves. Even if he loses big — the biggest and best loss ever — there’s no going back. We will be a nation where one of the two major parties nominated the favorite candidate of white supremacists. If you’re a Democrat, you might blame them, those Republicans, for this. But that’s not right: it’s the fault of the entire American people. * * * Same thing holds for Ted Cruz. (“Lady Nixon,” I heard him called. Which is completely unfair to ladies and to Nixon.)

Posted by on 18 December 2015 | 4:10 pm

Group Communication App Models

Because I worked on Glassboard, a group communication app, I have an interest in different solutions to this problem. Glassboard was based on the Facebook model: it had posts-and-comments with newest at the top. It was asynchronous rather than real-time (though it was often fairly close to real-time). Our reasoning was sound. Facebook was hugely popular, and we wanted to use a model that people were familiar with. We decided asynchronous was fine because it was a mobile app — and people don’t just sit on their phones all day long. (And because Facebook wasn’t real-time either.) * * * There are other models we could have used. I wanted to emulate Twitter. That would have meant a flat list with no comments — but a post could have been a reply, and there would have been a way to view just the replies to a given post. This still would have been newest-at-top and it wouldn’t necessarily have been real-time (though, again, it could have been close, since super-fast-async gets close to real-time). Glassboard wasn’t a success, and I suspect even this Twitter-like Glassboard wouldn’t have been a success either. * * * Enter Slack. I think it may be the proof that there’s just one model that clicks for people doing group communication: chat. Chronological order. Real-time. Small, one-sentence-sized message-entry box at the bottom. I don’t mean that Slack’s success is inevitable because of its model — but I believe that that model may be necessary. Had Slack worked like Glassboard, or like my hypothetical Twitter-like Glassboard, it would not have succeeded. (Is my theory.) In other words, people like chat, and everything else is too much trouble and not enough fun. * * * If I can convince myself of this theory, then that small part of me that still wants to build a Twitter-like Glassboard app can finally shut up. PS Warning: I’m not looking at Twitter until after I see the new Star Wars movie. It could be weeks. This kind of sucks because Twitter is the modern comments section, and this means I won’t be looking at comments. But, yes, it’s rather important to me to avoid spoilers. PPS Also: I’ve replaced Twitter with Slack for many uses. But that’s another topic.

Posted by on 17 December 2015 | 5:20 pm

Suspended Ledes Suck

Suspended ledes serve no purpose but to demonstrate the writer’s cleverness, and I get angry every time I read one. (A suspended lede is where the thing-being-talked-about is withheld right at first. Some one or a few provocative sentences, designed to grab the reader’s attention, appear first — and then there’s the big reveal of the actual subject.) * * * This post, rewritten with a suspended lede, might have looked like this: I hate it with the heat of a thousand white-hot stars on a summer afternoon, that overplayed gimmick, that tired writing tic that does nothing but draw attention to the writer’s cleverness. Wow! What’s he talking about?! This is so danged interesting that I must keep reading! What a great writer! The suspended lede. Oh! Of course! That totally fits! What a great writer! Puke. It’s so pukey. * * * Respect your readers: tell them the subject right up front. Write well enough to keep their attention. Don’t draw attention to your own cleverness.

Posted by on 14 December 2015 | 3:59 pm

More Scenarios

Rubio wins outright Clinton probably wins the general election. Cruz wins outright Clinton probably wins the general — but first the nation endures a campaign where one of the two major candidates is an Actual Fascist. Trump wins outright This is much like the Cruz-wins-outright scenario. Bad for the country, but at least Clinton probably wins. Trump runs as a third-party candidate Cruz or Rubio might win outright, or a combination of deals and shenanigans at the convention gives the nomination to someone besides Trump. Trump then declares that the Republican Party stabbed him in the back — and he might be right — and that that justifies his running as a third-party candidate. Clinton probably wins in a landslide, but first the country endures one or possibly two Actual Fascists on the ballot (Cruz and Trump). This could result in a permanent right-wing nationalist/nativist party like the National Front in France. The Make America Great Again party. If that happens, look for that party to eclipse the Republican party in just a few cycles. It’s not just about numbers — it’s also about passion. These people are more passionate than old-fashioned Republicans. Then we’d be back to a two-party system: Democrats and Make America Great Again. You may think our politics are screwed-up right now — but you’d be wrong to think they can’t get worse. Much worse. (Which only strengthens Trump’s party. Whenever there’s gridlock, look for people to support the party of the easy answers, the party that rails against DC insiders, the party that claims that real leadership can cut the Gordian knot of constitutional governance.) Perhaps it’s more likely that Trump’s run would be a one-shot deal. There would be no enduring third party. But I think it’s self-evident that the support for such a party is there, and someone with charisma, money, and megalomania could build it. Someone exactly like Trump. All he needs is a semi-plausible justification — and not getting the nomination, for whatever reason, is cause enough.

Posted by on 11 December 2015 | 3:57 pm