Taking initiative and offering assistance

I have kept a bookmark to Joel Spolsky’s article on Unicode and character sets on my work computer for ages. So last week, with all the buzz about the demise of del.icio.us, I finally decided it was a good time to find a link manager service to have a persistent place for such things. That brought me to Trunk.ly, a link aggregation service that pulls in links from Twitter, Facebook, etc., and started using it immediately.

After reading their first blog post (discussing their not-quite-when-we-planned-to-launch launch), I could kind of tell they were feeling the heat to ramp up development to handle their influx of traffic. Not only that but with their growing userbase they were also dealing with requests for new features and bugfixes.

Just on a lark, looking for a new project to work on, I sent them a message using their “Contact Us” form that simply asked, “Is there any way to contribute help to Trunk.ly?”

I was surprised when they wrote back, and even more surprised when they gave me a small and straightforward feature (RSS feed importing) to implement. It has been fulfilling, educational and entertaining writing code for something that a lot of people use, not to mention actually helping a couple of real developers out by giving them my time. I am sure they will have to revise it, given that I’m not exactly the world’s most experienced developer of production-quality code. That being said, I’m pretty proud of the little bit I’ve done. Added bonus: I’m not embarrassed about my github repos anymore, since I’ve got something actually useful in there now.

I guess the lesson here is that to find a project to work on in order to hone your skills, ask the people who make the things you have a use for if you can help. I’m much more optimistic the answer will be “yes” in the future (and infinitely more confident that I’ll actually be able to pull off executing the task I’ve been given!).

College is for old people (tl;dr: math is cool)

I am almost exactly 31.5 years old, and have just started back to school for computer science. I’ve been poking clumsily at programming for a few years, but only in the past few months have I actually started to take ideas of my own and successfully bring them to life. Both projects I’ve completed have been trivial and kind of dumb, but both taught me lessons that I’ve been able to implement in a project I’m currently working on. Namely, a deeper/more comprehensive of how HTTP works and some lightweight version control with git.

So like I said, only in the past few months have I made progress. I’m not sure how or why the dam broke, but there is some correlation to my newfound confidence (which enabled me to finish the two dumb projects I linked above) and starting back to school. If I were to draw a wildly emotional conclusion (which the guy* I consider my programming/logic mentor would make fun of me for) I’d say that what really what put me over the edge confidence-wise would be re-taking college algebra.

It sounds silly, and makes me kind of feel like an idiot to admit it, but refreshing some basic algebraic concepts in my mind has illuminated some of the (more esoteric, to a layman such as myself) concepts that I encounter when I’m reading stuff from HackerNews. If I had to point to a single thing in this algebra class that has granted me the most “Aha!” moments, it would be the graphing of various types of functions. Having visual illustrations of what logarithmic, exponential, quadratic, linear and constant growth looks like on a graph has made a big impact on my understanding. While I don’t think I can study an algorithm and announce its big Oh complexity, I’m getting there. (I hope to be embarrassed by this blog post in five years.)

My point is yes, going to school does take time away from my actually programming and self-learning about computer science in general. However, based on my admittedly extremely small (and possibly insignificant) data set, there is some value in attending college, for old people like me. 

*I linked to his Twitter account because he’s apparently taken down his blog.

Thanksgiving Wishes For Those in the Middle of Nowhere

Marines in HelmandHappy Thanksgiving to everyone, especially those guys standing watch in Middle-of-Nowhere, Afghanistan, with their heads sticking out of turrets, fighting to stay awake on a very, very cold night, then waiting for their turn to use the sat phone. May it have a good signal.

So let’s all take our heat and air conditioning, blankets, pillows and comfortable beds for granted, because we can. On the other side of the world very young men are sleeping with boots on in the back of a cramped, uncomfortable combat vehicle, waking each other up every hour to rotate watch. Then after a good four or five hours of sleep they’ll wake up and, if there’s time, scrape their filthy, greasy faces with a dull razor to shave the stubble away. They’ll get their bodies, their gear and their vehicles ready to head back on patrol, while laughing and bitching only with each other about whatever-it-is they’ve been tasked with doing. Bitching and laughing only with each other because they know no one would ever be able to appreciate the misery or the humor if they weren’t there with them to experience it first hand. They bitch and laugh only to each other so that we here don’t even have to think about it.

