Archive for the 'Uncategorized' Category

Ya Facked

Here are some photos of things in Boston that are currently facked. My iPhone shut itself off twice while taking these from being too cold.

This bicycle is facked.


These receptacles are facked.


This bench is facked.


These pay phones are facked.


These bicycles are only slightly facked.


These parking meters are pretty facked.


This car is facked.


This car is also facked.


This car used to be facked. Good job unfacking your facked car, somebody.


This car is so facked.


This car is pretty facking facked.


No. Seriously. Look at how facked that car is.


This facked thing? Another facking parking meter.


To end with some hope, this bicycle is totally non-facked.


Exporting (iCloud) Keychain and Safari credentials to a CSV file

I wrote up a gist of the steps I took to export a list of “domain, user name, password” triples from iCloud Keychain and Safari.

“Girl programmers”

My friend Andi tweeted this exchange she overheard the other day.

This kills me. As a developer, a man, and a person, I don’t want to live in a world where this happens.

I’m going to skip over the contents of the exchange itself and jump straight to the backdrop that enabled it: the gender imbalance in software development and related fields. I don’t think this problem gets the attention it deserves.1

Many people are aware that there’s a gender imbalance in various engineering fields, but I’d bet that few grok the full extent of the issue. Here’s a statistic from an Associated Press article by Marcus Wohlsen from June 2012:

Less than 20 percent of the bachelor’s degrees in computer science go to women, according to federal statistics. By comparison, nearly 60 percent of all bachelor’s degrees are awarded to graduating females.

That’s a huge discrepancy. If the rate of women graduating with bachelor’s degrees in CS matched the overall rate, several thousand more women would graduate with CS degrees every year. I think of this as an artificial cap on the diversity of perspectives brought to the table in solving problems and advancing the state of research in computer science. Society is missing out on the benefits of these missing graduates and the graduates are missing out on a rewarding interest and career.2

In the AP piece I quote earlier, Jocelyn Goldfein, a director of engineering at Facebook, posits:

The reason there aren’t more women computer scientists is because there aren’t more women computer scientists.

I don’t have the background or training to be able to judge the merit of this theory, and I don’t want to oversimplify what’s clearly a complicated topic, but this statement resonates with me. An important part of making something happen is imagining the outcome. A woman having a successful, rewarding career in computer science becomes less plausible as the number of other women in the field decreases.

A hazardous feedback loop like this takes a sustained effort to reverse. It hasn’t been and won’t be easy. It means fighting when the tech community is marketed to through the objectification of women or “humored” by outright sexist rhetoric. It means making an example of companies that appear to only hire men. It means continuing to write and speak about those uncomfortable moments when a woman at an industry event is assumed to be a secretary, assistant, or someone’s wife. It means working to end the decades-long injustice of systematically paying women less than men.3

That said, writing, speaking about, and acting on the problems that affect women in the industry from day-to-day isn’t enough. I believe this problem starts long before women choose their careers, attend industry events, or get paid. It starts early in childhood, when young people are just starting to figure out who they are and what they care about.

From working many high school and college summers as a counselor and instructor at a computer camp, I witnessed this firsthand. In elementary and middle school, some boys already showed signs of believing that computing and engineering were interests for men, making jokes at the expense of the few girls who were enrolled. And as parents dropped their sons off at camp, I’d ask them if they had daughters who might be interested in learning the same things their sons were. In some cases it was clear that they had never considered exposing their daughters to technology the same way they’d expose their sons.

I don’t know the best way to turn things around, but as a man who has cringed while talking to those parents, reading the experiences of women in the industry, and talking to his colleagues about these issues, I’ve come up with the following practices to be mindful of and exercise.

See something? Say something.

Call out people who do or say anything that would make any group of people feel less welcome, valued, or comfortable in any space. This especially applies to the words and actions of women that may affect other women. This double-especially applies to the actions of children. “Boys will be boys” is nonsense. Every boy needs to know that every girl has the same potential and deserves as much respect as he.

Don’t attack. Persuade.

I recently spoke with someone in the industry who claimed that there being fewer women than men in the industry was the product of natural interest. The idea that girls aren’t interested in math is frustrating, but rather than respond to positions one dislikes with vitriol, we should see these moments as opportunities. We can’t expect to change anything if we only engage with people who share our views.

In the conversation I had, the guy I was speaking with had never seriously considered that something else could be at play. Eventually, to his credit, he opened up to the idea that society was playing a role in the gender imbalance, and therefore, could do something to correct it.

Share your talents.

If you’re in a position to serve as a mentor to a young woman, do so. When the rest of society is pushing her away from the sciences, engineering, or computing, your attention could make all the difference. Make the fact that she could invent the next iPhone when she grows up seem plausible, obvious, and exciting.

