December 29th, 2007 — Uncategorized
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
When I was in college I interned at a DOD-funded think tank. It was there that I first learned about the value of doing postmortems.
Let me tell you - if you slipped and fell on the ice, they had guys analyzing the ice, your shoes and filing a report on it before you’d even dusted yourself off. I can only imagine how busy they must be these days…
In that spirit, I offer you the most helpful and least helpful things I did this year.
Brilliant!
- Sticking my neck out there in front of the whole world with my product idea and my blog and daring the world to throw eggs at me. (for some reason, they didn’t)
- Networking with fellow mISVers.
- Scaling back my plans for an epic live-chat ticket-tracking email-handeling onion-dicing love-letter-writing Solution, and focusing on writing a great chat application.
- Porting my back end from beautiful Python to crude, stuttering PHP - and finding out that I was getting a hell of a lot done (and opening up my app to the self-hosted market).
- Using ext-js and abandoning Django.
How dumb could you be?
- Writing a desktop application framework (with data-binding) around wxPython. Yep. You heard me. In the end, it worked. It was even cool in places. But was a colossal waste of time.
- Focusing too much on “big ideas” without worrying too much about practicality.
- Getting stuck in the trap of thinking “I need x before I can get started on my real product, so I’ll write x and then build my product around it”…here’s a hint. BUY “x”
December 16th, 2007 — Uncategorized
Man I love Christmas. A chance to buy myself stuff that I just couldn’t justify any other time of the year. (That is the spirit of Christmas….isn’t it?)
My one vice, I have to admit, is really good coffee. For about a year now, I’ve roasted my own using everything from a skillet to a popcorn popper. - No more!
Enter the iRoast-2. It’s a friggin PROGRAMMABLE coffee roaster! How cool is that! The only problem is…I’m not allowed to use it ’till the 25′th.

December 8th, 2007 — Uncategorized
Joyent - they had me at hello.
Their accelerator concept definitely cool. Modular servers, where you can start small and scale up infinitely as your needs grow. That’s a great idea. And their marketing is pitch perfect. Take a look.
They go on at length about the quality of their routers, about their “thumper” storage cluster which uses the ZFS file system which makes data loss due to disk failure a thing of the past. They post benchmarks showing how outrageously fast their Big-IP hardware proxies can process requests. You get the picture.
This is marketing at its best. And interestingly, it’s pushing the same buttons that martha stewart does when she explains how the vanilla beans she uses are hand picked by Andean farmers and dried at high altitude to preserve their complex flavor.
And I was sold.
But it’s coming down to the wire for me. I want to push out my beta by the end of Jan, so I’m having to deal with the nitty gritty of choosing a hosting provider and a platform. In the end I decided against joyent. Here are the reasons why:
Systemic problems:
This whole Virtual machine using shared storage model is new. The kinks haven’t been worked out. Case in point: several Joyent customers reported HUGE slowdowns recently. We’re talking 2 minutes to serve a static page. The culprit? A mail server on a different virtual machine was doing disk-intensive processing.
When my web app can be brought to it’s knees by someone else doing some data processing….that’s a deal breaker.
I believe the joyent approach is prone to subtle systemic failures because it’s inherently complex. On the other hand, commodity servers may be more prone to acute crashes. But are much easier to deal with because crashes are obvious. And if you use a clustered setup, crashes aren’t necessarily going to bring you down.
It’s too proprietary:
Suppose Joyent folds. If I’m dependant on their special blend of big-IP routing and NAS, I’m screwed. I can’t transition my existing system to a new host, because there aren’t any other like Joyent. Moreover, joyent is VERY scant on the technical details of their setup.
If I’m running commodity linux servers, on the other hand, and the host folds, I can replicate my existing setup without nearly as much pain.
I don’t want people messing with my servers:
When joyent brought their low-end accelerators to market, they revamped their whole network-storage backend. This left several people without access to their files for days.
Again, in the forum, people were talking about how joyent rebooted their servers 5-6 times in a week with no notice.
In the end…
In the end I had to ask myself: “Do I want my business depending on this?”
I think you know the answer.
December 1st, 2007 — Uncategorized
It’s official - you’re now reading the weblog of ChatSpring LLC.
I have to tell you, the thought of forming an actual corporation was intimidating. I bought the NOLO book on LLCs. I actually read the whole freaking thing. 400 pages. You see, I didn’t want to slip up and have it come back to haunt me.
But as it turns out, forming an LLC that’s wholly owned and managed by a single person is laughably easy. It took me 5 minutes and $45.
I guess things often seem to be a lot harder than they really are.
Next on the todo list….talk with an accountant about this whole quarterly estimated tax thing.
November 25th, 2007 — Uncategorized
If you’re looking for shared hosting, I highly recommend EngineHosting. It’s what I use to host this blog and a few others. Sure, it’s a good solid host, but what’s really impressive is the customer service. Every time I contact them, they respond within a few hours - even on weekends & holidays! I guess I’d gotten used to the DMV-level service most hosts give you.
November 17th, 2007 — Uncategorized
Ok, so I’m a lemming. Spurred on by all all the hype around Joel’s evidence based scheduling, and sent over the edge by this column in INC Magazine, I did it.
I made a daily task list showing every single thing I need to to before ChatSpring will be ready for launch. Now I just want to know….
Why didn’t I try this sooner? My first reaction after looking over the completed list, was “Woah! This is real. This is actually going to happen in a finite amount of time.” That’s a good feeling.

