February 04, 2004
Running a business on OS X and LinuxIn my previous job, I was CTO of a company, MTNI, that sought to put advertising-supported LED signs in transit stations. We had pilot projects with the Cleveland RTA and with Atlanta’s MARTA. We converted both those pilot projects to long-term contracts, but the CEO couldn’t generate sufficient investment to build out the systems, and the company closed down in January 2003, nine months after the CEO came to me and said he wasn’t paying me for the month I had just finished working, let alone the months to come.
Fortunately, the lead investor in the old company had a secured investment, and therefore inherited the company’s assets in February 2003. We sat down, and decided there was a supportable business model, a couple of contracts that were ready to go, and possibilities for future growth.
I learned a lot from the last go-round, and from my time at CNN.com. At CNN, I worked in tech support, which gave me a valuable perspective on a rapidly growing company whose needs were being met by a few “cowboy coders,” who threw together solutions in rapid-deployment systems like FileMaker, Perl, and AppleScript. Then, the “professionals” came in, and started building massive, complicated, Windows-only applications using Visual C++, MFC, and CORBA (success story from 1997; I'm not sure any of the applications mentioned are still in use). The cowboys were sent packing, but the software from the corporatists broke a lot more and was harder to support and troubleshoot. And rapid response? We’ll get that right on the development calendar.
Meanwhile, I built and then managed the development of a fairly complex web-interfaced system to handle support requests and tracking, in FileMaker and Lasso, as a full-time project initially, but later as one small part of my job. The development effort was more cowboy than corporate, so there was one 37-hour day when the product first launched, but it was simple to use, simple to maintain, and simple to debug. It ran on Windows and Mac (later, through the web, on Solaris and Linux), managed daily work for 12 to 30 users, and sent critical updates directly to their pagers. It went down unexpectedly once in four years, when we let its primary drive run out of space (d'oh!).
When I left CNN to the new company, there was a software project already underway, that was to be Java and browser based, but which the largish development shop migrated into a standalone Java app, with Windows support immediately and Mac support eventually. Backending the app were IIS and SQL Server. When they showed us a user interface prototype, and we had changes to suggest, they were almost uniformly “out of scope” (silly me, I thought the client could best define the project’s scope). It wasn't a great surprise when the company filed for bankruptcy before they completed the project.
I'm a Mac bigot from way back. My experience at CNN reinforced my experience supporting the Mac users at Coca-Cola, and in mixed lab environments at the University of Georgia that Macs are (and, even before OS X, were) easier and less expensive to keep running (and most of those studies don’t factor in the most important cost, the cost of lost output for users while some tech is banging on their PC).
MTNI was a mixed environment; we had Linux and Windows servers, Macs and PCs on desktops, and signs running embedded DOS. The Linux servers ran custom Python code that gathered and distributed news, sports, and weather, transit updates, and provided a web interface to the signs. To adequately support the Windows servers, I hired a Windows system administrator I had worked with at CNN, who knew all about Windows, but used it anyway.
The new company is significantly more Unix-y, with a PC laptop for the CFO and the CEO, but Macs for everybody else, and Linux servers running Python and PostgreSQL all around. I gave my developers a choice when I brought them aboard, and they both wanted Macs. They're both new-generation Mac users, with zero or little experience before OS X, and their primary editor and development interface is vi, despite my offers of BBEdit or whatever else. I've bought copies of MS Office for everyone — it's still more work not to have it than to have it.
I hired the same, now former, Windows system administrator, but got him a 15" PowerBook, with Virtual PC, in case he backslides. I don't know if he's even fired VPC up yet, but he keeps dropping things he can't believe are so much simpler on his Mac.
Since they're vi users, I couldn't even see the point in buying the developers G5s, so we saved quite a bit of money by going with 17" G4 iMacs. I spent an hour or two on each of the machines, and I have literally never logged into them since, and none of our Macs has (knock on wood) been down or required any support attention in a combined 3.5 man-years of use.
Since there's literally no work involved to support it, we use Rendezvous to share iTunes, and chat and transfer files over iChat. I wish Address Book had Rendezvous sharing, so we could publish a subset of our contacts. Update 2/4/04: Now you can.Update to Update 2/4/04: Address-o-sync is a neat proof of concept, but we had some issues almost immediately, and I think I prefer the “iTunes” sharing model (pull from whatever computers are visible) to the “iSync” sharing model for contact data.
We've had to spend a good deal of time, and a fair amount of money, building our own interface to manage some signs that also offer a limited Windows interface through a proprietary DLL, but the capabilities we've added by developing it ourself and the deeper knowledge we've gained of our key products more than outweigh those costs.
Python gives us development flexibility, the ability to easily add in other libraries, and fairly simple integration with databases. Since developers tend to write about the same number of lines in whatever language they're using, my programmers have been very productive, and better able to deal with quirks introduced by flaky bosses. For more on the advantages of scripting languages in comparison to traditional system languages, check out John Ousterhout's Scripting: Higher Level Programming for the 21st Century, from the March 1998 edition of IEEE Computer.
I really can't think of anything we've really needed, and been unable to find for the Mac. I've had to convert CAD drawings into other formats to view, but the average business doesn't have PCs with CAD software installed, so I think that's a wash.
Where our 6 Macs have required essentially zero support (again, knocking on wood), the two PCs have not. The CFO had a Toshiba Satellite, and now an IBM ThinkPad, that between them have chewed up several days of support, over setup for her MP3 player, upgrades to her accounting package, and problems upgrading Norton Antivirus. And that's ignoring what a pain it is to switch it onto our wireless network when she visits, between IBM's wireless card interface and XP's wireless control panel, and the need to convert the alphanumeric WEP key we all have memorized into a hex key to log her in. My Mac switches between three different access points, and two wired connections, and I never have to type a password.
I'm not saying that Macs and Linux boxes are no work, but the work, it seems to me, is focused on the solution at hand, rather than the problem of the moment. It looks like I'm continuing to marginalize the Windows boxes — our CEO wants an iMac when we move into our new space next week.Update: I've posted some more details of how we work.
TrackBack URL for this entry:
Listed below are links to weblogs that reference Running a business on OS X and Linux:
Tracked on Feb 4, 2004 12:40:34 PM
» Running a business on OS X and Linux from nf0's Life
Frank has an excellent post about running a business on OSX and Linux. It has lots of good information. A company like mine doesn't see the value in Macs (cost to much, blah blah), but I bring in the powerbook alot and can do all my same tasks on it ea... [Read More]
Tracked on Feb 4, 2004 2:15:49 PM
» "Cowboy coding" vs. "real" software development from Oren Sreebny's Weblog
Chad Dickerson points out this piece by Frank Steele (formerly of CNN online) about running a business using Macs, Linux, and Python scripting. While I certainly believe that sustainable businesses have to have some formal planning and software develop... [Read More]
Tracked on Feb 6, 2004 10:21:27 AM
» Sipht - Nicest of the Damned: Running a business on OS X and Linux from
Pretty interesting. [Read More]
Tracked on Feb 6, 2004 4:09:48 PM
» Links from jeremiah.blog
Fox News: Techie Names Son Version 2.0 Slashdot:US Govt Makes Times New Roman 14 Official Font One thing that they forgot to mention is that all U.S. government reports now have to be accompanied by the correct cover sheet. Oh,... [Read More]
Tracked on Feb 6, 2004 5:23:15 PM
» Thus proving the theory... from Bag of Blix
The running joke among those who do not necessarily work in IT departments, but must cooperate with them to get their jobs done, goes something like this. Most decisions regarding use of one technology over another is usually related to... [Read More]
Tracked on Feb 7, 2004 8:51:19 PM
Tracked on Feb 9, 2004 9:22:36 AM
I have had a similar experience with a Bank. They had a database written for the Mac, did name-address lookups for letters, and I started coding in an RTF and PDF generating module. It worked very well, but the Windows bigots came by, and after spending several times my salary over a period of half a decade, they replaced it with something that does less and requires more manpower - including end users who need to manually do things that were automatically generated. Suffice to say, I left the place when there was no more need for the Mac guy.
But, hey! They got rid of the Macs! And it now runs on Windows! Isn't that what it's all about?
Posted by: Ditto at Feb 6, 2004 1:02:26 PM
Why is your CFO doing listening to MP3s on a work computer for? Are you hiring?
Posted by: zed at Feb 6, 2004 2:36:14 PM
Very cool story. I'll definitely link this to a few friends. Thanks again.
Posted by: Ben at Feb 6, 2004 3:39:08 PM
"I wish Address Book had Rendezvous sharing, so we could publish a subset of our contacts."
Try using iSync with your .Mac account! According to Apple at http://www.apple.com/isync/ ...
"If you use more than one Mac, your .Mac account combined with iSync is the perfect way to keep them synchronized. iSync accesses information from your Mac OS X Address Book for your contacts, Safari for your bookmarks and iCal for your schedule and to-do items. Any changes you make to this information on one of your computers travels securely over the Internet to .Mac servers as soon as you sync. When you sync your other Macs, they’ll automatically download all the latest changes."
Posted by: Aryugaetu at Feb 6, 2004 4:32:56 PM
I agree, you spend less time dealing with problems and more time creating business value.
With Apple, you also have more options to adapt to changing business conditions.
Posted by: Steve at Feb 8, 2004 12:12:28 AM
For an iTunes type Address book sharing, did you try iSparx?
Great article BTW.
Posted by: Matt at Feb 8, 2004 3:43:30 PM
Have you heard of DayLite?
Does contact sharing and a whole bunch of other cool stuff, like sales tracking.
A must to run a business on a mac! ;)
Posted by: Michael at Feb 10, 2004 2:18:13 PM
Ok, this is all good, but what about 2 bug bears, exchange and adserve, are there anything on os x which do the same (adserve is a no starter)
Posted by: Mike Griggs at Feb 13, 2004 4:41:59 AM
Well, as I say, when Exchange is the answer, you're asking the wrong question ;-)
What features of Exchange do you need?
Posted by: paul at Feb 16, 2004 11:05:43 PM