Breadbags

Guest blogger, Charlotte Allen, of the LA Times, berates people for mocking Republican Joni Ernst’s irrelevant, stupid, and obviously-fake anecdote:

You see, growing up, I had only one good pair of shoes. So on rainy school days, my mom would slip plastic bread bags over them to keep them dry.

But I was never embarrassed. Because the school bus would be filled with rows and rows of young Iowans with bread bags slipped over their feet.

People are not mocking her because they’re rich coastal snobs1 and she’s some rural salt-of-the earth. They’re mocking her because everyone who used bread bags on cold, wet days back in the 70’s and 80’s knows you put them on the inside of your shoes to protect your socks, not the outside to where they would cause you to slip on snow and wouldn’t last ten yards on asphalt.

Also people of that generation know only a few would be so rich (and stupid) enough to wear nice shoes on a school day.2 This was back when shoes and clothing were expensive, and Gore-tex was still patented and only in expensive ski jackets.3

Finally, this trick is also not related to the income or urban/rural divide, since I grew up in the richest (by far) suburb in a large midwestern city, and we kept old bread bags for this very reason.

The fact that these two sentences are littered with at least three major errors shows that Joni Ernst never actually never did the bread bag trick. The fact that this right wing nut job disguised as a “guest blogger” in the LA Times is defending such obvious stupidity shows that neither did she.

In the case of Charlotte Allen, by being born in the 40’s she is too old to know about bread bags in shoes.4 In the case of Joni Ernst? Either she was too rich then;5 or she is too stupid to have corrected her too-young speechwriter.6


  1. OTOH, the blogger, Charlotte Allen, brags about how she writes for periodicals based in New York, Los Angeles, and Washington, DC and went to school in Stanford , Harvard, and USC. Speaking of rich, costal snobs? The hypocrisy… IT BURNS! 
  2. Exception: When I went to private school, we were required to wear leather shoes in school. In that case, people often wore docksiders or penny loafers which some others would call “nice shoes.” If you were worried that they’d fall victim to salt and water before you outgrew them (unlikely as you were going through puberty and wore these shoes all day every weekday), you would buy a pair of galoshes to cover them up or wear boots and switch them before class started. 
  3. Now tell me you wore 80’s ski jackets taped to the outside of your shoes and then we’re getting somewhere! 
  4. Plastic bread bags were popularized in the 70’s 
  5. We can eliminate her coming from a warm weather state since she grew up in Iowa. 
  6. Clothing got cheaper, better, and (in cold weather areas) lined in Gore-tex. 

Fair winds and godspeed, me hearties

Avast ye landlubbers!

It be Talk Like A Pirate Day, an’ in (dis)honor of me fav’rite day o the year, I be givin’ meself the black mark, an’ be walkin’ th’ plank off th’ ship o’ the Wikimedia Foundation a fortnight hence, on the 3rd of October.

Th’ scurvy dog Jared demands a parrrrrrrrlay of a photo of each of me sprogs after I shanghai ‘em onto the Foundation. In keeping with that grand pirate tradition (and because I suspect the scallywag hornswoggl’d me cloak of invisibility), I’ll appease thee with a last glimpse of me visage on the crew page before I visit Davy Jones’ Locker. Now maybe ye won’t be confus’d betwix’t me an’ me powder monkey, Howie.

I’ll leave ye buccaneers t’ fight over me booty1 an’ give no quarter as ye guide the Wikimedia Foundation t’ safe haven. Aye, she be a leaky old hulk, but take the light and liver of any a’ addled bilge-sucking blaggard that try an’ scuttle her!

In the meantime, you c’n read about me plunders on th’ seven seas on me blog. Here be the UarrrrrrrrL: http://terrychay.com/.

So let’s raise the Jolly Roger and drink some grog!

Arrrrrrrrrrrrr!

the dread pirate terry

Pirate to English translation: I’m leaving the Wikimedia Foundation. My last day is Friday, October 3. A more official email will follow with background on the logistics surrounding my departure. (I also finally posted a staff photo.) Arrrrrr.

(Dread Pirate) Terry Chay (WMF)

~~

terry chay  최태리
PHPirate
Wikimedia Foundation
“Imagin’ a world in which ev’ry single lad and lass c’n smartly plunder in the sum of all intellectual booty. That’s our commitment.

i: http://terrychay.com/
w: http://meta.wikimedia.org/wiki/User:Tychay


  1. All me vested WMF options. I be addin’ a treasure map to the Wiki, but it be revert’d. 

Ergo chair buying advice

A friend asks:

I’m in the market for an office chair. Does anyone use a backless “saddle stool” or anything else that’s more ergonomic?

I can’t comment on backless models, because I’m apparently an “OG Normcore” circa. 1980’s, and not into fads that didn’t survive that wonderful decade.

  1. If your a person who actually uses your brain, you’ll probably be sitting down, not standing. And if so, you’ll be spending a lot of your time there. A chair is a big deal!
  2. People are probably going to recommend the one they use.
  3. Good ergo chairs can run $1k+ and can last decades—mine is 14 years old and counting.
  4. It’s really a personal preference.

Granted, I’m know that the standing desk religious nuts claim old Benjamin as one of their own, but before you plunk 10 down, you might want to try them out before buying. In San Francisco, there are vendors for all of the top brands accessible.

The top three are:

  • Herman Miller: Invented the category with the Aeron. The Latest models are the Embody and Mirra.
  • Steelcase: The world’s largest office furniture company followed Herman Miller with the Leap. The notable ones are the Think and the Gesture. Steelcase chairs are known to be highly complex and highly customizeable (You’ll need to read the user manual to get the sitting right).
  • Humanscale: The dark horse of the elite ergonomic office chair world. Famous for the Freedom, and now the Diffrient chairs.

