Subscribe to feed
Blog | About

Barcamp Atlanta

Barcamp is coming up again October 17th - 18th. Check the website for additional information or to signup. The first one was a blast and I am very much looking forward to doing it again. Barcamp is ~24 hours of discussion, interesting conversation, learning about all kinds of cool projects, drinking beer (optional), and just having a good time.

I remember last year a big production bug came up around 11pm and I spent the 11pm - 6am hours fixing it but even with that it was a good time.

My goal now is to figure out something more interesting for a session this time around. Tried to do PostgreSQL tuning/admin last time and had all of 2 or 3 people show up for any portion. Perhaps something on Scala, am becoming a pretty huge fan of that language.

Comments (3)

Basic Postfix Queue Management

I had to wrangle with a bunch of overloaded email servers recently and wanted to share my new best friend when this sort of thing happens:

postsuper

This guy is available if your email server is running postfix (at /usr/sbin/postsuper) or if you are running Zimbra which uses postfix under the hood (at /opt/zimbra/postfix/sbin/postsuper in that case). You should be able to run it and access the man page for it as root. This is pretty basic stuff for a postfix admin but I had a lot of trouble finding even basic descriptions of how to go about doing the things that postsuper can do.

Postfix files messages into several queues. The main ones are the following:

  • Incoming/Active - These are the common queues where incoming/outgoing messages live until they finish being delivered or received.
  • Deferred - If messages cannot be delivered they go here and delivery is reattempted until the messages expire.
  • Hold - A queue that you the administrator can move messages to. Messages placed here are not processed, no attempt is made to redeliver them, and they do not expire. As far as I can tell this queue only exists to make life easy on the administrator and gives you a safe place to store things temporarily.

Sometimes an email server will get crushed with volume from an attack, a misconfiguration, a mistake, or something similar and your machine will peg itself at full load while it tries to move the messages. This is when postsuper shines. There is a lot more to postfix and postsuper but these three commands can help you save your server and the people that depend on it for email in certain situations.

  • postsuper -d (deletes messages)
  • postsuper -h (move messages to Hold queue)
  • postsuper -r (requeue messages, can requeue messages in Hold to Incoming/Active)

Each of the above commands take a third argument ‘queue_id’. This value can be ALL (must be all caps) to tell it to apply the operation to all messages in all queues, a dash (-) to tell it to apply the operation to queue_ids provided at stdin, or a specific message’s queue_id. The stdin option is especially nice as you can create a file with a queue_id on each line and then have postsuper process all of those messages in one run. You can also do ALL [queue name in lowercase] to apply the operation to all messages in a specific queue. For example, postsuper -d ALL hold would delete all messages in the Hold queue. Do NOT leave the queue name off if you are trying to do this else the ALL will snag everything in all queues.

Using the commands above, this is how you could deal with a single host, or a small set of hosts that is slamming your server with messages. Say these messages are not important and do not need to be read but they are backing up the postfix queues and preventing delivery of real email to your users.

(1) postsuper -h ALL

  • Pushes all messages (the junk and the valid ones) to the Hold queue so you can breathe and think.
  • Empties out the Incoming/Active queues so that new messages can be effectively delivered.
  • At this point you need to stop the hosts sending the volume you don’t want, either by blocking the hosts if it is an attack or by fixing the issues if it is a misconfiguration or issue with a server you have control over.

(2) Next you would want to delete all of the messages you don’t want from the Hold queue. There are several approaches here, but this is one:

  • Create a file containing the information on the bad messages:
    mailq | grep theEnemyHostName > bad_messages.txt
  • Write a script to generate a new file from bad_messages.txt that contains just the queue id on each line, nothing else. Use perl or whatever you are comfortable with. The queue id is generally the first chunk of output for each message printed by mailq so you likely just need to grab the first eleven characters of each line.
  • postsuper -d - < list_of_queue_ids.txt. This will delete all of the messages you identified.

(3) Requeue all of the remaining, valid messages with postsuper -r ALL.

