Theory and Practice

Five Short Points to Software Success

If you are involved in the creation of software, here’s a short list of things you can do to ensure that your software will sell a bazillion copies of your product, whatever it is.

  1. DON’T piss me off.
  2. DON’T rip me off.
  3. DON’T let your stuff get in my way.
  4. DON’T include shit no one needs.
  5. DO make me feel like a rockstar.

That’s it. If you can do that, your path to fame, fortune and Ferrari’s is assured.*

  • Ok, maybe not. But it’s more likely, at least.


Facebook is a trap. I walked right into it and now I can feel the vise-like grip of it like a digital bear-trap snapped tight around my ankle.

I never intended to join Facebook. Social networking didn’t interest me at first. I don’t think of myself as a very social person and the notion of connecting to long-lost friends and relations wasn’t that appealing. After all, if I wanted to be in touch with those folks, why did I stop talking to them in the first place?

A few years ago I was working on a contract job. The company was involved in producing an interesting preferences engine, a system to help you discover media you might liked based on things that people like you also like. Facebook was a target platform for the companies products and they were working in integrating with it. And the work the I was doing at the time dovetailed into the Facebook integration work. And to be a Facebook developer, you have to be a Facebook member. And so I signed up, never intending to use it for anything more than getting my job done. But the trap was now set and armed.

I left that contract a few weeks later and moved on to other things. I pretty much forgot about my Facebook logging in, no connecting, nothing. But the trap was still laying in my path, taut springs ready to snap the jaws shut on a misplaced limb.

I don’t really remember why I picked up Facebook again. I have a vague recollection of some one asking me if they could connect to me that way and responding in the affirmative. The details from there are hazier than a Haight-Ashbury head shop. But somewhere in there, I stepped on the trap and SNAP! I was caught.

Over the next year or so, I began to use Facebook a bit more. I tied it to my Flickr account, set up Twitter to feed my status and even connected this blog to it. All in the name of sharing more with my growing “social graph”. And I’ll admit, I started to see some value in the connections. Even with my antisocial tendencies it has been nice to hear from friends and colleagues from the mists of time and places long forgotten.

I never had any illusions about the privacy implications of exposing parts of my life on the Web. I’m fully aware that what I choose to share is immediately added to the ever-growing information doppelgänger being constructed in the dark corners of corporate databases across the Internet. And I’m aware that the creators of this other me—this homunculus made not of my flesh but of my digital life—are busy gathering even more information, things that I’m not even consciously aware of having shared and binding that to into their creation.

So I’m not naive about the implications of participating in the Facebook’s of the world; I am aware of the price and many times I have been willing to pay it. Gladly.

But the cost of being a member of the Facebook community is now too high. It has become painfully obvious that the primary goal of Facebook crew to do whatever they see fit with the information in their system, regardless of the desires of the owners of that information. I won’t hash out all the problems with Facebook’s stance on privacy; Jason Calacanis does great job of that is his latest email. However, any illusion or lingering naivety I may have had has been stripped away and all that left is a clear view of the trap.

But I think I can escape from the trap. I don’t have to play Mark Zuckerberg’s game and I don’t have to keep feeding Facebook. It a sad truth that I’ll never be able to kill my Facebook doppelgänger entirely. They’ve already got information about me that it’s clear I won’t eve be able to erase. But I don’t have to keep letting them have my information.

So I’m disconnecting myself from Facebook. I’ve already pulled a few of the connections to other source. And As soon I finish taking the thing I want and getting rid of as much as I can, i’m going to deactivate my account and throw away the password.

I’m going to get out of this trap, even if it means cutting off a part of myself to get free.

Building a Software Foundation

As I make my move to a freelance career my mind immediately turns to what tools I will need to make my business work. And more of than not this means software. I can’t help it; finding and building ways to make software work for business is what I do. My frame of reference is slanted heavily in the direction of computer-based solutions.

I have been thinking quite a lot about what sorts of challenges and needs I’ll have and what sorts of software I need. I want to be able to communicate with clients and contacts, keep track of the time I’m spending and invoice to get paid, manage the code I write and the documents I create and keep track of the things I need to do. And that’s just a few of the things I’ll need to do. What I really want is an “virtual third hemisphere”, one whose job is to help me make this career move as successful as possible.

Web-based (or cloud-integrated) software is turning out to play a big role in building the foundation for my business. A major driver behind this turns out to be the desire to coordinate data across group of devices. I want to get the same data on my MacBook, iPhone or iPad. For that matter, I want to be able to get at my data even when I don’t have access to my own hardware. And that means relying on software that is in—or at least aware of—the Web/cloud.

