jb… a weblog by Jonathan Buys

Songbird Media Player

December 29, 2008

Songbird is a very young product with a very bright future. The Mozilla based media player has come a long way since first releasing a beta, unfortunately to unseat the ruling titan iTunes, Songbird still has a very long ways to go. Songbird is open source, packed with features, and seemingly infinitely expandable through various add-ons and web integration. Also, like the rest of the Mozilla suite, Songbird is cross-platform, a point that becomes glaringly obvious the moment the app is launched.

First the good points. Songbird is a lot of fun! On first launch, Songbird asks if you would like to import your existing iTunes library. I was able to import mine without a problem, including DRM’d tracks and movies. Songbird cannot play the movies, but it has no problem playing your iTunes purchased music. The mashTape extension gives quick and easy access to information from across the web concerning the currently playing track. It will pull up the artists biography, discography, reviews, news, photos, and videos. Another interesting extension is integration with the SeeqPod website. Selecting the SeeqPod Search item from the left pane allows you to search the Internet for songs, and then download them to your library with a right click. The search is a bit slow, especially when Songbird attempts to verify all of the links. Certainly a lot of fun, the SeeqPod extension seems to be of questionable legality.

Songbird has cleaned up their interface quite a bit, and with the exception of the play and volume controls being at the bottom instead of the top, the default “feather” (or skin) looks fairly similar to iTunes. As a matter of fact, there are a couple of iTunes skins for Songbird, but they either were not compatible with Songbird 1.0, or looked nothing like the real iTunes. The Mini Player view is reminiscent of some of the older media players, a very compact interface that I really enjoy.

For all the fun Songbird is, iTunes will remain my media player of choice for now. While Songbird does makes advances with its interface, no skin will replace not having a native mac UI. Something in the way the app feels while using it gives it away as being a port of a “multi-platform” application. A small and rather insignificant example of this is how the “About Songbird…” menu option opens a sheet covering the library with the software license agreement. A normal mac citizen would have another window, most likely with the applications icon centered towards the top, followed by the applications version, and then maybe some other interesting facts about it. A quick look through my other open applications (Mail, iChat, Safari, TextMate, and Yojimbo) shows a consistency that Songbird lacks. This is a small example, but one that shows the lack of consistency with standard Mac UIs that is pervasive throughout the application.

Songbird also seems to consistently take up quite a bit more resources than iTunes. Songbird uses approximately 20-25% cpu during playback, and ranges from 100 - 150MB persistent RAM size. Compare this to iTunes which uses between 4 - 7% cpu and 80-100MB of RAM. Songbird takes longer to launch, and adds to the resource utilization as more add-ons are installed and used.

Songbird seems like an application that missed its mark. With all of its web enabled functionality, it still cannot perform some basic tasks, like playing a movie or video file, or importing a CD. Given that this is a 1.0 release, I’m looking forward to some great things from this project. Once an open source app gains steam, advances can be made very quickly. I’d like to see a faster start time (how about one bounce in the dock?), a native user interface, and a lot of work done on the back end to reduce resource utilization. Given that there are really not a lot of players in this market, I’m excited to see an iTunes competitor. I just hope that Songbird’s goal was not to be a poor iTunes clone.


Merry Christmas

December 25, 2008

“And the Grinch, with his Grinch-feet ice cold in the snow, stood puzzling and puzzling, how could it be so? Christmas came without ribbons. It came without tags. It came without packages, boxes or bags. And he puzzled and puzzled ‘till his puzzler was sore. Then the Grinch thought of something he hadn’t before. What if Christmas, he thought, doesn’t come from a store. What if Christmas, perhaps, means a little bit more.”

—Dr. Seuss (1904-1991); writer, cartoonist


MobileMe is not a Blogging Platform

December 24, 2008