All of the above applies to Zimbra as well. Even though it has that fancy web-based administrative interface and a real nice way to view and filter your mail queues that interface always blows up and pukes errors when I try to do an operation involving any kind of heavy message volume. So if you get in a similar jam the CLI is what you have to use. The postsuper command is also very fast so even if you have 10’s or 100’s of thousands of messages jamming things up it should not be a problem.

Comments

iPhone 3G vs. Windows Mobile 8125

I’ve been using a Cingular 8125 since 2005 as my cell phone. It runs Windows Mobile version 5.0 and this specific version is what I mean when I say ‘Windows Mobile’ or ‘WM’ for short. This post is more of a stream of thoughts specific to the iPhone with comparisons to the 8125 throughout.

The Old Phone

The 8125 was a pretty decent phone and my favorite features were the following:

  • The smartphone features in general (calendar, contacts, tasks, email). This was my first smartphone and I bought it for those features and used them heavily.
  • The Exchange synchronization through ActiveSync worked very well.
  • The ability to tether the phone to a laptop, I used this on several trips. It was EDGE and slow but it did work pretty reliably. I was able to make this work wirelessly over bluetooth with my MBP.
  • The slide out keyboard was really nice and I could thumb-type pretty dang fast with it.
  • PocketPuTTY is awesome and I used it a lot. Before PocketPuTTY there was some other SSH client that i’ve forgotten the name of that I used.
  • There is a lot of stuff you can install on WM to smooth over its rough edges (e.g. OperaMini is a big step up from IE)
  • It was a beast - an advantage and disadvantage. Very large to hold and store but also tough. It survived 3 truly hardcore drops with no damage aside from chips and scratches on its exterior.

It had a few annoying habits, the worst of which was it would often stop receiving calls. I wouldn’t realize it for a couple hours and then after a reboot (I had to reboot the thing a few times a week) I’d have a bunch of built up voice mail and missed calls. It was really aggravating but it seemed everyone with WM phones had the same general issues so I just worked with it and still found the phone quite useful overall.

The New Phone

A couple weeks ago the iPhone 3G came out and despite my inclination to avoid it for awhile I ended up giving in to peer pressure and ordering one a few days after release. I was out of contract, the 8125 was showing its age, and the combination of the more appropriate price (in line with WM and BB phones) and the new SDK and App store made me decide to give it a shot.

I’ve had the iPhone 3G in hand for 1.5 weeks now and thought I would offer my perception of the device compared to a WM phone I used daily for 2.5 years.

First some shots of the devices next to each other. From top/bottom they are actually pretty similar in size but the iPhone is about half as thick as the 8125. Not a huge surprise given the age of the 8125 but the newer iterations of that phone aren’t especially smaller (looked at all the smart phones at AT&T while waiting for my turn to activate).


iPhone 3G vs 8125


iPhone 3G vs 8125

The Good

There are a lot of things I like about the iPhone 3G but my favorites by far are the following:

  • The Exchange synchronization is flawless and actually better than WM. I haven’t received a single sync error which was a common occurrence for me with WM. Email setup in general is trivially easy.
  • The email/calendar/contact/browser applications are better, easier to use, and more stable.
  • The touch screen works really well and the whole phone feels utterly usable. Stuff makes sense.
  • The App store and installation/update process is wonderfully effortless.
  • I love the visual voice mail. You can see who has left messages, call them back, listen to them individually, or delete the messages without having to dial your voicemail and listen in serial.

There are a lot of additional small touches that I appreciate like the conversational display of SMS messages, the way the phone senses when you pull it away from your ear so you can hit ‘end call’ without having to wake it up (had to do this for every call with WM), the way meeting alerts look and work, the physical mute toggle that works even when the phone is locked, the consistent usage of the home button (instead of having to hit ‘ok’ a dozen times in WM) and much more. The general usability of the device makes me use the data plan. With the old phone I felt like it was more of a thing to use in an emergency or pinch but now I find myself using Safari, writing emails (as opposed to just reading them with WM), and everything else constantly. It’s just easier.