Another consideration is cost. Given the nature of my business in general and the early days aspect specifically I need to do everything I can do keep cost down and maximize benefit. Web and cloud software fits the bill here. Many software-as-a-service vendors have adopted the freemium model which means that I can get access to fully functioning, if limited, versions of the platforms out there without having to crack open my wallet for each of these items.

I’ve already laid down the cornerstones of my business software foundation. I’ve cobbled together a bunch of software for various purposes. Here’s a short list of what I’ve got so far and what I’m planning to do with it.

  • Gmail. I’ve gotta have email. And while I’m not always sure about Google, having all of my mail available is great and the price is right at a big fat $0.
  • Harvest for time and expense tracking, billing and invoicing. I’ve just started using it and I love it already. I’ll probably need to go their Solo tier at $12 per month, but that’s still a steal for the feature available.
  • Dropbox for storing documents and images and sharing them with clients. This is a great way to keep everything in sync between all of my devices, too. And the first 2.5GB of storage are free (and plenty for my current needs).
  • Evernote for note taking and quick writing. I upgraded to the premium version (a mere $45 per year) since I plan to use Evernote as my primary writing tool when I’m on the iPad.
  • MobileMe for calendar and address book. I’ve been a MobileMe/ member for longer than I care to admit. Dropbox has pretty much replaced iDisk for me as a day-to-day cloud storage system, but syncing of address and calendar info are great. If I can find an alternative, I will gladly ditch the $99 per year fee.

There are some other services (LinkedIn, FaceBook, Twitter) and software (WordPress) that I’m using, but I’m not sure yet how I’ll integrate them into my business life.

This is a big adventure I’m heading out on, but I feel like I’m building a solid platform to stand on.

Taking a Leap

So, I quit my job.

After three years in my current role, I recently decided that the time had come (and possibly gone) to leave. I was feeling like things weren’t going in a direction that worked for me. The people at my soon-to-be former company are great. I would work with many of them again in a minute. But as an enterprise I just do not feel that things were working out.

So where does that leave me employment-wise?

I am going to try giving freelancing a try for a while. This is a risky thing to do; I have a family to support and there’s no guarantee that I’ll be able to drum up enough work. And with both Karen and I working from home full time, we’re going to loose the corporate health insurance safety net.

But I think the risk is worth it and that I have a lot to gain from trying to go it alone for a while. The opportunities and possibilities I see before me are exciting and energizing. And I think that taking a risk is the only way to get where I want to be in life.

Will this work? I don’t know. But I am ready to take the leap.

Why You Should Learn HTML + CSS (and Maybe Some Javascript)

Are you a content creator for the Web? If you are then you need to learn HTML, CSS, and maybe some Javascript, too.

I have spent a significant amount of my career implementing Web sites and applications for clients. A decent amount of that time has involved implementing content management systems for businesses of all sizes. And one of the most common requests in such projects is setting up a WYSIWYG editor.

The request for a WYSIWYG editor usually stems from the desire to sheild “non-technical” users from the supposed complexities of creating Web markup while still providing them with the power to produce material that take advantage of the styling and visual design of the site. The assumption is that the content creator will not want to learn the HTML markup and CSS required to make there pages “look nice” but that they still want the flexibility and additional expressiveness of something more than plain text. In fact, a common corrollary request is to provide a “paste from Word” button. “After all”, the reasoning goes, “we already know how to write the content we want in Word.” Oh, boy.

The Land of Half-Done

I live in the Land of Half-Done.

Our house is always a mess. Always. My wife and I have now lived together in three homes over 14 years and in all that time, I cannot recall a single time period of longer that a week when our place was not a mess.

It’s the classical modern problem: too much stuff, not enough space, and no energy to do anything about it. But that’s not the whole story. No, the truth is that sometime early in our relationship, we settled down in the Land of Half-Done.

The Land of Half-Done is a semi-magical place, where many plans are made, many projects are started, many dreams are dreamt, but nothing ever comes to fruition.

Dishes make it to the sink but never get washed. Picture frames are purchased but the prints never appear behind the mattes. Holiday cards are printed and addressed but never mailed. Old clothes are bagged but never make it to Goodwill.

It’s true that our house isn’t the largest; we’re packed in tight with three humans, two cats and a pair of goldfish. And it’s true that we have too much stuff packed in around us. However, the biggest problem is that there’s so much we never find the time to finish. And that’s the single greatest factor contributing to the piles of stuff in every room.

The trick is immediate follow-through. We’re not bad a starting things. It’s finding that extra “oomph” to finish. After dinner, the dishes have to get all the way to the washing machine, the soap needs to go in and the machine needs to be turned on. Right away. The clothes need to get taken out of the dryer, folded and put in the closest. Right away. And all of those projects we’ve started but are waiting for the time to finish, we’ve got to get pick them up again and knock them off, one by one. And before we start anything else.

It’s like a kata, a practiced set of choreographed moves that carry through from stance to stance. We need to learn the martial art of Clean Fu.

I live in the Land of Half-Done. And it’s time to emigrate.

How I Learned to Stop Worrying and Love Mobile Development

I have managed to spend most of my career as a developer and architect not doing mobile development. I had a brief dalience with Waba back in the early 2000’s. I was looking for a simple way to write apps for my Palm Pilot and at the time I was boycotting C and C++1.

Every time I thought about mobile applicatoin development the thing that ended up turning me off was the devices. No matter how good the development environemnt might be—and most of them are abyssmal so that doesn’t help—I found that I have no desire to cram anything useful into the small screen size and sub-par interface designs found on most such devices.

And then came the iPhone.

And now I’m finding myself interested in branching out. No, interested is too tame. I really want to jump into mobile development with Android. I am even ready to give Blackberry a try again. And with the annoucement of the iPad, things are looking more interesting every day.

It goes beyond mobile. Working on iPhone apps have re-ignited my interest in desktop application development. I have been doing mostly Web development for so long that I had almost forgotten just how much better a native app can be. Sans the enforced framing and quirks of the browser-based world, my imagination of what I want to make do with a computer do is expanding again.

I won’t be giving up Web development any time soon, but I will be spending more of my time working with mobile devices. And I’m grinning from ear to ear about it.

1 For no good reason at all. I just didn’t want to work with low-level languages in those days.

Apple Device Relative Screen Sizes

I’ve been thinking about updating may little MacBook for a while now. My wife added a MacBook Pro along with MacBook and I’ve moved to a 13” Pro at work. My old iMac G5 is bound for other pastures as soon as I can get up the oomph to post it on craigslist.

I’ve been trying to decide what my next Mac should be and one of the big considerations is screen size. I’ve been feeling like the MacBook’s 1280 × 800 screen is just a bit too tight for my current day-to-day. I was curious about the relative sizes of other Apple devices, so I threw together this graphic to give myself a visual reference to the relative size differences between the various MacBooks, iMacs, and Cinema Displays. I then decided to throw in the portrait-aspect dimensions of the iPhone and iPad just for kicks.

A diagram showing the relative screen dimensions of devices produced by Apple.

The full size diagram is 1:2.5 scale, since I didn’t see any need to scale it up to 1:1 on my tiny screen.

Hopefully someone out there will find this useful.

It’s So Close I Can Touch It

Just a few more days to our big Summer vacation. We’re renting on Cape Cod again this year along with some other friends with toddlers. And I am more than ready to be there.

It’s not that I’ve been working harder than normal or anything, but lately I have really been feeling the need to change up the balance of work/life/play/creativity. K and I have been talking about the sorts of things we might do to make our lives more like we want them to be. Maybe moving somewhere new, or a change of jobs, or just taking up a new hobby. Nothing concrete has yet materialized from this and we still barely have the energy to wash the dishes.

Of course, don’t get me wrong. The luxury to think about my life in terms of what I want to do is an amazing gift. The majority of humanity never gets that chance to live as easy and free as I do daily.

Of course, I started this post talking about our vacation. And it’s going to be fun. I love Cape Cod and heading out there time and again has been one of the great bonuses of my now 13 years relationship with my wife. And the fact that we’re going to be there with other families, friends that I adore and cherish, makes the experience that much better. And now that Z and the other kids are entering the age when playing together is so productive and amusing for them and us the anticipation I feel for the coming downtime is even greater.

Happy summer!

Computing == Chores?

I can’t help but feel that a large part of my time on the computer is spent doing chores.

  • Performing backups
  • Updating software
  • Shuffling files around
  • Updating Twitter
  • Checking mail
  • And so on…

When I put it all together, it really looks I spend a huge amount of time on the care and feeding of this little box. And somehow that just doesn’t seem right.

Computers were supposed to make our lives easier. We would all sit back and relax while robots cooked and cleaned for us, Word-process-a-trons magically types for us, and massive think-o-puters solved the thorny equations. And yet here we are, pushing buttons like monkeys in a psych experiment.

As near as I can tell, the “social networking” phenomena is only making this problem worse. For example: I like Twitter and unlike Maureen Dowd, I think it’s useful. But it occasionally feels like another computer-based chore. “Gotta push out another 140 character mini-missive right away!”

I’ve spent the majority of my adult like working with computers. Or at least, that’s what I thought I was doing. Maybe I have actually been working FOR computers. Hmm.