Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Tuesday, October 30, 2007

It's LIVE!

After many years at Microsoft, I've gotten used to a certain rhythm of shipping. It takes place over a period of months (and sadly, sometimes years) but the process is generally pretty similar. When shipping large client releases of software, where the cost of getting a fix out to all of your customers is high if you make a mistake somewhere along the way, you need to spend a lot of time in the planning stage and even more time in the stabilization, integration and testing phases of the product. Sometimes that last phase can last a year all by itself. Then it takes a few months for all of the CDs/DVDs to be made and shipped out to the store. By the time it hits the streets, you are often months into the next project.

Even when I was writing my shareware utilities like DragStrip, there was a lot of work involved in releasing an update, even to the internet. Installers, upgrade testing from all of the previous releases, documentation updates, email to users about the changes, etc.

The wonderful world of web services is very different. The distance from a development build to a shipped release is often as little as synchronizing some code to some servers and updating a database. Boom, you've gone from working for a few people to having your entire user base up and running on the latest version. You still need to go through the integration and validation periods but they are much shorter because the cost of getting a fix out is much MUCH smaller and, in all of the cases I'm working on, the code base is miniscule compared to things like, well, Windows.

This is not news to anyone who has worked on websites and web services before. The really cool thing for me at DeepRockDrive now, though, is the fact that the software we're building is not just live on the net, but it is LIVE, as in Live on Stage. I'm working on updates for our interactive show experience which users can tune in tomorrow at 5:00 to see. Take all of the excitement of shipping new code, and add in the excitement of a live show where, honestly, anything can happen. This week, it is updates to our in show set list voting mechanism where the fans get to vote on what the next song they want to hear next and then the band actually plays the top vote getter. At last week's show, we had some "challenges" with this so this week, its a big update to help it perform better. We can do all the stress testing we want on it, but we won't know for sure until the crowds come in and start voting. It's LIVE!

I have to say it is incredibly cool to have a challenge like this. We have some work we need to get done before the show, and we can't slip because, as they say, the show must go on. It creates a whole new kind of urgency in development and it is really nice to be able to get stuff out to our customers like this.

So if you haven't already, head over to DeepRockDrive and create an account. Then tomorrow, join us for The Objex at 5:00 PM PST. And while you're there, vote on my latest petition for National Geographic Live to come to DeepRockDrive.

Why? Because it's LIVE!

Thursday, June 21, 2007

Late Night Cocoa

As I've been getting back into Mac development and ramping up on Cocoa, one of the nicest resources I've found is the Late Night Cocoa podcasts available at LateNightCocoa.com and on iTunes.

Steve Scott (or Scotty, as he calls himself) does a great job of finding experienced Cocoa developers and helping them explain all sorts of different aspects of Cocoa - from the individual frameworks to the development tools and to goings on in the community. He occasionally gets a bit too rudimentary - like when Uli Kersterer spends several minutes explaining what memory is - but generally it is a nice way to pick up some new tips or ideas from other developers who are using Cocoa every day.

If you've got time during your commute, your exercise regimen, or just while you're taking a break from typing lots of square brackets Late Night Cocoa is a great resource for coming up to speed and picking up new techniques.

Friday, April 06, 2007

TextMate - Putting the Fun back in Typing

I've been looking for the right programmer's text editor for a while. I have had high expectations of text editors, ever since I wrote my own IDE back in the olden days. I want lots of flexibility and a simple, elegant interface. Fast syntax coloring and massive configurability without the arcane knowledge required for things like emacs and vi.

I've looked at lots of things on Windows but never found one I liked. Source Insight is nice for indexing but it feels cluttered and non-intuitive. The UI looks grungy too and only part of that is the fact that it tries to use Windows common controls. Visual Studio has a nice editor if (and only if) you're building in their environment. Much of its cool functionality is possible because they also compile the code and can do cool intellisense completion based on the knowledge they get from their compiler. If you are using a different build environment(like I need to) it doesn't do much more than syntax highlighting and there is lots of UI around it that just doesn't apply. I tried BBEdit and TextWrangler on the Mac and, while they are nice, they feel more focused on web development than multi-language programming.

Enter TextMate. It is also a Mac-only text editor but it has a great combination of customizability and programmability. You can create ruby, perl, shell or applescript commands that pretty much let you do anything on the text. It relies on regular expressions for a lot of the text features which, while very powerful, is very tricky and seems to involve occasional animal sacrifices but when it works, it is cool. The UI for the applications is very clean - not a pile of toolbars and UI widgets all over the place, they have maximized the space for the text but it is still possible to get to all of the funcionality very quickly and most functionality can be browsed through menus or config windows so you don't need to remember every keyboard equivalent to get going.

A lot of my programming is on Windows these days but I can now even use TextMate while doing my builds on Windows thanks to the combination of a simple little daemon app I wrote on Windows and TextMate's scriptability.

One of my favorite features is snippets. You type in a brief keyword, then hit the tab key and it will expand that text into a larger text block and it provides placeholders for text that you can then tab between and fill them in. One great example of this is the head snippet for html. All you do is type head, then hit tab and it replaces the word head with this:
<head>
<meta http-equiv="Content-type" content="text/html; ">
<title>Page Title</title>

</head>
The cursor has selected the words Page Title so you can start typing the title of the web page. Hit tab again and the cursor is below the title tag, ready for more header content. In fact, I had to use TextMate just then to convert all of the tags into entities so that blogger wouldn't think they were actual HTML. One command - W00T!

They recently released a book called TextMate: Power Editing the Mac which is a great way to get started with all of the features. My only complaint is that, while they try to explain regexp in a simple way, I think it needs more examples and samples of how to build up the expressions. Otherwise, it is a great starting point.

Apparently, the next version of TextMate will only work on Leopard, the upcoming release of MacOS X. While that's a little bit of a bummer, I am really looking forward to the new functionality that requires the updated OS.

If you're writing a bunch of code, and you can use a Mac for that coding, I highly recommend you check out TextMate!