There isn’t a good way to manage tasks in the iPhone 3G by default but that’s okay because nothing can beat Remember the Milk and the RtM iPhone web interface is really fantastic. Speaking of applications, there are a lot of really great ones available in the new App Store and a lot of the best ones are free. Some of the best I have tried include:

  • The Mocha VNC and Telnet clients work great.
  • WeatherBug is great. Provides watches/warnings for your location, radar, and more detail than the built in weather app.
  • Yelp and Urbanspoon are pretty useful and like many of the apps make effective use of the GPS.
  • In terms of games Aurora Feint and Tap Tap Revenge are very polished and fun.

There are a ton of solid apps available - the above is just a small sample of the good, free ones. I am currently using several bookmarked web applications as well and for the most part you can’t even tell you’re using a non-native application. These include RtM (already mentioned for tasks), Google Reader, Google Talk, and an iPhone optimized Wikipedia.

One more neutral (though generally positive) impression I have is towards the keyboard. I am not as fast as I was with that 8125 slide out keyboard yet but it is getting better. I’ve found that though individual key accuracy isn’t very high the auto-correction that comes in behind as you type works surprising well. If you trust it to make corrections you can work back up to near buttonized speed though I suspect it will never be as fast. One very nice touch is that the bottom keys of the keyboard change depending on your input. If typing an email the @ symbol is a key and if typing a URL ‘.com’ is one key. That’s a really nice touch and combined with the shortcut of hitting ’space’ twice inputting a period followed by space I don’t have to switch modes on the keyboard as often as I did with the WM phone.

The Bad

The iPhone isn’t without negatives.

  • I’ve had it crash/restart 3 times.
  • A lot of the Apps are trash (thankful for the reviews in the App Store) or have costs when they should be free.
  • There isn’t yet an SSH terminal supporting an interactive command line and terminal emulation (though one appears to be coming in the near future)
  • There isn’t an official way to tether the iPhone to your laptop. I did snag Netshare before Apple pulled it the second time and it works great (~650 kbps down, ~350 kbps up) but I won’t count it in general due to it no longer being available for download.

As a final point I am not a huge fan of the closed environment Apple has created but at the same time am willing to take it because the phone is so nice and the App Store is so large and easy to use. I just want my phone/PDA to work without having to fiddle and coax and the iPhone does a wondeful job of that. WM was really open but the process of putting stuff on your phone was completely irregular, disjointed, and time consuming. We will see how Apple’s approach works out in the long run as more mature applications are released. I already know of 3 applications they let reach the App store and then pulled (Netshare, BoxOffice(WTF?), and 3-Tuple). The first was against AT&T TOS, the last was a complete copy of another company’s board game Set but I have no idea why BoxOffice was pulled. It seems Apple should at the very least not screw up by letting applications through and then pulling them. If they are going to consistently miss the apps they want to block anyway why even have a review process?

The biggest negative to the iPhone 3G in my opinion is the battery life. It is not good. I unplug at 7am each morning and by the time I get home around 6:30pm I am at 10% power and seeing the warning and that’s using sensible screen brightness and allowing it to sleep quickly when not in use. My 8125 could last multiple days on occasion depending on usage while the iPhone needs far more frequent charges. You will need a car charger so factor that into the iPhone cost. If you happen to have an iPod accessory that charges iPods try that before buying something for the iPhone because it probably will at least charge. I have a Belkin FM transmitter for the iPod and though the tuner part doesn’t work it does deliver a charge to the iPhone.

Bottom Line

Overall the iPhone 3G has proved to be a huge step up from my old 8125 running Windows Mobile. It feels slightly more stable than WM and is very usable. I trust the email, contact, and calendar sync’ing completely while I distrusted it often with WM. Safari blows away both IE and OperaMini and I find myself following links in emails without hesitation and viewing web pages often because I have full confidence in being able to view sites effectively. The audio quality is very good. The App Store is awesome and I love having literally hundreds of useful applications available to install with 1 click and sync (and the apps are only going to get better as time goes on). The upgrade process for applications already installed is easy and effortless. Once a better SSH client shows up that last remaining advantage of WM in terms of applications (IMHO) will be gone. Finally, hopping on a wifi network is easy and transparent and when not on wifi the 3G speed is solid. The Atlanta area 3G coverage stretches out well past the perimeter, all the way to Hiram/Powder Springs, so I am never without it.