I thought I’d try OSZen on MobileMe yesterday, to see if I could consolidate even more of my online accounts. Unfortunately, the limitations of both iWeb and RapidWeaver became quickly apparent. I pointed 1and1’s DNS servers at MobileMe, and uploaded an iWeb site. I liked the theme, but the first thing that struck me as odd was the URL. In iWeb I configured the site’s name to be OSZen, and to use the Blog page as the home page, but the URL turned out to be http://oszen.net/OSZen/blog/blog.html which for the home page was just ridiculous.

Next, I changed the name of the site to “writing”, and wound up with a home page URL of http://oszen.net/writing/blog/blog.html. Again, ridiculous. I’m assuming that this is Apple’s way of allowing more than one iWeb site, but I wish that it had better support for personal domain names.

The other thing that really bothered me about iWeb’s blogging engine was how each new blog post was formatted with the default theme’s pictures and text. Meaning that for each post I had to delete the picture and change the layout of the page. This equates to worrying far more about how the site looks instead of concentrating on writing.

These two small items were all it took for me to switch the DNS setting for OSZen back to 1and1, and back to the comforting ease of Wordpress. The great thing about Wordpress is that it’s meant for writing and self publishing, and it does it very well. The more recent ability to update itself and it’s plugins only adds to the ease of maintaining your own Wordpress installation. Also, I’ve got MarsEdit, which rocks, and means that I almost never have to actually get into the admin interface of Wordpress. I do all my writing for OSZen from an application that was designed for writing.

I thought it might be fun, since I’m consolidating all of my online accounts and pruning them down, but the truth of the matter is, web hosting at MobileMe is for sharing your family photos with Grandma back home, it’s not a serious blogging platform.


The Coffee Cup

December 24, 2008

I’ve had this coffee cup on my desk at work for the past year or so now. It’s just a plain white cup, with the Ubuntu logo on it. I got it from CafePress. I loved it, for one, because the Ubuntu logo is great. Best Linux logo out there. I also loved it because as I was thinking about how to solve one problem or another, the cup was normally there with hot coffee waiting to be sipped as I pondered the solutions. Today I picked up the cup, walked towards the coffee pot, and dropped the cup. My wonderful Ubuntu coffee cup shattered as it hit the floor.

I loved that cup, so I didn’t want to break it. However, it seems appropriate, as today I also switched back to Windows at work. I’ve been running Ubuntu as my primary desktop at work for several months, and running XP in VirtualBox when needed. Lately, I’ve been needing the VM more and more, as I do more diagramming and planning in VMWare Infrastructure Client and Visio, both Microsoft centric applications. Also, rumor has it that in the next couple of months we will be replacing our aging Lotus Notes servers with Microsoft’s Exchange 2007. IBM released a Linux native Notes client which supports Ubuntu, and really works great. When we made the switch to Exchange, I was hoping to use the Evolution client that comes with Ubuntu. Unfortunately, Microsoft changed the MAPI standard for communicating with the server in Exchange 2007, and there is no supported Linux client. Which left me with two choices. Run Outlook in my VM, or moved everything back to Windows and conform to company standards. I debated this in my head for a couple of weeks, but in the past three days I’ve had X crash on me three times in Ubuntu. When X crashes, it takes all of my X applications with it, along with the data… it’s like Windows ‘95 all over again.

X crashing for no apparent reason was the nail in the coffin for me. I moved all my data over with a USB drive, and Monday I’ll format the Linux partition and fdisk /mbr from the XP recovery console.

I’ve really enjoyed using Linux, but honestly, it’s kind of relieving to be back in a supported environment again. There are still quite a few desktop tools missing from Ubuntu that are available on Macs and Windows. My current favorite so far is Evernote, with the aforementioned Visio running a close second. Launchy is nice… not as nice as Quicksilver or Gnome-Do, but nice.

