Long Live Safari Books Online
My Safari Books Online subscription just came up for renewal, and I thought it was worth a quick mention here. There are only a few products and/or services that are so good they make me happy to part with my money, but Safari is one of those. I am a technical books junkie. I used to buy books at a much higher rate than I could read them. You know you have a problem when you buy the 2nd edition of something that is already on your shelf, unread!
After an unsuccessful bid to get my employer to spend $160 on me for a year of service, I paid for it out of my own pocket and never regretted it for an instant. It satisfies my every nerd book craving for about $500 less per year than I was in the habit of paying.
They have a higher tier of service that includes videos and tutorials, but I haven’t coughed up the money yet.
Highly recommended. By the way, they have nothing to do with Apple’s excellent Safari web browser. It’s too bad they permitted a namespace collision.
Facebook Platform
I just saw Facebook CEO Mark Zuckerberg’s keynote address from the Facebook developer conference. They have just announced a radical new platform for deploying social network applications, and I believe they are poised to take over the world.
I have been fascinated by the implications of online social networks since Friendster hit the scene. Friendster suffered from small-mindedness about the possibilities and has been overrun by the competition. MySpace is the current champion, but they suffer from small-mindedness about third parties playing in their “territory.” Not to mention that MySpace is just ugly as damn. I have always appreciated Facebook’s clean design, but until now I only used it find out what kind of parties my son’s babysitters go to.
The web exposes many contradictions, and one of them is that on the one hand it is a democratizing, “flattening” phenomenon, giving individuals and small groups a medium to communicate with the same reach as gigantic corporations. While on the other hand, the web also benefits from monopolies. A site like eBay is more valuable to everyone because everyone uses it. Amazon.com has such a wealth of information because people would rather write their reviews there than in a second-tier space. Up to now, the problem with social networking applications is that each one requires you to build your connections, your profile, your network up from scratch. What the web needs is a de facto standard social network. Of course, each one of a thousand of competitors has been scrambling to be the Big One.
What makes the Facebook announcement so exciting is that they are opening up their enormous network to nearly unrestricted access by third party developers. This means that an entrepreneur can create the next great viral application without having to lay the groundwork of building yet another social network and drumming up the critical mass necessary to have a hit. To be sure, you will still have to compete for attention on the Facebook platform, and the competition will be fierce, but the flywheel is already spinning. This is how low the barrier to entry is once your application is running on Facebook: someone clicks a link to your app and it becomes a part of his suite of Facebook applications. When he publishes something cool with it, all his friends are notified and if they want the application too, they just click the link… Wash, rinse, repeat.
Zuckerberg reveals some pretty astonishing facts about Facebook: at present, their signup rate is 100,000 new users per day. They get 24 million unique visitors in a 30-day period. And this one amazed me: 50% of those login to the site every day.
Here’s a prediction: in very short order, a third party developer will introduce an app on Facebook so successful, that Web 2.0 startups everywhere will suddenly decide to become Facebook startups. This is a positive feedback loop with enough generative power to turn MySpace into a footnote. It’s too early to call the race, since MySpace still has a lot of weight to throw around, but the Facebook people clearly get where this can go, and they have just lit the fuse on a rocket sled.
A couple of closing remarks: Whenever the subject of Facebook comes up in education circles, I just hear paranoia and fear. The grownups want guidance on how to make it just go away. Well here’s the thing: Facebook is no more or less safe than the world we live in, and we are perfectly capable of behaving accordingly. The question we should be asking is “How can we use it to make the world a better place?”
Final note: At one point in the talk, Zuckerberg says something like, “We don’t have a large development team. There are only 85 engineers…” I had to laugh. How do you get 10 people pulling in the same direction, let alone 85? I encourage you to sign up and play around for a while. It has the cohesiveness of something built by two people, and I mean that as the highest compliment.
Markdown 2 Confluence
I seriously heart Markdown, but on several of my projects, we use Confluence for documentation etc. Here is a script I wrote to convert from Markdown to Confluence markup:
#!/bin/sh
# Takes standard input in Markdown format and converts it to Confluence wiki format
# Usage:
# markdown2confluence.sh < markdown-file > confluence-file
umask 077
TEMP1=/tmp/markdown2html.$$
TEMP2=/tmp/html2confluence.$$
trap "exit 1" HUP INT PIPE QUIT TERM
trap "rm -f $TEMP1 $TEMP2" EXIT
Markdown.pl $1 > $TEMP1
java -classpath jparsec-1.2.jar:confluence_converter.jar jfun.markup.Html2Confluence $TEMP1 $TEMP2
cat $TEMP2
The heavy lifting is done by Markdown.pl which you can download from the link I gave you above, and jparsec, which is a framework in Java for building parsers, with the parser built for this purpose available here.
The Html2Confluence class is not perfect, but the source code is available, so what are you waiting for?
Waltzing with Bears
Lately, I’ve been re-reading Waltzing with Bears. Remember that old jingle, “I’d like to buy the world a Coke™?” Well I’d like to buy the world an heirloom box set of “Waltzing with Bears” and Lister and DeMarco’s other masterpiece, Peopleware.
These slender volumes both put the torch to all the familiar idiocies taking place every day in software project management the world over.
Warning: exposure to such high levels of sense and refreshing sanity may result in a desire to quit your job and start your own company.
Holy Zeitgeist, Batman!
Lance’s post about OpenID was the first time I’d ever heard of it (I should be reading TechCrunch, but I haven’t developed the habit yet). Man, how word gets around! Now it seems like I can’t go anywhere without tripping over OpenID.
OpenID is one of those Internet Things that has to get big before it can get big. A blog firestorm like this is just what a little spec needs to overcome the inertia of the Network. John Udell famously said that what’s remarkable about blogging is that it creates a globe-spanning neural network that spontaneously promotes ideas for further transmission. Sites like http://technorati.com are the functional MRI of this new brain.
So this blog entry is my humble contribution to the sum of the activation potentials for the OpenID idea (do I have to say “meme� to be a real blogger?). Go forth and multiply, little guy.
Flat Spin #1
I have a Wacom tablet now, so I figure I may as well do something with it.
In the spirit of this week’s discussion on the Sakai dev list, I give you the first installment of something I’m tentatively calling “Flat Spin.”