I’d recommend the iPhone 3G without hesitation to anyone looking for a cell phone in the smartphone category. I didn’t think I would like it as much as I do.

Comments

OpenSuSE No More

I’ve installed OpenSuSE on a dozen or so work servers, used it as my previous development environment for about a year, and generally have been a big fan.

However, it has seemed the ‘official’ repositories get more and more out of date (I am running 10.2 mostly and my impression is it has been left to rot) and i’ve grown increasingly frustrated with how slow yast has become at updating its caches of rpms and repositories whenever I want to install or update software. I generally load yast, wait 10 - 15 minutes, then do what I was looking to do. I have the machines set to update themselves every week, do I need to toggle another setting to make them go ahead and update their software lists and repository caches?

That hasn’t been too big of a deal. The machines had been rock solid stable (300 day + uptime) so I didn’t want to fiddle with something that was working. I had a weird experience this week though when I realized what was happening when I rebooted some of the long stable machines.

The first case happened at the office for a machine that wasn’t very important. I rebooted and when the machine came back up there were dozens of errors related to runlevel 3 applications not being able to start because my /var partition wasn’t accessible, networking didn’t start correctly, and the keyboard did not work. For this machine I just blamed it on the HD and requested a replacement from Dell.

Then I went to the datacenter and rebooted a production application server to troubleshoot an amber light and the exact same thing happened. I did not expect that and could not write off that machine as it served several important roles.

I booted up with a live cd and all of the system partitions were fine. Everything could be mounted, fsck came back clean, I could chroot into the SuSE system and stuff worked, I checked over my /boot partition, GRUB configuration and inittab file, I had no idea why it would fail so utterly at boot time.

Our basic (non-Database) server is setup like this:

/boot - primary Linux ext3
swap - primary Linux swap
/ - primary LVM
/dev/system/root as '/' on the LVM partition as ext3
/dev/system/var as '/var' on the LVM partition as ext3

These machines were updating every week but kernel updates are not applied until reboots so my gut feeling was that perhaps something changed due to the kernel upgrade related to LVM. I spent literally 6 hours troubleshooting down this path and was inclined to believe this was the issue because there is in fact a lot of chatter on google about kernel upgrades screwing with LVM. I even tried creating a non-LVM /var, copying the contents of the LVM /var there and booting. That almost worked but the network did not start and I still could not use the keyboard.

At about hour 5 I pulled up the Novell documentation for the init process of OpenSuSE and started working through it step by step chroot’ed in from the live cd.

What was the issue?

OpenSuSE deleted it’s own /etc/init.d/boot script.

Seems impossible right? I’ve watched it happen 3 times now and still have a lot of machines to reboot that I fully expect to have the same problem. Perhaps a penalty for long uptime? I missed it completely when I was checking over inittab initially - I guess I just assumed the core script that kicks off EVERYTHING would not have been deleted by the official update/upgrade process of a mature Linux distribution. I managed to find it by progressively stepping back the initial run level passed to the kernel by GRUB until I could see far enough up the boot process to see the ‘file not found’ message. I didn’t see anyone else having this issue so hoping if someone else hits it they don’t waste half a day chasing false causes and find this post instead.

So now the question is what distribution should go on our servers (a distribution that neuters itself during an upgrade cannot stay). I am pretty fond of Ubuntu server but Sean at the office has pointed me at Arch and I am really, really digging the way they do things. I hope to make a separate post about that at the company blog in the near future.

Comments

Mouse/Keyboard Decision and Review

We recently pulled the trigger on monitor upgrades for all developers at the office and I was faced with a tough decision to make.

Until this point, I was using just my 17″ (1920 x 1200) laptop and nothing else. I really like the Macbook Pro keyboard and additionally, though I realize I am in a minority on this, I love the condensed format of laptop keyboards. I also love trackpads.

My reason for this is I do not have to move my hands for anything. Once you get used to the layout of a laptop keyboard I actually think you can move faster and you don’t have to move your hands at all to hit any key or any shortcut. Now if you are an accountant or similar or working with numbers all of the time then sure, a number pad probably makes sense, but otherwise it is wasted space. I can bang out numbers at almost full typing speed (~110 wpm) using the bar along the top and I don’t have to move my right hand over to a number pad.