Mentioning Gnome-Do brings up another point. Gnome-Do has been acting up lately, catching on something or other and eating up 99% CPU. The developers are aware of the problem, and are working on a solution. However, using Gnome-Do as an example, the very idea of what they are doing with “Release Early, Release Often”, completely goes against the grain of a business desktop. Any Linux desktop will contain beta-quality code, and when I’m relying on a computer to do my job, I can’t have it acting as a beta tester. Ubuntu is doing lots of cool stuff with 3D desktops and cutting edge software, but I don’t need it to be cool, I need it to work. Reliably.

One last note about why I’m not using Ubuntu at work any more. My computer is a Dell laptop, mostly used in a docking station, attached to a 22 inch monitor. I noticed after a while that my laptop was getting really hot in the docking station, and I couldn’t tell if Ubuntu was reading the docking station correctly or if it was displaying on both the internal monitor and the external monitor. When I popped the lid on the laptop, the monitor either came on suddenly or was on the entire time, and the keyboard was hot to the touch. In the Gnome “Screen Resolution” preferences I found that I could turn the monitor off from there, and I think that solved that issue, but I’m not sure. I’d hate to think that I was actually causing the hardware harm by running linux on it. I don’t want to spread FUD, but if its true, its true. When I’m running Windows, I don’t have that problem at all.

So, now I’m looking for a new coffee cup… something to inspire me, and be my companion in my little beige box. Whatever the new design is, it needs to be something that will last, something reliable, and something that’s in it for the long haul. Ubuntu has been good to me, both the OS, and the coffee cup, but in the end, they both broke, and I’ve got to move on.


How to Fix Linux

December 24, 2008

It’s been nine years since I first installed Linux on a computer of mine. It didn’t last long back then, since I actually wanted to use the computer for surfing the web, sending email, and playing games. Linux has come a long way since then, and now it’s a reliable desktop system at work. However, my system is reliable (and enjoyable) because I am a geek, and I know exactly what it needs to make it run smooth.

For example, I use a dual screen set up with Xrandr, and it works well, especially with the new composting ability in Gnome 2.22. Getting xrandr to work properly required me to edit a few lines in the xorg.conf file to allow for a large maximum desktop size. Compare this with how Windows deals with dual monitors. You plug it in, turn it on, enable it in the preferences, and there you go. Now compare that with how Macs handle dual monitors. You plug in another monitor and it works… bottom line.

I realize that there are a lot of valid reasons for this. Proprietary hardware, lack of documentation, legacy code, etc, etc, etc…

I also realize that 99% of people who use a computer do not care.

Computers should be like appliances… plug them in, turn them on, and start using them. I like the toaster analogy. I don’t care how my toaster works. I just want it to make my toast in the morning. I don’t care if I have the “freedom” to take the toaster apart and study the timing mechanisem and re-create it in yet another toaster. I just want toast. I use Linux at work because it is an amazing server. I’ve seen Linux servers keep on trucking through some environments that would kill another OS. I use Linux on my laptop at work becuase it integrates in with my workflow and scripting perfectly. I don’t use it for the freedom, I use it because it works well for my environment. My environment however, is very different from the average home user.

If Linux is ever going to take hold it needs to learn a few things from Apple. Here are a few points that will bring Linux onto Mom and Dad’s desk.

  1. Own the hardware. Apple controls all aspects of its hardware/software relationship. I’m not saying that a particular Linux distro would only be able to be installed on whatever vendors hardware, but I’m saying that a hardware vendor should adopt Linux and fully develop the OS in house to support its hardware.

  2. Manically control the distro. The open source nature of Linux makes this very difficult, but it also makes Linux feel… disjointed. This goes hand in hand with point 1, develop the hardware and software in tandem to support each other. Release the code as GPL, sure… give it back to the community, but control what goes into the distro and develop it in-house. Linux has a bad habit of adding features because it can. Compiz has hundreds of options for rediculous visual features that no one needs (and a few that everyone does need!), and which really distract from using the computer. Another example: Do you think KDE 4.0 would have made it past the desk of Steve Jobs? Can you imagine what that conversation would have been like? Which leads me to my next point:

  3. Appoint someone Grand High Poomba. Someone needs to be there to say “No”. Someone who will say, yea, that’s a great idea, but we are not going to do that in this distro. At times I think that Mark Shuttleworth is that guy… and then there are other times when he decides to ship every six months if Ubuntu is ready or not. Shuttleworth could be that guy.

  4. Provide the end to end user experience. When I pop open the lid of my laptop, I expect to be able to start using it within seconds. When I close the lid, I expect the laptop to go to sleep and wait for me to need it again. When the hardware is fused with the software, and features are controlled and perfected, the result is a very fluid, intuitive experience that brings the users back.