Probably very similar to what grunts can expect for Thanksgiving dinner.

So enjoy your blankets and heat, hug your kids and kiss them. Look around the table tomorrow at your family and friends and really, deeply, truly enjoy the food and the climate-controlled environment that we all love. Because it is cold as hell in the middle of the desert in the middle of the night in the middle of November, and somewhere some kid who just graduated high school a year ago is fighting to stay awake in the Middle-of-Nowhere, Afghanistan.

Microsoft & …?

I have the ellipsis there because the title of this post was going to be “Microsoft & astroturfing” or “Microsoft & sockpuppeting,” but I realized what they perpetrated in response to an “Ask Me Anything” post on Reddit really was neither. (For brevity’s sake, here’s the reddit “tl;dr” version)

I am a “PR professional,” which basically means that in a professional capacity I (along with marketers) exist to be hated by people who make things. That’s fine; I understand. PR and marketing people are supposed to gather data about what people say they want, then deliver that data to the makers (graphic designers, programmers, etc.) so they can “improve” the product based on that data. That’s the whole point. Marketing and PR exists, either directly or indirectly, to drive sales. 

Why we exist is not — ideally — to make people feel good about a crappy project. Yeah, that’s what it turns into sometimes, but that is not my personal philosophy. At any rate, Microsoft marketing  social media idiots decided to turn to Redditor’s operators and say, hey, we’d like to get some input from Reddit’s sizeable tech-savvy readership on our Internet Explorer 9 beta. They wanted Redditors to download the browser then give some feedback about what they did or didn’t like, then ask questions.

Microsoft’s answers to the questions are pretty embarrassing. While there are some legit answers (and even in the non-legit answers, nuggets of legitimacy), for the most part it is very obviously total marketing bullshit mumbo-jumbo. They didn’t even follow reddit’s standards in terms of answering in-line in the comment threads, then putting all answers as well into the original post. It all smacks of disingenuousness which is exactly why makers hate our kind anyway. And rightly so. It’s embarrassing to see this happen, because I get lumped in with people like the “IE Dev Team Project Managers” (read: the marketers at microsoft the microsoft engineers hate).

If you’re going to reach out to a particular community, be people, not marketing robots.

Combining MIT OpenCourseware resources

I’m currently working my way (slowly) through Structure and Interpretation of Computer Programming on the advice of a friend who has been assisting me for, I guess, years now as I try to teach myself programming. Though SICP has its own videos, I find that the MIT OpenCourseware videos on Introduction to Computer Programming are much more accessible and user friendly. 

Right now I’m working through the (SICP) section on Tree Recursion, and it has been very helpful to pair this up with Lecture 8: “Complexity; log, exp, quadratic, linear algorithms.” It’s not a 1:1 match in terms of subject matter — though it’s close. Be that as it may the video is shedding light on the dense-ish writing of the section.

Finding the time to work self-study of programming is tough between full-time work, part-time school and full-time parenting, but it’s something I genuinely enjoy, and don’t mind losing an hour or two (or three) of sleep over.

“Lean startups operate by a different standard," says Ries. "I suggest they define waste as ‘every activity that does not contribute to learning about customers’.”

Location-based data

The latest post over on GigaOm asserts this is the “year of location.” I’m pretty blah about that proposition. All the apps utilizing location now will be looked back on as incubators and test beds for the real use of location data.

Location in mobile products (phones of course but also in-car networks like the Ford Sync) is destined to become just another piece of data like the date and time, username and so forth. Its purpose is simply to refine the user’s context even further.

Location as we use it now is kind of … not useless, just very underdeveloped.

Superman: What a pain in the ass