Similarly, I love the trackpad because I don’t have to move at all to reach for a mouse. I’ve gotten to where I can use my thumbs for almost everything trackpad-wise.

So I had this new monitor and I didn’t want to dual screen (I use spaces which doesn’t play very nice with multiple screens). This meant either don’t use the monitor (which wasn’t an option after I gave it is test run) or buy a mouse and keyboard.

I ended up forking over some cash for the following:


Wireless Keyboard


Wireless Mighty Mouse

Yeah they are expensive but even though I rag on Apple stability sometimes I still love their stuff and these have turned out to be an excellent keyboard and mouse. Now my impressions of both.

The Keyboard

This took me a bit to get used to because the keys, unlike the MBP, don’t run flush into one another. There is a strip of aluminum between them and at first I was striking that aluminum a lot when typing at full speed. I like it now that I have adjusted to switching between those keyboards though. I bought this one not for the bluetooth but because the layout is identical in almost every way to the MBP keyboard layout. The keys feel very good and though I wasn’t looking for bluetooth it does work very well. This keyboard just looks cool too - no wires, super tiny, and it feels well made.

The Mighty Mouse

This is probably the best mouse I have ever used. It again looks very cool, all flush and smooth but that isn’t the important part. It gives you right, middle, and left clicking though you wouldn’t know that by just looking at it. You can also program the side buttons to do something when squeezed. The trackball lets you scroll vertically and horizontally with ease (this was a big reason why I got this mouse - I love the trackpad scrolling in all directions on the MBP and would have missed that functionality big time). It again has no wires, the bluetooth works perfectly and at surprisingly long range. I have used it to control while watching movies on the laptop (Netflix’s video player is actually pretty nice). Finally, this mouse is very precise and it also feels very well made. This thing is awesome. The 2 devices are very small so I can keep the mouse really close to the keyboard and don’t have to reach too much for it.

So the new mouse and keyboard work pretty well but I still believe my ideal setup would be essentially a MBP with no screen and the base of it wired up to send keyboard/mouse signals to another machine. Or if I could detach the screen temporarily when using the larger monitor. If anyone knows if either of these is possible please let me know :)

Comments

Stability Not Leopard’s Strength

OSX Leopard has a lot of stability problems, but I suspect many people are like me in that they aren’t enough to drive me to another platform for development. Apple has got me as a user for the foreseeable future despite the aggravations. So I wanted to share two tricks that have helped me keep my machine going without reboots. I like to tote my mbp back and forth just sleeping it. It works most of the time. Sometimes it does not and these are the three problems I have seen. Having the laptop hooked up to a monitor/mouse/keyboard and disconnecting them at the end of the day seems to make these issues much more frequent.

Machine does not come out of sleep.

This has only happened to me a couple times but I know it happens more often for others. The only solution that I know of is to press and hold the power button and shut it down. Anyone found a solution for this? It seems to be a pretty common problem on Leopard from reading the Apple forums.

Desktop icons become invisible or stop working.

This happens all the time to me. The Desktop seems dead and won’t let you click it or see any icons but if you open up Finder and browse to the Desktop everything shows up normally. To “fix” this shut down finder by doing sudo killall Finder from the command line. It will restart itself after a few seconds and things will be back to normal. Might as well be restarting explorer with the Windows Task Manager :)

Spaces/Dock/Expose/Active Corners malfunctions

These things can get pretty messed up. Active corners will stop working, or hotkeys will stop working, or animations/transitions will go away (making the usability pretty awkward), or a combination of these things. To fix this do sudo killall Dock from the command line. Once again a lot like restarting core stuff in Windows. This also seems to fix a problem I have where clicking links within other applications like Apple Mail stops automatically opening them in Firefox.

Snow Leopard is supposed to bring loads of stability and footprint improvements so perhaps this will fix some of the problem. I’ll show Apple how much I get aggravated by Leopard stability by, I guess, spending money on the next version of their operating system…

Comments (2)

Quicksilver for OSX is pretty cool