The last item I’d love to see from Linux is to stop adding new features. Seriously, stop adding new, untested, beta quality code and spend some time perfecting what is already there. Fix what you have first. Then, and only then start adding new features.

Linux, we’ve come a long ways, but we’ve still got a long ways to go.


AutoYast

December 24, 2008

I wrote this last year and never posted it. I’m glad I found it and can post it now.

One of the projects I’ve been working on in the past week has been a rapid deployment server for SLES 9. I would have liked to deploy SLES 10, but we are constrained by our application requirements. Novell has done a great job at making it easy to deploy SLES or SLED using their Autoinstall and Installation Server options available through YaST. Using Autoinstall, YaST steps you through the options required to generate an xml file, this xml file is read by YaST during system install and automates the process. To build a network installation source, the contents of the CDs or DVD need to be copied to the hard drive, preserving symbolic links. YaSTs Installation Server makes this easy, and also makes “slipstreaming” (to borrow a Windows term) a service pack into the install source automatic. I’ve built the network install source both ways, and I prefer using YaST to do it for me.

Even with all this being said, YaST (in SLES 9) is still missing some features that require me to edit the xml file directly. The most important feature it’s missing, which they included in SLES 10, is the ability to create LVM volumes during partitioning. Not to say that it’s not possible, it just requires editing the xml source file. Using a little trail and error, I was able to partition the drive with a 200MB /boot (too big, I know), a 2GB swap, and then partition the rest of the drive as LVM, and then mount /, /var, /opt, /usr, /tmp, /home, and /work inside the lvm. Works like a charm. If you need a working autoinst.xml file, you can download mine here.

This setup is great, but it required me to boot off of the CD, and then enter a long install=nfs://bla bla bla/bla bla autoyast=nfs://blalbalba line at boot time. To really make the system work, I needed network booting for full automation. I found a great walk through in this pdf, which surprisingly enough, worked for me the first time. I had to install tftp, syslinux, and dhcp-server rpms, then edit a couple of files, move a couple of things, really no big deal.

Now, I’m ready. When we get 100+ servers in, which I’m told I’ll have 7 days to install, I’ll be able to say “what would you like me to do with the rest of the time?”


Build Something Better

December 19, 2008

What would it take to change computers? What would it take to build something truly revolutionary in a time where most of the design philosophy of a computer is taken for granted?

I spend an inordinate amount of time thinking about ways to make computers better. Much of that thought is dedicated to software, but an equal amount of daydreaming is allocated to hardware. In my mind, the two go together like peas and carrots, ying and yang. A couple of years ago I wrote a college paper that talked about the UMPC market, which has now evolved into netbooks. I couldn’t stand the UMPC interface or hardware, but something about the idea of a very small, very portable computer appealed to me. Massive amounts of information, instantly available, wherever you are. I took the ideas of tablet PCs and UMPCs and designed something I called the FarmDog.

FarmDog was a tablet PC with an OS that ran off of a removable flash drive. The OS ran off of that drive, but all applications and user data resided on a hard drive, which was also removable. The idea was that you could keep your OS and your data completely separate, and also make it very, very easy to back up your system. Upgrading to a new operating system would involve buying a new chip from the store, shutting down the PC, putting in the new chip, and restarting the PC. You could switch between OS’s whenever you like, so if one is giving you problems you could go back to a previous revision.

