Posted by Brian @ 11:23 pm on March 16th 2008

Synchronizing a palm Tungsten T3 to Google Calendar, Swiftdove/Lightning and Kontact under Linux

(updated and somewhat simplified 6/8/2008)
I have finally managed to synchronize my palm Tungsten T3 to Google Calendar and Swiftdove (Thunderbird optimized for 64 bit + the Lightning calendar) as well as Kontact (aka KDE PIM or KOrganizer). I now have full read/write sync with all apps (with a few small quirks). This method should also work with Thunderbird/Lightning and presumably Sunbird but I haven’t tested that.

There are three quirks that I’m aware of.

  • The categories from my palm do not work anymore. Something about the sync process erases the category (but not the event) from the palm. That’s something I can live with.
  • Existing repeating appointments don’t seem to display properly on Google Calendar or Swiftdove, but new repeating entries do. I’ve got about a dozen repeating appointments, so it wasn’t a big deal to delete and re-do them.
  • It takes time – several minutes or more – after a sync for changes to show up on Google after a palm sync. I haven’t fiddled much with GCALDaemon – there is probably a setting that I can change for that, but I’m okay with that for now.
  • Things I tried that didn’t work
    I’ve been trying on and off to synchronize my palm with various PIMs under Linux since 2001 with little success. Backing up through Kpilot or pilot-xfer has always worked fine, but getting real sync has been pretty much impossible until now. It may not be the holy grail, it is one of the last pieces to the perfect desktop puzzle.

    Initially I tried to get OpenSync to work. I failed with the command line tool, with Kitchensync (best name for sync software evar) and with Multisync090. The KDE PIM/Google Calendar sync failed every time, and I never could get my palm to sync. While that project looks quite promising for now isn’t ready for prime time, as they fully acknowledge on their site.

    With a bit of effort, GCALDaemon allowed me to sync between Kontact and Google Calendar, as well as Swiftdove and Google Calendar. And since I was able to sync my Palm with Kpilot (and therefore Kontact) I figured everything would be fine. Alas, that didn’t work – Kontact would display both calendars but would not pass the palm calendar to Google, and vice-versa. I was about to give up when I tried one last trick – I noticed that Kpilot allowed me to specify the ical file to link to, and that GCALDaemon uses a google.ics to sync up with Google Calendar.

    So I told Kpilot to synchronize with the GCALDaemon ics file instead of the Kontact ics and played some tricks. And it worked – with a little coaxing!

    Here’s a guide for getting the tricky parts working under Ubuntu 7.10 (Gutsy) 64 bit. I followed this page of the GCALDaemon guide, then this page through step 5 of the same guide to set up file sync. Now on this page of the Terminally Incoherent guide for Kontact, continue from where it says “Now open Kontact” and once you get to where you specify the filename, use /usr/local/sbin/GCALDaemon/google.ics instead of the location Terminally Incoherent specifies. And since all configuration files should be stored in /etc, I moved /usr/local/sbin/GCALDaemon/conf/gcal-daemon.cfg to /etc and made a symbolic link to the original location. I also set to 5 minutes in the cfg file.

    By the way to get this all working you’ll need Kpilot, pilot-link and Sun’s Java. The default Java that ships with Ubuntu 7.10 will not work with GCALDaemon. You’ll also need GCALDaemon and configure Kontact to sync with GCALDaemon – install this software and then use the tutorials I liked to above.

    sudo apt-get install kpilot pilot-link sun-java6-jre

    Once you have GCALDaemon working with Kontact and Google Calendar, you can begin the next steps. Once you’ve done the following steps ones all you need to do is sync your palm normally.

    1) Make a backup of your entire palm (you may need to replace that /dev/ttyUSB1 with something else):

    pilot-xfer -p /dev/ttyUSB1 -b /home/yourname/somedirectory

    Having a backup is crucial, so don’t skip this. You were warned.

    2) Open Kpilot, go to Settings -> Configure Kpilot and tell it to sync to the same google.ics that GCALDaemon is using. Again, mine is at /usr/local/sbin/GCALDaemon/google.ics. Under the Conflicts tab choose Handheld overrides.

    Kpilot configuration screenshot

    3) Synchronize your palm and wait until GCALDaemon transfers all of your appointments to Google Calendar. I had thousands of appointments so I gave it an hour.

    4) All of the calendar entries in your palm may have vanished. Don’t panic. Sync again – all of the entries should be there. If not, restore the calendar to the palm using pilot-xfer. You don’t have to start over, just restore the calendar. Two way sync should still work with no duplicates.

    That’s it.

    Posted by Brian @ 10:58 am on March 15th 2008

    Installing Swiftfox (64 bit Thunderbird + Lightning) under Ubuntu 7.10 Gutsy

    To install Swiftdove, the 64 bit optimized version of Thunderbird that includes Lightning, into Ubuntu 7.10 (Gutsy), you need to follow these two steps:

    A) Add the swiftweasel repository to apt by adding this line to /etc/apt/sources.list:

    deb gutsy multiverse

    B) Update the cache and install Swiftdove:

    apt-get update | apt-get install swiftdove-athlon64

    Swiftdove is noticably faster, and the inclusion of Lightning is a nice bonus.

    Posted by Brian @ 4:01 pm on February 3rd 2008

    How to make a USB thumb drive Linux bootable

    I’m in the process of putting Debian on a decTOP, and the first step is putting a bootable USB thumb drive together. I’ve been wanting to do this for a long time, so the decTOP gives me a good excuse.

  • 1. Grab a USB drive. I used a 1gb drive I had sitting around.
  • 2. Format the drive:
    mkfs -t vfat /dev/sdc1
    Your drive will probably have a different letter, maybe sda or sdb. MAKE SURE YOU ARE FORMATTING THE RIGHT DRIVE.
  • 3. Get a copy of Damn Small Linux – I used this version.
  • 4. Extract the zip file containing Damn Small Linux to the USB drive.
  • 5. Make the USB bootable:
    syslinux -f /dev/sdc1
  • You’re done.

    I’ll test mine at a few public access terminals. I’m curious how easy it would be to boot from the USB drive instead of being forced to use the inevitably crippled and/or virus/spyware/malware-ridden boxes one usually finds.

    Posted by Brian @ 9:11 pm on January 31st 2008

    Annotating PDFs under Ubuntu Linux

    I’ve just discovered Xournal, an application that makes PDF annotation extremely easy. It has an elegant, simple interface and it just works. The user interface is just great. Moving around annotated text is easy, and it is a snap to edit text even after it has been moved (a feature I’ve found lacking in other PDF annotation products).

    Posted by Brian @ 3:35 pm on February 25th 2007

    Why offshore programming is a waste of money

    I’ve now lost count of the number of folks I’ve met who have selected an offshore company to develop software for them and have the project either fail or be substantially flawed. There must be people who have had good results, but I haven’t met them.

    The appeal is seductive – get your software developed for a tenth the hourly price of a local developer. Yet the many people I’ve spoken with who have hired offshore software programmers now regard their investment a total loss. After reviewing the results of several offshore projects, I’m so annoyed that I have to write about it.

    So why does outsourcing fail? I can think of a few reasons.

    It’s tempting to say that the quality of offshore software engineering isn’t up to par, but I don’t think that’s the case. There are plenty of awful programmers in the United States, and I’m sure there are extremely talented engineers in India, Russia, East Europe, China, Indonesia and other outsourcing hot spots around the globe.

    I believe the platform has an impact on the results, since all of the offshore disasters I can remember were done under the Microsoft .NET framework or similar proprietary software. Some offshoring must be done with open source software, so I’ll leave the open vs. closed discussion for another day.

    Some people might say the client is to blame for not being experienced enough in software development. I can’t agree with that, since many developers (including OpenSourcery) successfully complete work with non-technical clients.

    I think the actual reasons are less subject to argument.

    Reason 1: Language barriers
    Having fluency in a language often isn’t enough when sophisticated concepts are being discussed. One needs to be native born to fully grasp the metaphors, cultural references or unusual terms that get used by clients to describe requirements. This is particularly the case with those who have a light technical vocabulary but a great idea and the business acumen to make it work.

    Reason 2: Extreme time zone issues
    I’ve been a part of many, many successful projects for clients 3,000 miles away. I’ve even had good luck with employees working at those distances as well. However, communicating with another party 9+ hours off of your local time zone isn’t feasible. If you’re lucky, there might be a one hour window that is only mildly inconvenient for both parties to schedule a conference. That doesn’t cut it. During all phases of development rapid, easy communication is vital to project success. An exchange that takes two minutes between local parties can take 48 hours to resolve with people on the other side of the globe. Let’s take an example — requirements change on a project, this should be expected. Say the client needs a feature added and another removed to stay on budget. An email is sent to an offshore development team explaining the change. When they wake up hours later, they’re certain to have questions – perhaps the feature impacts other areas of the software, or the full scope isn’t clearly understood. The offshore team replies, but the client is now sleeping. The next day, the client sends a clarification. In the meantime, the offshore group might have stopped work entirely as they await the response from the client. A few of these and suddenly the project is a month overdue.

    At the end of the day I don’t see how these issues can be overcome. No matter how cheap the hourly rate may be, the only metric that matters is the end result. Time and again clients have come to us saying “we just spent X dollars on offshore programming but we’re unhappy with the result. Can you help us?” Yes, we can and do help, but for the original budget we often could have built the project ourselves from scratch. I hate to be the bearer of bad news – to have to tell a client that their money was wasted offshoring. I wish I, or someone like me, could have spoken with them before they made the decision to go offshore, because they would have been far better off leveraging existing open source software with a local team from the outset.

    Posted by Brian @ 2:52 pm on December 3rd 2006

    Motorola ROKR E2 review

    I went looking for a Linux-based phone and the Motorola ROKR E2 was the best phone that I was able to find. You have to buy one on eBay as far as I know. It works fine on Cingular and I’ve heard a rumor it works on T-Mobile as well.

    So I’ve had my ROKR E2 for three weeks now. I really like this phone, more than any other phone I’ve had. I want to love it but some annoyances get in the way.

    The ROKR E2 is the best designed phone I’ve ever used. Not the most attractive, but the best designed. My favorite feature is the 3.5″ headphone jack. I can plug in any headphone as well as easily interface with my car stereo. The phone knows when headphones are plugged in and automatically routes calls and mp3s through them. If you’re listening to an mp3 when a call comes in, the mp3 playback stops, the call comes through the headphones, and when the call is done playback resumes. Nice.

    The phone plays mp3s as well as FM radio. As far as I’m concerned, a phone like this will soon be the iPod killer. The ROKR E2 could be an iPod killer if the mp3 playing and other annoymances were fixed up a bit, which I’ll address later. That said, I love being able to listen to podcasts and books on tape on my phone!

    With an SD card I can store up to 2gb of mp3s. A hack may be in the works to use the new 4gb SD cards. Because the phone uses an industry standard SD card I can swap the same memory card between my phone, palm, digital camera and digital video camera. At last. I’m in heaven on that one.

    Charging the phone is a snap – just plug in a USB cable. Additionally, the phone shows up as a folder on my desktop so I can drag and drop files right on to it without any clunky program trying to “help” me do it.

    The camera is a weak 1.2 megapixels but it does have an LED flash, zoom, and some reasonably good features including a nice videocamera mode. I’d be a lot happier with a 2mp camera, and the pictures tend to blur in moderate light.

    The phone has a dedicated switch for locking the keys. That’s a nice feature, and I use it all the time.
    The screen is large, sharp and beautiful. It’s so nice I’m tempted to copy over some video. The five-way dpad is sturdy and gives good feedback. The phone itself has a solid, substantial feel. It feels good.
    It does suffer from some annoyances as well as some bugs. The interface is a little clunky and sometimes slower than I would like, and the buttons do not do what you would expect. For example, when displaying the recent calls list, I would expect pressing the dpad would dial the number. Instead it brings up a detail page. Pressing the dpad again does nothing.

    Mp3 playing occasionally skips. Fast-forwarding an mp3 past 5 minutes has locked up the phone. The phone seems to forget what is on the SD card from time to time, and that requires a manual refresh of the card. Why this isn’t done automagically when a card is inserted I don’t know. The mp3 interface is odd. It doesn’t seem to recognize directories/folders, but just lumps all the tracks in one long scrolling window. It does sort by artist, and album.

    I bluetoothed over my phonebook from my last phone and since then caller ID has been sporadic. Occasionally it tells me, say, my wife is calling when actually it’s a business call. Not so good. Maybe I corrupted the address book somehow.

    I’d like to be able to customize the phone more than I currently can, especially map functions to keys and modify the shortcut menu. I haven’t installed the daemon enabling me to telnet in to the phone, but I will soon and hope to be able to change a lot more. There is a modding scene that has released a few firmware updates for the phone which I’ll try out, these may correct some of the mp3 issues I’ve had. I can’t find an easy way to find out how much memory I have left on the phone or SD card. Every time I plug in the USB it pops up a box telling me that some apps will be disabled, which has to be manually closed.

    Still, I’m quite happy with the phone. I look forward to more tweaking.

    We swapped my wife’s Motorola RAZR v3i for an LG today because the v3i’s interface was so clunky it drove her crazy. While there I test-drove the Sony-Ericsson Walkman phone to see if I’d made a mistake going with the ROKR. Nope, the Walkman phone is a piece of junk! The crowded buttons and rotten interface frustrated and angered me. The idiotic memory stick didn’t do much to charm me either. It felt cheap and breakable compared to my ROKR.

    Posted by Brian @ 11:47 am on June 4th 2006

    Why do free email providers continue to allow spam?

    I only get the occasional spam thanks to Kris’ help properly configuring my mailserver. I was just reviewing spam I’ve collected over the last two years and adjusting my filters when I noticed a disproportionate amount comes from the well-known free webmail providers.
    Yahoo tops the list with Hotmail and even Gmail weighing in quite a number of spams. The Italian ISP Virgilio also has an extraordinarily large number of spams hitting my mailbox. According to the headers, all that mail is actually originating from these domains – they weren’t spoofed.

    All of the above prohibit the sending of spam and have the resources to halt outgoing UCE rapidly. It wouldn’t be hard to shut down or heavily throttle back an account if it exceeded a certain number of emails per minute until an admin could see if the outgoing stream was legit.

    None of us should be getting a single spam from these guys. What’s the deal?

    Posted by Brian @ 11:56 pm on March 26th 2006

    Kubuntu Dapper flight 5

    I took the plunge this weekend and moved from Kubuntu 5.10 to Kubuntu Dapper Flight 5. My initial impressions are quite positive. Clearly a lot of work has gone into this new release.

    The good:

    As usual, it was a totally smooth installation — I think I only had to answer four questions.

    I have a 17″ monitor on my notebook/desktop replacement with an unusal native resolution (1440×900) which was automatically set up.

    OpenOffice 2.02 is installed by default. I hope this latest version will address the flakiness of Base.

    Kubuntu Adept looks great as a Gnome-synaptic’esqe taskbar applet that notifies you of pending updates as well as doing a great job of installing them easily. Brilliant.

    Bootup seems a bit faster and a bit prettier. Most people won’t have to reboot, but I do frequently – my primary machine is a laptop that I use in many locations.

    Superkaramba is greatly improved and better integrated into KDE. The programs installed on K menu are greatly simplified. Notably, I’ve installed about five apps and every one has shown up on the K menu, even those I installed with dpkg from the command line. This is huge. KDE now has what I consider a consistent, professional look to it.

    The bad (but improved):

    Installing the proprietary Nvidia drivers was easier this time around, but still a pain. A GUI script (using Zenity?) should be provided that gives the user a choice between the open (slow) drivers and the proprietary ones — and automates the process.

    Firefox wasn’t installed by default. That’s a giant mistake. The Konqueror browser is nice, but it’s no Firefox.

    Evolution wasn’t installed by default. Kmail is a nice app, but I don’t use it. My home directory had Evolution data. The installer should have seen that and installed Evo instead.

    Using KDE I was able to set up my network printer in about three minutes, but it was far from automatic. I selected a network printer but I had to input my LAN IP range manually – It should be trivial to grab the current IP block of my network, or at least make a darn good guess. I seriously doubt newbies have their LAN IP range memorized. The app incorrectly complained that I wasn’t scanning IP addresses at 127.0.0.x even though I had selected a network printer. Furthermore, once the printer is found, the software still isn’t able to determine what kind of printer it is automatically. That said, once I chose the right model it worked great. I also had to manually configure the scanner functions from the command line, something that took me hours to figure out when I installed 5.10. I chose a multifunction printer in the configuration app and it should automatically go into setting up my scanner after the printer works.

    Since 5.10, Ubuntu has been able to correctly set up a few of my special laptop keys – mainly volume up/down and mute. I had hoped that Kubuntu would have gotten this right this time around but alas, not yet.A small nitpick – a utility called Skim was installed on my systray. Skim apparently makes it easier to input non-English langauges. Neat, except I don’t need it, and it’s sucking up resources. One of the four install questions is country. I chose American English – that should be a clear broadcast to the installer *not* to install Skim. I said “apparently” because the homepage for Skim doesn’t explain clearly what the application does. That “First rule of Fight Club” type assumption is typical for open source unfortunately. If you don’t already know what Skim is, you can’t figure out what it is. But that’s grist for a future post.

    The ugly:

    So far I’ve only got one serious gripe with Kubuntu Dapper. It’s still a major pain to get multimedia codecs working. Someone wonderful has worked up a script called bumps that pulls codecs from the PLF repositories which helps, but doesn’t solve the problem, because it requires more skills than most desktop users have.

    Every new Ubuntu release has a new set of hoops you have to jump through to play video, and I’m sick of it. I wasted an hour combing ubuntuforums and Google looking for the new magic spell I needed.

    I realize the issues, but until something newbie-friendly is packaged into the installer, this is a showstopper for widespread adoption.

    Posted by Brian @ 11:23 pm on March 12th 2006

    Thank you script kiddies

    The weak, broken little laptop I’ve been using for years to power this site was haxxored recently.
    I want to give thanks to the script kiddie responsible for giving me the impetus to make a fresh start and load up the latest versions of goodness. In your honor I even spent a little extra time hardening the machine in anticipation of future visits from you our your ilk.

    I’m rarely amazed at what a bored 14 year old can do with a little spare time, but I’m constantly amazed at the neverending improvements in open source software.

    Previous Page