I first started using OSX right as Leopard was coming out so I’ve only known Spotlight as a great utility. It was very fast and did a great job of launching documents and applications. With a little more digging (like using command-enter on a selection to open its location in Finder) it became even more useful.

Unfortunately over the last several months Spotlight has blown away its index for absolutely no reason when I had to reboot my computer. Twice it was a reboot related to an update and once it was just a plain vanilla restart. In either case, there is absolutely no excuse for the index needing to be blown away. I depended on Spotlight pretty heavily and the 2 hours or so that it took to rebuild the index was excruciating. After the third time this happened I gave up on Spotlight and installed this Quicksilver thing people talk about. I’ve heard that the Leopard Spotlight largely lessens Quicksilver’s advantages but I have still found it to be pretty powerful and it hasn’t blown away its index yet. I’ve additionally started leaning heavily on some of its many capabilities that Spotlight does not possess.

Why Care About Quicksilver?

  • You would like a Spotlightish application that does more.
  • You hate having to use the mouse if you can help it.
  • Spotlight appears to be forgetting to persist its index to disk or losing its index for some other weird reason.

Installation

First download the latest version. At the time of this post it is available here. Then I recommend following the quick tutorial here. There are some minor differences in the tutorial from the linked version of Quicksilver but it is largely still relevant. During the installation I had to select plugins one at a time else the installer froze. I also had to refresh the plugin screen several times for the bulk of the many plugins available to show up.

Next you will want to neuter Spotlight so it isn’t churning on your machine in addition to Quicksilver. Go into System Preferences -> Spotlight, then uncheck everything under Search Results and also uncheck both shortcuts.

I recommend setting Quicksilver’s shortcut to command-space now that Spotlight is effectively disabled and doesn’t need that combo.

In the Quicksilver settings under Catalog I couldn’t figure out how to increase the depth of the User catalogs that were already setup and Quicksilver was only indexing the first directory of my Documents folder. To get around this I unchecked the Documents folder that was already setup under User and added a new one to Custom with infinite depth. I did the same for my home directory Applications folder and was all set after that.

The way Quicksilver works is you launch it and start typing something. Pressing down or right will trigger a context menu of possible matches or files that you can navigate through. Once you are happy with the thing you have selected you can either hit enter to execute the default action listed or press tab and down to navigate through a list of actions. When searching through the list of items or actions you can type to jump to another option that you know is in the list. In most cases Quicksilver just seems to do the right thing so often the action doesn’t need to be selected. If you get lost in your selections just press escape and start typing again.

Usage

Though I have no concrete numbers to back it up, Quicksilver is every bit as fast during usage and seems to build and maintain its index more quickly as well. It also can do a whole ton more than application and document launching. I’ve barely scratched the surface of what it can do as my usage is still solely within the available plugins and I am finding it more and more irreplaceable as I go.

I’ve only been using it for about a week and find all of the following extremely useful (most of this was recommended by the tutorial linked above):

  • The standard launch behavior. Command-space and start typing the application or document, press enter to launch/open.
  • The clipboard plugin. Command-space, command-L, press 0 - 9 to paste any of the last 10 things I have copied into my current cursor position. My preferences for this plugin are 10 items (so I can always paste with 1 keystroke) and hide after pasting. This function is incredibly helpful.
  • Emailing. Command-space, start typing the name of a contact in my Address Book, right-arrow, enter on an email. Opens an Apple Mail compose window with that person in the TO line.
  • Definitions. Command-space, period (this enters a free-form text mode), type a word, tab, type define, enter.
  • Calculations. Command-space, period, type math to crank, tab, type calc, enter.
  • File navigation. This is a HUGE feature and in many cases for me has eliminated the need to use the finder. Just do Command-space and then press and hold for a second either ~ (for your home directory) or / (for root) then press down and use the arrow keys to navigate through your computer very quickly. At any time while navigating you can type the first few characters of a folder or file you know is in your current directory and it will jump there.
  • Opening links in FireFox. Command-space, period, type URL, enter.
  • iTunes. Command-space, type Browse Artists, Browse Albums, etc then press right and start navigating through your music with only the keyboard like the file navigation. Press enter on an album, artist, genre, or song to fire it up in iTunes.