A second part of the FarmDog was the dock. Normally, when you were running around with your PC, it acted as a tablet. However, when you put FarmDog in the dock (vertically, I didn’t imagine it being docked as a widescreen.) you had the setup of a regular desktop computer. Keyboard, mouse, etc… the main difference with the FarmDog dock was the automatic drive duplication. Now, we would probably want to implement something like Apple’s Time Machine, but at the time, I was thinking of duplicating the entire data drive to an external disk every time the PC was docked. This would keep a good backup of your applications and data, just in case.

I believe that the secret to a great consumer computer is a tight bond [between] software and hardware, coupled with great design in both. Apple has this just about nailed with their new MacBooks, but I’m still left wondering, how could we build something better, something different. I think FarmDog could be the start of something, I just wish I had the funds to build it.


Account Pruning

December 19, 2008

I’m a geek. Understanding that little fact puts me a little closer to being in touch with myself, and understanding that I’ve got a habit of trying out every new service or technology that comes along. That’s fun, but in the case of online services, I wind up with accounts all over the place. So, the past few days I’ve been pruning my online accounts down to what I really need.

email

I started out with AOL in the ’90s, and quickly learned that AOL masked the rest of the Internet, and that all I needed was a connection and a real browser. From there, I went to Hotmail, and stuck with Hotmail for several years, up until the time I bought my first Mac. Since getting an iBook in ‘03 I’ve had a .Mac account, but it hasn’t always been the best email service. I also tried Yahoo mail, but I’ve never liked any of the Yahoo services… too gaudy for my taste. Then came Gmail, which is an excellent service, and one that I’ve stuck with for quite a while now. However, there’s also the new MobileMe, which promises to synchronize everything everywhere, and since MobileMe offers a ton of other features, and integrates seamlessly into my MacBook, I’m sold on it. I’ve actually gone back and forth between MobileMe and GMail quite a bit. Since Gmail can download pop3 mail and send mail as my MobileMe account, it makes it easy to switch over to it. However, I’m not a big fan of the Gmail design, or any of the skins that I’ve seen, and I really like to use Mail.app for my email. I could use pop with Gmail, which works great, or I could use IMAP, which doesn’t work so great with Gmail but works perfectly with MobileMe. I also really love the visual design of MobileMe. I think it’s uncluttered and smooth. No ads (since it’s a paid service).

So, anyway… I wind up with five or six email accounts spread out across the interwebs. I’ve been closing them one at a time, and it’s not always easy. A lot of companies, like Microsoft and Yahoo, will not just close your account straight off. You have to request that it be closed and then not attempt to log back in under that user name for three or four months.

social

I’ve had accounts on MySpace, Facebook, LinkedIN, Friendster, Orkut, Del.icio.us, Flickr, Twitter, Pounce… and probably a few more that I cannot think of right now. I thought all of them were fun, but of limited functionality. Over the past couple weeks I’ve pruned them down to Twitter and Flickr, and I think I’ll keep it at that. Twitter is fun, and it’s got some additional services that I use every day. I follow CNN Breaking News, and get a text message as soon as some important news story develops. It’s not too frequent, only really big stuff. Some of the people I follow also point out some really cool stuff on twitter that they don’t mention anywhere else. Flickr is a great photography site, and I’ve had a pro account in the past, but not now. One reason I’m really not happy with Flickr is that I have to have a Yahoo account to use it. I’ve already said that I don’t like Yahoo that much, and would much rather close the account all together. Also, MobileMe has a photo sharing service that integrates right into iPhoto, although that service is not nearly as “social” as Flickr, it’s still a way to get my pictures out there. If I can find a way to integrate the MobileMe galleries into Wordpress we’ll be in business. I consider the relationship between Flickr and myself “Under Review”. Del,icio.us = same story… great service… bought by Yahoo… I don’t want a Yahoo account.

storage