If you’d like to try this for yourself, here’s a little tip:
You can make schedules like this really quickly in Excel. It’s just like making a numeric sequence. Just use day names, or dates instead of numbers.

November 10th, 2007 — Uncategorized
I just thought I’d share 2 of my new favorite web sites. siteanalytics.compete.com and www.quantcast.com.
With both of these, you can enter in the address of a specific site, and they’ll give you monthly traffic estimates. Now, you have to take these numbers with a grain of salt, but I’m finding them very helpful.
Most chat applications contain an urchin that, like google analytics, stores a little piece of data for each page the user visits. If my customer get’s 10,000 hits in a day, my app gets 10,000 hits. That means I’m having to think scalability a little earlier than if I were writing an accounting application.
The results?
The # of requests per second won’t be a problem. It’s the size of the database that’s going to be the real challenge.
For the self-hosted version of ChatSpring, the solution is pretty straightforward. Cull and archive.
But for the on-demand version, things are a little trickier - Especially once I have more than 10-20 customers.
So I’m thinking about scaling the database horizontally. This would involve partitioning the database by account. Since I’m going to go with Joyent accelerators, it seems like it would be pretty cheap and easy to add/remove database servers as required.
…This is one thing that I never could have done in Django, but is pretty easy now that I’ve ported everything to PHP, and am using ADODB
So am I about to shoot myself in the foot here? If I am - Let me know.
ps. You’re not crazy - this blog is being updated less frequently. And my ecommerce blog isn’t being updated at all. Some things have come up that have reduced my ISV time. So I’ve refocused on the most important thing - getting the product done. Strangely enough, now that the squeeze is on, My coding sessions have actually become MORE productive.
November 4th, 2007 — Uncategorized
Here it is - proof that I was in on the ground floor at microsoft.

The Albuquerque museum of natural history has an exhibit “Startup” all about the rise of computers.
We’re talking hand-soldered Apple-1 boards, Altairs, pieces of Eniac….cool stuff.
They even had a copy of spacewar running on what looked like an old PDP-11 machine. (Although I’m sure there was a laptop hidden somewhere in the PDP case).
So if you’re in the area, I highly recommend it.
October 30th, 2007 — Uncategorized
This could be really foolish, or it could be smart. I haven’t decided yet.
For those of you who haven’t been following along closely, I’ve been writing ChatSpring using Python and Django in the back end.
The benefits are….that I like python.
But there are a few problems:
The choice of python really messes up my plans to offer a self-hosted option for ChatSpring.
Also, not counting my unit tests, I have < 1000 lines of backend code. (All the good stuff is JS) All I’m using django for is to run queries and dump the output as JSON.
So I’ve decided to give myself 8 hours to see how much of my python code I can port to PHP / CodeIgniter / ADODB. I’m about 2 hours in, and already have a good chunk done.
If it looks like I can port everything in 1 week, I’ll take the plunge.
October 27th, 2007 — Uncategorized
Well, I’ve decided to take my own advice and give my business a ruthlessly critical look. In doing so I realized that:
There was no way in hell I was going to meet my Jan-Feb deadline.
You see, my product was originally going to be an all-in-one contact center for e-commerce. It was going to include live-chat, email, ticketing, web-forms, etc.
Instead of pushing back version 1 until all of those features are added, I’ve decided to break the application up, to focus on one part at a time.
So for now all my attention is going towards making a great live chat product, with a great API (thanks for the advice Ian).
And now that I’ve removed all of my mockups for those extra features, It’s amazing how the whole app has tightened up.