Those are just the things I have found myself using multiple times each day. Though some actions require what seems like a lot of keystrokes for me if it saves reaching for and using the mouse it is far faster. Quicksilver can do an enormous amount more than that and I am looking forward to using it more and more to make myself more efficient.

Comments

Zimbra Migration Postmortem

I posted a short while back about excitement surrounding a migration from Exchange 2003 to Zimbra for our company. The migration has had its ups and downs and now that it has happened and I have had a couple weeks to dig in as both a user and administrator I would like to share our experience.

The general takeaways are that Zimbra isn’t perfect. It does some things worse than Exchange and some things better but the balance, in my opinion, slants heavily in Zimbra’s favor. I’ll break it up into migration and then administration/usage.

The Migration

The migration was a bruiser. It involved a couple nights of failed attempts and then a brutal 6pm - 4am effort to get everything finished well enough to go to sleep. I had a sysadmin helping me that knew his stuff so the details of how to complete it aren’t here (he handled most of the work), just the headaches I saw. The issues included:

  • The bulk migration tool was not able to migrate calendars.
  • The individual .pst importing tool also was not able to migrate the calendars. It would just fail like crazy and then give up because the error count was too high. For users with 2k+ appointments the migration would fail after only a few dozen events. I eventually got these calendars over by doing .pst exports/imports with Outlook itself rather than trying to use server-side migration tools.
  • We had to run the bulk migration over 2 nights because it took a long time. This isn’t a huge surprise because we had 100’s of 1000’s of emails, events, and contacts to migrate but the issue is that the second run re-imported everything imported in the first batch despite settings to the contrary. This essentially created duplicates of all emails and contacts.

To remove the duplicates of emails I used a perl script found at this page (this script actually worked fantastic). For contacts I used the Zimbra CLI to bulk clear the applicable address books and used client apps to re-import cleanly.

Administration/Usage

Zimbra started to shine after the migration ordeal. We immediately had all of our OSX users sync’ing their iCal, Apple Mail, and Address Book apps with the server, I had most of the Outlook users on the Zimbra Outlook connector without much effort, and most things worked well. There were a few issues I encountered.

  • The Outlook connector worked flawlessly in XP Pro but was very difficult to install in Vista. You need to follow the tip here and then just keep trying until it works. If it doesn’t work remove the program and try again. I really hate Vista and the fact that it makes things so hard.
  • The activesync with Windows Mobile is pretty flaky. It fails often for no apparent reason. I settled on using IMAP for email and just sync’ing my contacts and calendar and this seems to work consistently. It was as if it was stumbling over the greater volume of items to sync when the email was part of it.
  • I’m not real happy with the calendar sharing. Without admin intervention a user must share their calendar with each individual user and each of those individuals must login to the web interface to accept the share and see it. These notifications cannot be accepted in Mail/Outlook/Entourage or whatever else. Once these calendars are accepted though you can use almost any app you want as your calendar and that is nice.
  • There are connector apps for almost everything, but many of them are not updated to the latest versions of their target apps and none of them are completely polished and perfect. The Outlook and OSX ones seem to be the best but those also are not without issues.

In general though Zimbra works pretty well. I have calendar and contacts sync’d with my laptop using the OSX sync services and also sync’d to my Windows Mobile phone using activesync - a setup that never would have been possible with Exchange (without Entourage, but Entourage sucks in my opinion).

There are shortcomings but as I have worked through various user issues I have discovered what I believe is Zimbra’s biggest strength - its openness and open source underpinnings. It is a huge, powerful piece of code and between the CLI and the REST API you can do almost anything as an admin. Now that I am getting the hang of it I have created a set of quick scripts to interact with the CLI for doing things like auto-mounting calendars shared with distribution groups (getting around the email acceptance bummer mentioned above). The REST API is great and documented a bit here. It is completely trivial to export people’s contacts or calendars and to constrain what is exported using different parameters using the REST API.

Another big advantage in Zimbra’s favor is the community is quite strong and helpful. They have a wiki, forums, and bugzilla all very active and open.

