Eventually, every programmer blogs about how to become a better programmer. It seems to be the price of admission to the industry. Programmers are a vain lot, and every one of us likes to think he has a unique viewpoint to contribute with insightful advice and meaningful guidance. The reality is that the “learn how to program” post is cliché. There are so many that each new one is nothing more than an echo of some old, vaguely-remembered, proto-learn-how-to-program-post. No one should write another. There’s no point.
So obviously I’m going to write another.
Programming is exactly like this.
One of my goals for SIGPWNED has always been that it would be a place where I could share not only my ideas and my writing, but also my work. And so today I announce a new section of my site, the Projects section, as well as my first open source project ever: Jsonification.
The projects page will be where I keep a laundry list of all of my most current projects and where they stand at the moment. Right now, I’ve got WhatsTwending there, as well as the new project I’m announcing in this post.
Jsonification has its own project page, so I’ll let you head over there to read all about it. I’ll just mention the high points here, as paraphrased from the project page:
What the hell are annotations for?
If you weren’t at Chirp (or you were there but weren’t paying attention), the Twitter Annotations API will let you attach arbitrary metadata to tweets. So just as Twitter clients can attach GPS coordinates to tweets, so too will you be able to attach moods, who you were with, or funny pictures of cats to your tweets.
Oh. And then there’s the rate limit bump to 20,000 requests per hour. That’s kinda neat too.
As a quick first project for the evening, I decided to follow up on a suggestion from @_stritti_ to do some quick analysis on which Twitter clients were popular at the daytime part of the conference.
I’ll be at Chirp, the official Twitter conference, on April 14-15. Anyone going and want to meet up for a frosty beverage? Or anyone not going who has questions they’d like me to ask the Twitter team? Leave a comment here, or drop me a line at @sigpwned! And I’ll be tweeting the whole time, so for live updates during the conference, follow me at @sigpwned, too.
Expect to see new stories here during the conference, and I’ll be sure to post a recap as soon as I get back, so subscribe to my RSS feed or check back for a wrap-up and postmortem.
The tweetmeme API is pretty neat: given a long link, it will tell you how many times that link has been tweeted. And it even works, which is nice.
Well, it works most of the time.
On my recent post on the origin of perfect software, I looked over at my custom Tweetmeme badge and saw that this story which had just been published had 42147 tweets. Now, my work is good, but it’s not that good.
In another post, I claimed that software can’t be written with no bugs at all. Well, it turns out that’s not quite true. What I should have said is that writing bug-free software is not possible within the constraints of most software businesses or open-source projects.
But that just doesn’t have the same pizazz, does it?
The trouble is that software businesses exist to make money, and open source projects exist to give developers interesting things to do and exposure. (Naturally, there are some exceptions in both camps, but if you imagine that’s always true, you won’t be too far off.) And if these are the goals you’re chasing — customers and money, or interesting problems and exposure — you don’t end up with perfect software. You go broke or get bored before you get there.
Ask 100 CEOs of software companies if they want to ship software with bugs. What will they say? 50 won’t answer at all, saying something about how bugs are a huge problem in the industry that needs to be addressed; 40 will say “Of course not!” and promptly call their shark tank in preparation for a lawsuit; 9 will hang their heads and say “we can’t help it”; and that last 1 will look you straight in the eye and say “Absolutely.”
I have no idea what that last guy’s doing heading up a software company, because he studied economics.
As I started building the latest Consumetrics iPhone app over the weekend, I had to choose which keyboard style to use for some input fields like name, email, and so on. These fields live in a “settings table” (really just a grouped table with input fields on it), so picking keyboards in Interface Builder is out of the question, unfortunately, since I require some pretty customized cells. Naturally, I checked the documentation first, where I was confronted by this plethora of options: