Be Honest With Your Customers

Sometimes your product falls behind the curve. Or you’re forced to release a version that makes some compromises. It happens. And it’s not the end of the world.

Recently I’ve seen two examples of companies that have done an exemplary job releasing a product without a feature they were working on or admitting their product may have fallen behind another product’s feature set.

Last week Sparrow released Sparrow Mail App for iOS which, by just about any review, is an EXCELLENT Gmail-centric mail application. The user interface is stellar and it introduces some new and interesting ways to review threaded messages. I’ve been using it for a few days now and I’m very pleased with how nicely it has supplanted Apple’s Mail app. It IS missing one feature, however. Push. Sparrow had been beta testing push notifications but in the end, they decided to pull the feature because, in their best estimation, they couldn’t guarantee the security of users’ credentials.

On our side: if Sparrow was to do Push today, we would have to store your credentials (login/password) on our servers to frequently poll your accounts, and send you notifications.

This is a responsibility we’re not ready to take. As a startup focused on iOS/OS X development, we do not have the skills to secure your data on our servers and we do not want to put sensitive information at risk. That’s why Sparrow iPhone 1.0 doesn’t do push.

It’s very refreshing to read a post like that. Sparrow made a special effort to explain why they decided NOT to include a feature they didn’t feel was ready for production. They didn’t spin a PR yarn about why push isn’t needed or why removing push is better for users. It wasn’t ready. Apple won’t let them use the API they need. Here’s what’s going on.

Another recent example was Marco Arment‘s mea culpa regarding fonts (type-faces) in his excellent Instapaper iOS application. Readability, another very good “read later” app, introduced a competitive advantage by letting the user choose from a couple excellent font choices. At first Marco didn’t consider this feature much of an advantage but he eventually recognized that yes, in fact users may benefit greatly from being able to choose an agreeable type face.

I could have interpreted this defensively and complacently: “Georgia and Verdana are great, versatile, highly screen-readable fonts! I don’t need to do what competitors do! Newer isn’t always better! My crusty old fonts have some technical advantage that you don’t care about!” And so on.

Yesterday Instapaper 4.1 was released with some exceptionally nice-looking type-faces. Marco worked  hard to quickly bring a feature he felt he had fallen down on to his customers and the results are outstanding.

The lesson here is, if your product has fallen behind a competitor a bit, or was released without a feature you know your customers may been looking forward to, be honest with them. Most of them are your customers because they like you and your product. They’ll appreciate the transparency and, more often than not, will gladly be willing to stand by while you add the feature or polish you think your product needs.

We Need Space

There’s a question I get asked a lot.

“How do I find a space to hold my user  group meeting/event/conference?”

I’m not a professional event planner but I’ve got some experience in this area after having planned three Barcamps and helping out with Philly ALT.NET, Conshohocken.rb, and some of the other (un)conferences in and around Philadelphia.

Unfortunately, the answer to the “how do I find space” question is still, “depends on who you know”. That makes things really hard. Unnecessarily hard.

What I think the city, and arguably other cities could use, is a central booking site or directory where free/cheap spaces are listed, along with their availability, contact information, caveats/requirements, and equipment. User group leaders would then be able to easily check availability and cross reference their needs. Projector? Check. Room for 30? Check. The list of data points to collect for each space wouldn’t be that long either:

Address & Room Number
Available Dates/Times
Equipment (Projector? Vending machine?)
Food allowed?
Contact / Resource
Adult Supervision required? (Does the space maintainer have to be there?)

Where would all the space and location data come from? I imagine this could happen in one of two ways. A hard way and an easy way.

1) The hard way: Find a grant. Put someone on this full time. Have them schlep around the city meeting and greeting everyone with a partially available conference room or classroom.

  • Full time curation. More likely to stay up to date.
  • Some money and wiggle room for basic marketing.


  • Funding. This isn’t really a money-making venture.

2) The easy way: Borrow the weworkinphilly model. Open the site and let folks with access to spaces add theirs to the listing. They would be in charge of keeping availability data fresh and being (or delegating) the main point of contact.

  • Ready to go out of the gate.
  • May fill out spaces faster.


  • Data more likely to go stale unless everyone maintains their spaces.

Regardless of how a directory like this might come together I think it would be a big benefit to user groups, free or low cost conferences, and ad hoc meetings. Making it easier for people to find space to talk and collaborate benefits everyone, however indirectly.

There are plenty of goatchas I’m forgetting so I’d appreciate feedback!

Build Your Own AppHarbor & Notes

On Saturday, April 9th I gave a presentation for building your own AppHarbor-like git push deployment system for .NET projects. I tried to screen record as best I could. The audio came out quite good except that I didn’t repeat a few audience questions so you can only hear me answering some anonymous chatter. The screencast is presented below along with a zip file containing my step-by-step notes, my sample rakefile.rb build script, and my sample post-update hook for the git repo. Much thanks to Alex Hung for hosting the video for me!

Philly CodeCamp 2011 on Vimeo.

Associated Notes & Files: Gitserver Files

Windows Shell Organization

If you use Microsoft Windows and you work in a shell or command prompt frequently then you probably have more than one shell window open at a time. On Microsoft Windows, I frequently have a regular cmd window, SSH Cygwin window, second cmd window for Git commands, and sometimes even a PowerShell window. This can get confusing pretty quickly which makes it difficult to alt-tab back and forth between the shell windows I’m looking for. You get a mess like:

Messy Shells
They all look the same!

That’s a mess and it drives me crazy. One nice way to organize your shells, at least by group, is to color code them so they stand out better. For example, I use the following color scheme for my typical shell groups:

  • SSH: Green on black
  • Git: Purple on black
  • CMD: Yellow on black
  • PowerShell: Default white on blue

I also use custom sizes and font setups so I can get a little real estate onto my shell rather than the default Microsoft setup. The basic 80×25 default layout isn’t helping anybody!

Default Shell Layout
Default Shell Layout. Yuk!

Here are some simple steps to customize the font for your shell and color code them in a way that makes it easy to navigate to:

1. Left click the little icon in the top left corner of window and click on the “Properties” menu item. You will get the “Command Prompt Properties window as illustrated below.

2. Beginning with the color tab, select the screen text and background you would like. I’m a sucker for the classic terminal black background so I usually sticky with it. Try the green or yellow colors because they stand out better against the black background.

Command Window Properties
Command Window Properties

3. Choose a layout that is suited for you. I’ve been using 90×40 lately so change the “Width” on the “Screen Buffer Size” and “Window Size” to 90 and the “Height” on the “Window Size” to 40. Leave the height on the “Screen Buffer Size” at 300. This dictates how much scrollable vertical area you can go back and review with the scrollbar on the right.

Choose Layout
Choose Layout

4. The default font settings are a pretty chunky 8×12. Recent versions of Microsoft Windows have allowed for using True Type fonts. You can experiment with these a little to suit your needs. I use the Lucida Console font with a size of 12.

Font Settings
Font Settings

Tada! Look how nice that new shell looks! The font is smaller and nicer looking and you’ve got lots more real estate to issue and perform commands! Below is an example of my cmd, ssh, PowerShell, and Git shells all in one place but which are easily selectable because of the simple color coding:

Completed Shell
Completed Shell

Try some experimentation with the fonts and colors to get a system that works for you. You’ll only have to configure the properties one time and will save LOADS of squinting while switching between windows!

SSH, Git, PowerShell, CMD
SSH, Git, PowerShell, CMD


Announcing MVCMelee!

MVC Melee

Today my friend Sara Chipps and I are announcing the creation of the MVC Melee! The contest will be a 48 hour competition where teams of ASP.NET MVC developers will have 2 days to come up with a rad web application idea and put it in action. The public will judge. Prizes will be given. Bragging rights will be secured.

What the what?

MVC Melee is based on the Rails Rumble which has been going on for a couple years now. It’s a wonderful competition which has produced some amazing web sites. I tried last year to get a team together but couldn’t make it happen. After the rumble was over I wondered why we didn’t have a similar competition in the MVC space? Sara concurred and the MVC Melee was born! The Rails Rumble folks have been very supportive so far which has been great!

How’s it work?

The rules are pretty straight forward. We’ve launched an informational site with the details of the competition, FAQ, etc. Naturally there is a twitter account too. Teams should be 1 to 4 people and any resources you use for your site should be free. The constraints are very heavily based on the Rails Rumble rules but modified where applicable. This is our first time out so we have to be a little conservative about what’s allowed to be used. Future melees may be easier to open up to additional libraries such as home brew MVC frameworks.

Lets get it on!

We anticipate registration will open around May 1st so start thinking about web site ideas and team candidates! Aesthetics and usability are part of the judging criteria so think about having a designer on the team who can sling Photoshop and CSS like a ninja.

I’m REALLY looking forward to see what folks can come up with in 48 hours! Help us spread the word and join the melee!