So this is a bit of a ramble, but overall I am exceptionally happy that we made this switch. Zimbra is not perfect but it is powerful and utterly open making it possible to find workarounds for almost anything and it helps that it runs on Linux as well.

Comments

Startup Riot

Just got back from Startup Riot. I found it to be a lot of fun and I think it turned out really well. I met a lot of new people, reconnected with people I knew or had met during my Georgia Tech days, found out about several startups I had not previously heard of, got some resumes, and in general made a number of great new connections.

I personally wasn’t thrilled with my pitch but I suppose my pitching skills can be expected to have degraded after a year or so of heads down cranking instead of pitching. I stumbled twice due to tweaking the script and order of things right up until my slot and I somehow managed to run long despite my tendency to speak quickly in front of crowds and had to cut the last slide, the most important one, short.

In any case it was definitely worth attending. I thought the atmosphere was fantastic, the venue was ideal, and everyone was just there to talk, share, and connect. I didn’t get pitched by anyone but startups (no vendors, service providers, recruiters, or similar) which really was great and I think it changed the whole feel of the event. No dealing with high school girls peddling hosting plans they know nothing about as I have endured elsewhere.

Major props to Sanjay Parekh for putting it all together. The after party turned out wonderful as well. The rooftop deck (and office in general) of Nelson Mullins was pretty sick. Though I would have preferred to have a stout or porter to choose from there is absolutely nothing real to complain about.

Hopefully by the time the next one rolls around we’ll be able to assist as a sponsor.

Comments (1)

Managing RSS

We were talking about RSS and the various readers and problems with them at work so I thought I would share my method for managing.

I am the kind of person that hates having unread messages pile up in the RSS reader. News sites and very active blogs (like TechCrunch) post a lot and this volume combined with the fact that an RSS reader is a separate program or webpage you must stop everything to go and look at meant unread messages piled up. I would eventually give up and mark everything as read once the pile became too large. I also hate having to navigate to separate pages to get information and news. Keeping updated is distracting enough even with everything centralized in a reader.

Now I use Google Reader as the RSS reader. It still has the problem of being a separate webpage that must be kept open but I never actually look at my Google Reader account except to add new feeds. I am subscribed to 70ish blogs but I only subscribe to ones that post infrequently (no more than once a day on average, many are weekly). These are typically personal blogs but I have a few multi-author and company ones that are low volume in there as well covering everything from load balancers to what my friends are up to. If a blog doesn’t show all post content in its RSS feed I will not subscribe to it in Google Reader. I was pretty frustrated when the Freakonomics Blog moved to nytimes and stopped publishing full content in the feed.

Then I have an iGoogle homepage setup. This is a dashboard that you can see in place of the Google minimalistic standard. On this page I embed a Google Reader widget in the prime top left spot which allows me to catch the entries from all those blog subscriptions in Google Reader. Then for any high volume blogs or sites I want to keep up with but don’t care about reading every post I drop a widget specific to that site on the dashboard. This includes things like TechCrunch, Reuters, and PostgreSQL Planet. I also will put incomplete feed blogs like Freakonomics mentioned above here in the lower areas of the page. My iGoogle homepage looks like this at the moment:


iGoogle Dashboard

You can have multiple tabs too, but I only create those temporarily for things. One example is while purchasing a new house several months back I had a tab full of mortgage rate trends, interest rate and market stories, etc so with one click I got all that information I wanted. I like to have all of the regular stuff on one page so I can scan it easily when I hit Google.

If a blog I am subscribed to with Google Reader is getting too chatty I will decide if it is worth keeping up with that volume. If it is it goes in the dashboard as its own widget (since I don’t have to keep up with them there, I just catch the posts that look interesting as they cycle through) and if not I just remove it. Now every time I go to Google (dozens of times a day probably to look things up) I get a peek at my RSS reader and all the headlines from other sources in a few seconds. I can read almost everything right there on iGoogle and it is easy to click through to the source site or source article for a closer look. Not all the widgets fit in the top of the page where I see them every time I visit Google but i’ll scroll down a few times a day to catch those.

I’ve found this to be very effective for me.

Comments