Superman’s alter ego, Clark Kent, existed so Superman could live among his adopted species. He identified primarily as an ordinary human; that’s how he was raised, after all. But Kal-el’s bespectacled mortal identity served another purpose: It allowed him to be a hero without being a pain in the ass.

Alex Payne (twitter) posted a very insightful analysis of what he calls the “hero” in the team dynamic. You probably know the type, and Alex does quite a good job of explaining it concisely:

Every team I’ve ever worked on has had a hero. You’ve probably worked with one too: the guy or gal eager and willing to pull all-nighters, work weekends, and take over on-call duty when nobody else wants to.

Though Alex’s focus is on the issues with heroes in the context of a team of programmers, the lesson is still completely valid regardless of what business you’re in. The problem is that the emergence of a “hero” signifies a catastrophic failure of the system. There’s an interesting evolutionary parallel:

Mark Pagel and colleagues at the University of Reading, in England, studied 101 groups of plant and animal species and analyzed the lengths of branches in the evolutionary trees of thousands of species within these groups.

Dr Pagel said that the research shows speciation is the result of rare events in the environment, such as genetic mutations, a shift in climate, or a mountain range rising up. [Emphasis mine]

No one is hired to be a hero (at least, they shouldn’t be). They’re hired to fill an open niche in the team system. People become “heroes” at work because there’s a serious issue that needs to be fixed, and either selflessly (“My co-workers need me”) or selfishly (“This is going to make me look great!”) they decide to step in and take care of it without demanding, asking or apparently even expecting help from their team.

As Alex says, in an emergency, heroes are great. They pull us out of lakes, stop the bleeding, get people breathing again, or get a runaway project back on its rails. However, what makes a hero a hero is that they go away once the crisis is over. If the fireman who pulled you out of your pancaked car was in your kitchen the next morning fixing you toast and putting toothpaste on your toothbrush, he’s crossed the line from “hero” to “enabler of lazy behavior.” (Unless, of course, you’re into firemen catering to your every need, not that there’s anything wrong with that.) Likewise, if we have one team member constantly exerting superhuman efforts to keep the ship righted, then management needs to reassess exactly what they’re doing.

Real heroes walk away and fade back into the crowd. They don’t stick around to be patted on the back. Real heroes understand why Superman had Clark Kent.


I just received a long-awaited response to an email regarding CrossFit classes for my kid. (She’s the only girl in my life who thinks the things I do are cool enough to emulate.)

I was baffled by how long it took to get this response. It seemed like forever ago I’d sent it. Then I scrolled down to my original message and saw I sent it yesterday around this time. However, between now and then I’d checked my email dozens of times at least (I’m counting push notifications here), and refreshed Twitter nearly as much. I forget sometimes with my text messages and iPhone and push notifications that checking one’s email once a day is standard practice for most people.

That’s okay though. I’ve long since come to terms with the fact I’m a weirdo. I’m a little concerned about my kid though; I fear she’s emulating that too.

BART’s personality

At today’s press conference at the Lake Merritt BART station in Oakland, Calif., where I made a token appearance, I met several very good folks. To Jim, Linton, Gail and Julie, thank you very much.

Meeting these people who do customer relations and public relations for a government agency that is (to put it mildly) heavily scrutinized was interesting. They’ve got a very tough job that I can identify with closely, given my employer.

They’re doing a lot of interesting things over there, marketing-wise. They’ve got a Twitter account, of course. But the neat thing (to me) is that it’s not just a bland stream of train delays, repair work, and so forth. They’re actually letting some personality through. I’m surprised, to be honest. Government agencies aren’t exactly known for their dynamic online personalities.

In addition, they’ve got MyBart.org, where they host contests, provide discounts to Bay Area businesses, and so forth.

This is striking to me especially because of how they are fulfilling so much of the advice given in Trust Agents: Using the Web to Build Influence, Improve Reputation, and Earn Trust. Specifically, and maybe most importantly, they’re out where the customers are, and they’re talking with us, not at us. There’s no BART megaphone blaring information into our ears. They’ve managed to humanize a government agency. I’d be interested in hearing how this is working out for them in real, measurable terms.