In the Black
I just deposited my first check made payable to Aeroplane Software LLC. Guess what? We’re cashflow positive! I would be super proud, except it was stupid easy.
Here’s how much I spent to bootstrap this little runt:
- LLC filing fee: $308.10
- Hays County Professional name certificate: $16.00
- Domain name registration: $18.40
- Credit union membership fee and a box of checks: $18.50
- Quickbooks Pro for the Mac: $165.87
- Total: $526.87
I brought a few assets to the company: a computer, a table and a chair, and lifetime web hosting from TextDrive. As of March 1st, I will be renting a little office for $175 a month. I have my keys already but until I get Grande Communications over there to hook up my Internet and phone, it’s basically storage. I have some professional fees to look forward to, the usual. I want a talented friend of mine to design a logo for me. But I intend to be cheap. I believe I can grow my business without spending money I don’t have. I know about the principle of leverage, Other People’s Money and all that, but I’m not in any kind of hurry.
I have a funny problem now: I’m the owner of the company and also its first employee. I have to decide how much to pay myself.
Say No to Sheepwalking
Seth Godin has just produced an eloquent summary of why I wanted to go into business for myself. Say no to sheepwalking!
I was at a Google conference last month, and I spent some time in a room filled with (pretty newly minuted) Google salesreps. I talked to a few of them for a while about the state of the industry. And it broke my heart to discover that they were sheepwalking.
Just like the receptionist at a company I visited a week later. She acknowledged that the front office is very slow, and that she just sits there, reading romance novels and waiting. And she’s been doing it for two years.
Just like the MBA student I met yesterday who is taking a job at a major packaged goods company… because they offered her a great salary and promised her a well-known brand. She’s going to stay, “for just ten years, then have a baby and leave and start my own gig…” She’ll get really good at running coupons in the Sunday paper, but not particularly good at solving new problems.
What a waste.
Week Zero
I’m finishing up my zeroth week among the self-employed.
Things are good. I have a client, so I don’t have to worry (yet) whether I can continue to put food on the table. On the other hand, all of the basic things you have to take care of to run a business are pretty overwhelming. I’m still looking for an office. I thought I had something lined up, and it fell through on Monday. I would work at home, except my two-and-a-half year old son doesn’t really accept the concept of “Daddy working now.” I’ve been working out of the neighborhood coffee shop, getting WiFi for the low low price of one medium latte (though I did branch out this evening and sample the macchiato). This is probably the best real estate deal around, but the drawbacks include:
- Terrible environment for taking phone calls. The milk steamer is calculated to destroy you. “Can you hear me now?”
- Cannot bring my 20” display or my Wacom tablet.
- What, no Herman Miller Aeron?! I picked one up for a song after the dotcom crash. There was a time in Austin when you could walk out onto Congress avenue and scoop up Aeron chairs with a fishing net.
I still need to get with an accountant and a lawyer. I have a banker and an insurance agent. Speaking of insurance, did you know you can’t buy private health insurance as long as your wife is pregnant? Yeah, it’s a pre-existing condition! Now it is my honor and privilege to subscribe to COBRA for a thousand dollars a month.
Not that I’m complaining, though. I love making my own hours. The ones that feel natural to me are weird by the standards of corporate America. I have to remind myself to shower and shave and wear pants. My entrepreneur friends tell me this gets easier. I treated myself to some GQ-caliber grooming products. Maybe now I can say the phrase “founder and CEO” without cracking up.
Marketing: Dirty Word?
Among programmers, marketing is a dirty word. Often, you will find us apologizing for even uttering it. I used to feel this way, too. I have changed my mind, having figured out that reality is subtler than I imagined.
In the programmer’s world view, marketing is synonymous with lying. Those of us in the software trade are accustomed to “those marketing people” making absurd promises to our customers that we then are expected to keep. Or they dramatically overestimate the capabilities of the software in their communication materials. In general, the kind of people who like to write code are also the kind who like facts and precise language, and who disapprove of hand-waving and the use of words that don’t mean anything.
Thanks to reasonable people like Seth Godin and Eric Sink, I have come to characterize marketing according to a different synonym: marketing is persuasion. It is not just the act of persuading; it’s also deciding whom to persuade and what you want to persuade them of and why you want to be persuasive in the first place. Unfortunately, you can persuade a lot of people with lies. The good news is that there are plenty of other ways to be persuasive. Some of them are even worse than lying, like intimidation and coercion (this helps to explain how the mafia can run such a successful business without ever taking out any ads).
In my view, it is right and proper that we should insist upon honesty, both as consumers and as marketers. Those businesses whose competitive advantage is that they have a knack for screwing their customers and partners don’t have much of a competitive advantage after all. The morally-defensible way to go about marketing is to build relationships, to genuinely care about people and show them your respect. Of course, there’s much more to it than this. You need to be able to measure your progress and use the data to constantly improve your methods, but trust and respect are at the heart.
The lesson for programmers is that if you re-cast your ideas about marketing, you begin to see that you have many more opportunities to influence the process than you ever thought. If you’re sick of lies, then start working on persuasion. You can (and should) talk to customers yourself. You can even strengthen relationships by being more scrupulous in your code. If you believe in what you’re doing, you won’t have any moral dilemma doing what you can to pass it on.