Support others trying to buck the trend.

I was delighted to see a project called App Camp For Girls get a bunch of attention in tech circles recently. The project’s mission is to create a camp in Portland, Oregon where woman can teach girls how to build apps, inspiring them in the process. This is exactly the sort of thing we need more of: efforts that help girls picture themselves as people who make cool things with computers.

App Camp For Girls is currently raising money to get off the ground. The project met its initial fundraising goal and is looking to hit a stretch goal to be able to expand beyond Portland earlier than initially planned. I happily donated, and I encourage you to do the same if you have the means.

I do not and likely can not understand everything that contributes to the gender imbalance in the tech industry, but I don’t think that’s an excuse to sit idle and watch the problem get worse. Until we’ve replaced the concepts of boy programmers and girl programmers with programmers, we need to pay special attention to problems faced by women in the industry and the messages we’re sending to girls about what they can accomplish.

We have to fix this.

  1. The circumstances surrounding the lack of women in computer science and various engineering fields easily translate to other groups and fields or areas of society. All of these problems matter a great deal, but I’m writing about this one because it’s been part of my life for so long at this point. 

  2. This isn’t to say that only college graduates can benefit society in the area of Computer Science. I’m just using college graduates as a meaningful data point. 

PandoraJam without Flash (well, sort of)

Update (July 17, 2012): PandoraJam can now use Google Chrome’s Flash plugin. In Preferences > General, select, “If Chrome installed, link to Flash plug-in, on launch”. This option completely solves the problem this post tried to address.

PandoraJam is a Mac application that turns into a desktop app without the awkwardness of Pandora’s first-party Adobe Air application. It does all sorts of nifty things, like responding to the system’s media keys, streaming to an Airport Express, and scrobbling tracks to Although Pandora somewhat recently rolled out an updated, HTML5 interface out to its customers, it still depends on the Adobe Flash plugin to playback audio.

For some time now, I’ve been running my system without the Flash plugin installed. This decision makes Safari more stable, keeps my MacBook Air’s battery lasting longer, and keeps its fan quieter. Whenever a website requires Flash, I open the site up in Google Chrome, which bundles its own version; when I’m done with that site, I quit Chrome.

That works great for general browsing, but it leaves other browsers and third-party applications, like PandoraJam, without a copy of the Flash plugin to use. Since abandoning Flash, I thought I had to give up on using PandoraJam.

PandoraJam without Flash

I emailed the developer of PandoraJam, asking if there was a way to specify an external path to load the Flash plugin or anything else I could do to avoid installing the for my user (~/Library/Internet Plug-Ins) or globally (/Library/Internet Plug-Ins). Unfortunately, he wasn’t aware of anything I could do to solve my problem.

The last time I searched for an answer to this problem was late August. This evening, after a quick chat with my friend David, whose Google-fu is stronger than mine, we found a solution. A quick read of Daniel Jalkut’s answer to a question on Stack Overflow about WebKit’s plugin search path and Wikipedia’s page about Application Bundles revealed that a small modification to would solve my problem without any compromise in my stance on Flash.

PandoraJam’s primary interface is a WebView that loads Pandora’s HTML5 player. Here’s what Daniel Jalkut had to say about OS X applications, WebViews, and how they locate plugins:

By defauilt (sic), it appears the search path goes in this order:

  1. ~/Library/Internet Plug-Ins
  2. /Library/Internet Plug-Ins
  3. App Bundle’s plug-ins folder

So by design, any plugin you include in your app’s bundle will, by default be superseded by a version found in the user or system library folder.

Bingo! We have a solution.

  1. Quit PandoraJam.
  2. Find a copy of Flash Player.plugin. If you don’t have one sitting around, install Flash, and move the plugin out of /Library/Internet Plus-Ins.
  3. Show Package Contents on or cd into
  4. Drill down into Contents.
  5. Create a Plugins directory (folder) with mkdir or Right Click > New Folder.
  6. Copy Flash Player.plugin into the Plugins directory.
  7. Open PandoraJam!

If I abandoned PandoraJam for several months due to my stubbornness about Flash, it’s likely someone else did, too. Now, we can fight the good fight with a great soundtrack.

OverClocked ReMix Downloader

I’ve been a fan of OverClocked ReMix for as long as I’ve had a computer to type on. I have a script on GitHub that automates keeping one’s music library up-to-date with the latest remixes. If that’s the sort of thing that’d make you happy, go check it out.

Chicken Ptarmigan

I’m not entirely sure why, but I find nonsensical English and harmless typos pretty funny. Enjoy these finds from a restaurant menu in Dutchess County, New York.