FYI, As I mentioned two years ago, at home I use a Humanscale Freedom that I purchased from their first store in San Jose in 2000. When I got the cushions on my chair replaced from visiting the downtown SF Humanscale offices in 2011, Marie got a Humanscale Diffrient World Chair in custom colors—another benefit of visiting the store: more color options than the website.

DSC_8400 - Version 2

Some things have changed, but a lot is still the same

Learning to curse

I forgot how much I hate the fickleness of writing software!

I finally gave up on Swift (for now). It’s a easy to pick up language because it resembles more a modern scripting language than a compiled one, and frees you up from historical artifacts like Smalltalk, C pointers, and reference counting. Plus you get awesome things like playgrounds:

Sure, it takes a little bit of chucking random “?”’s and “!”’s in your code before you get the hang of optionals, and I’d fear the performance of a basic structure like a b-tree written in Swift, but it interoperates with C and Objective-C so I don’t have to worry.

Or so I thought. Because of strong typing and the lack of built-in overloads, poorly documented character-based1 functions, here is how I inject a a random letter into a string:

let randomletter = "\(String(UnicodeScalar(65 + Int(arc4random_uniform(26)))))"

And then you find it doesn’t always release variables when you use optionals. create some optional simple objects, add them to an array reset everything and see what your NSLog() (e.g. println())) prints in your deinit:

e.g. BNRItem.swift:

import Cocoa
import Foundation

class BNRItem: NSObject, Printable {
    var itemName:String
    init(itemName name:String)
    {
        self.itemName = name
        super.init()
    }
    deinit {
        println("Destroyed \(self)")
    }
    class func randomItem() -> BNRItem
    {
        let randomAdjectiveList = ["Fluffy", "Rusty", "Shiny"]
        let randomNounList = ["Bear", "Spork", "Mac"]

        let adjectiveIndex = Int(arc4random_uniform(UInt32(randomAdjectiveList.count))) //arc4random() overflows Swift int
        let nounIndex = Int(arc4random_uniform(UInt32(randomNounList.count)))

        let randomName = "\(randomAdjectiveList[adjectiveIndex]) \(randomNounList[nounIndex])"
        return BNRItem(itemName: randomName);
    }
   override var description:String {
        return "\(itemName)"
    }

and main.swift:

import Foundation

var items = BNRItem[]()

var backpack:BNRItem? = BNRItem(itemName: "Backpack")
items.append(backpack!)
var calculator:BNRItem? = BNRItem(itemName: "Calculator")
items.append(calculator!)
backpack = nil
calculator = nil
items.append(BNRItem.randomItem())
items.append(BNRItem.randomItem())

for item in items {
    println(item)
}

// Destroy the mutable array object
println("Setting items to nil…")
items = []

creates 4 items, deletes three. Hello, memory leaks!

Then there are issues when you call C functions like CoreGraphics from Swift. My personal favorite is depending on if I restart Xcode before compiling, one of my apps compiles file or throws an error:

SetAppThreadPriority: setpriority failed with error 45

Great!

That’s not to say I won’t use it for the future. It’s just too frustrating for me to programming model (Cocoa Touch) in a language that I’m rusty at (Objective-C) in a new IDE (Xcode), translate to a language I don’t know (Swift), and not know if my errors are my own stupidity, or just the compiler is buggy.

Yes, someday Swift, and Swift playgrounds for learning the language, and perhaps even a mix of Swift and Objective-C in a iOS project, but I’m putting the language down for now until I learn Cocoa Touch.


  1. as opposed to string based functions 

Learning to smile

Learning to smile

I’ve been a manager for 2.5 years and I’ve been too long away from programming. There is something just so wonderful about being able to work again in a world where there is a right and a wrong.1

I decided to start to finally2 teach myself iOS development today for: first, because I’ve never done it before and second, because it’s an opportunity to learn a new language and re-learn an old one3 I haven’t done for over a decade.

We’ll see how it goes. I’m not optimistic.


  1. …and getting the feedback to know which is which! 
  2. This does not count. 
  3. If you call writing a median-based BPM counter for Mac OS X, “learning.” I think the jury is still out since Xcode, memory management, and the user-interface are so different now. 

TechCrunch dreams

In 2008, I had a friend who was the co-founder and CTO of a startup. He was getting a lot of pressure from the other co-founder to get into TechCrunch. I said, “Why the fuck does anyone want to be in Techcrunch?1 The only people who read it are your competitors.”2

This morning just before I woke up, I dreamt that I found out that TechCrunch had made it into the top ten most popular websites.

In my dream, Michael Arrington still owned them and through a systematic analytically-driven approach of A-B testing subject lines, content, and marketing, they had applied it to an entire network of blogs to make it very popular. Michael had picked up ballroom dancing as a hobby and even his ballroom dance blog, through this approach, had become far more popular than it deserved to be.

I started thinking, “Wow, that’s crazy. I remember back in 2005 when TechCrunch was so unknown Michael had to comment on Scoble’s blog to get traffic.3 Who would have thought it could become so popular?”

Then I woke up and remembered that nobody reads TechCrunch.4


  1. Usually it’s because they have a tiny ego and need to be a big fish in a very tiny, tiny pond. BTW, I remember at the time Tagged was really obsessed with TechCrunch. 
  2. I suppose given the big Valley circle jerk, another valid reason is if you are seeking funding from investors. 
  3. This part is true
  4. Not even your competitors. Because even if TechCrunch does write about you, they won’t catch it before it scrolls off the front page an hour later.