When I was looking at a replacement for MobileMe, I needed a replacement for iDisk. The best I could find was Box.net, but I could never get the webdav mount working properly in Linux. iDisk works great, pretty much every time, I rarely have a problem with it. Also, I can sync my iDisk locally to my Mac, which means I still get off line access. If, that is, I were ever off line. I also looked at Microsoft’s Live services, but I don’t think I ever actually used the online storage for anything.

elsewheres

I wind up trying out all kinds of beta services and startup companies web sites. I’ve loved all the new Web2.0 design that’s been so big lately. To be honest, I can’t even begin to count all the services I’ve signed up for. I’m hoping that eventually the accounts that I’ve signed up for but no longer use will expire. I think what I really need to do is come up with a fake online identity and use that to sign up for all the accounts that I’m just trying, verses the accounts that I actually use on a daily basis. On the other hand, why should I even bother with shutting them down? Well, to answer that, I’ve got to go back to my opening sentence: I’m a geek. Being a geek also means that I really like to keep things organized, and if it’s not, it drives me nuts. I need to prune, or I can’t concentrate, it’s an open loop, and open loops need to be closed.


Nagios Check Scheduling

November 5, 2008

Or, maybe a better title for this would be “They rebooted the server, why didn’t I get a page?” I’ve had that question asked of me a few times, and I’ve never had a good answer, so I thought I’d take a closer look at Nagios and see what is going on.

Inside of nagios.conf are six values that are important to consider. The first is the Service Inter-Check Delay Method. This is the method that Nagios should use initially.

spreading out service checks when it starts monitoring. The default is to use smart delay calculation, which will try to space all service checks out evenly to minimize CPU load. Using the dumb setting will cause all checks to be scheduled at the same time (with no delay between them)! This is not a good thing for production, but is useful when testing the parallelization functionality.

  • n = None - don’t use any delay between checks
  • d = Use a “dumb” delay of 1 second between checks
  • s = Use “smart” inter-check delay calculation
  • x.xx = Use an inter-check delay of x.xx seconds

The next setting to look at is the Service Check Interleave Factor.

This variable determines how service checks are interleaved. Interleaving the service checks allows for a more even distribution of service checks and reduced load on remote hosts. Setting this value to 1 is equivalent to how versions of Nagios previous to 0.0.5 did service checks. Set this value to s (smart) for automatic calculation of the interleave factor unless you have a specific reason to change it.

  • s = Use “smart” interleave factor calculation
  • x = Use an interleave factor of x, where x is a number greater than or equal to 1.

I love it when there is good documentation in the config files. So, there are several checks running at once, and they are spaced out how the Nagios application thinks is best, but how many are running at once? This is determined by the next variable, Maximum Concurrent Service Checks.

This option allows you to specify the maximum number of service checks that can be run in parallel at any given time. Specifying a value of 1 for this variable essentially prevents any service checks from being parallelized. A value of 0 will not restrict the number of concurrent checks that are being executed.

Our variable here is set to 0, unrestricted.

The third item that caught my eye is the Service Reaper Frequency variable.

This is the frequency (in seconds!) that Nagios will process the results of services that have been checked.

Our variable here is set to 10, so every 10 seconds Nagios processes the results of the checks.

The last value is actually a group of values collectively known as Timeout Values.

These options control how much time Nagios will allow various types of commands to execute before killing them off. Options are available for controlling maximum time allotted for service checks, host checks, event handlers, notifications, the ocsp command, and performance data commands. All values are in seconds.

Our values are:

  • service_check_timeout=60
  • host_check_timeout=30
  • event_handler_timeout=30
  • notification_timeout=30
  • ocsp_timeout=5
  • perfdata_timeout=5

Knowing the theory is good, but it is also good to know the exact times between checks. In the Nagios web interface there is a page for each service that is monitored with the label “Service State Information”. On this page I found the timestamp for the “Last Check Time” and the “Next Scheduled Check”. Looking at several of these I found that each service check is five minutes apart… down to the second.

One last item to consider is that Nagios gives each check three chances to correct itself. This means that if Nagios finds an error, it immediately schedules the next check of the service. (Ping also being considered a “service”)

So, what all this means is a very long-winded explanation of what I thought was happening. The server was rebooted right after a service check, and it came back up before the next service check was executed.


Essentials

November 4, 2008

Inspired by Mark Pilgrim’s Essentials post, I thought I’d come up with my own list of essential software.

  1. Mac OS X. Closed source or open source, I lean towards the system that performs the best. Simplicity, security, and reliability have made me a Mac fan for years. I’ve tried to love Linux, I really have, but the love is just never returned.

  2. Safari: I don’t think Safari is really “The world’s best browser”, but I do think its the best browser on OSX.

  3. Adium: Adium beats out iChat in just about everything. I could care less about video chat, and I type just fine. If I want to talk to someone, I’ll call them. Also, since $WORK uses Lotus Notes and Sametime, Adium supports getting on the chat network from home when I’m on the VPN.

  4. Shimo: Speaking of the VPN, Shimo is amazing. A major leap forward from the ridiculous Cisco VPN client on the Mac. It’s awesome, and I can’t live without it.

  5. iTunes: iTunes is not the most lightweight media player on the market, but it’s certainly the best at what it does on the Mac. It’s a mix of music, movies, tv shows, and even applications for the iPhone or iPod touch. And, if you are smart and shop at Amazon MP3, you get cheaper music, better quality, and none of the DRM that you get from the ITMS.

  6. iCal + Google Calendar: I don’t really know why I haven’t moved my calendar over to gCal completely, I really do like the UI of iCal, so maybe that’s it. Or, maybe its the desktop integration. Whatever it is, I’ve moved past Mail.app in favor of Gmail, but I’m still using iCal for my calendars.

  7. iPhoto: There’s really no better alternative available to iPhoto on the Mac. It’s either that, or using the Finder to manage my photos, and since I’ve got several years invested in iPhoto, I really don’t feel like switching to anything else.

  8. Preview: Preview is far faster than Adobe Reader for viewing PDFs, but more than that, it works great as a simple image editor as well. You can edit icons, crop and resize screenshots for the web, and annotate PDFs. Preview is one of the apps that I miss when I’m away from my Mac.

  9. MarsEdit: I dispise typing in any online, web based text editor, so Mars Edit is a life saver. Always under active development, MarsEdit has great support for Wordpress, which is all I really need. Another must have.

  10. OmniGraffle: Every now and again I need to make a graph, or a chart, or a mind map, and when I do, OmniGraffle has me covered. It’s sometimes touted as Visio for the Mac, but I think OmniGraffle is in a class all its own.

  11. TextMate: Because I can’t get my .exrc file from vi working exactly the way I want it just yet. For writing, its either TextMate or vi, and really, it’s a bit of a toss-up. I use vi for just about everything at $WORK, and I may begin using it at home, but till then, TextMate is the next best thing.

  12. Yojimbo: I collect random bits of information from all kinds of places… pictures, web pages, passwords, serial numbers, bookmarks… everything gets dumped into Yojimbo.

  13. Time Machine: I loves me some backups, and its good to know that Apple has me covered with the Time Machine. All I have to do is remember to plug in my MyBook and I’m backed up. That, and the GUI to restore files is way more fun than TSM.

  14. Xcode: I’ve dabbled in development, and I’m planning on returning soon. If you want to develop on the Mac, you have to use Xcode.

  15. Spotlight: Spotlight is an amazing technology, far more advanced than other desktop search applications. Spotlight does not rely on periodic indexing of the hard drive. Instead, Spotlight indexes the system once, and from then on, every time a file is changed, the change is written to both the file, and to the Spotlight index. Keeping the spotlight index up to date, instantly, all the time. Introduced in Tiger, Spotlight has really matured in Leopard. Its so fast that I now use it for everything that I used to use Quicksilver for.