Content from 2013-04
It has been a while since I wrote the post on moving emails out of GMail. I have since managed to experiment a little with various web apps available on the internet and arrived at a solution that is not perfect, but meets my needs well. I will describe what I currently use for dealing with emails, contacts and calendars in this article. It's really quite astonishing how many different pieces are needed to provide the GMail experience.
The goal is to be able to read, send and consistently browse emails from Linux PCs using a fast and responsive client with offline browsing support, from a Web browser using something that looks nice and supports threading, and from an Android mobile phone. There is plenty IMAP and SMTP clients out there for all of these platforms, but the following three worked best for me:
- Thunderbird - no fireworks, but it's good enough. The only real issues I have with it are: the message threading being messed up on occasions, ie. it groups messages that don't belong together; and the address book not managing to handle the full vCard information properly, there will be more about this later. I've recently learned about Trojitá and it may actually be exactly what I need - to be evaluated.
- RoundCube - pretty great, but may get sluggish at times, although this is probably due to a fact that I run it using a shared hosting. I extend it with the two following plugins in order to handle multiple accounts with one "instance":
- Kaiten Mail - by far the best email client for Android that I have ever used. I like it for good threading support and intuitive GUI.
Contacts and Calendar in the cloud
Another big piece of GMail's added value is the ability to manage contacts and calendar (the calendar actually is a separate product) and keep them synchronized between devices. It does it in a rather messy way for my taste, but it does it well. I have once found an informative how-to article describing a solution to this using ownCloud as a CardDAV and a CalDAV server, but I did not like the web interface ownCloud provides. There's a couple of alternatives doing the same thing, and the one I like is Baïkal.
I install the flat version and switch it to use basic http authentication. Baïkal (actually SabreDAV, which Baïkal uses internally for DAV) uses the digest authentication by default, which is supposed to be more secure, but I found it glitchy with many clients.
Baïkal is just a CardDAV and CalDAV server and, as such, just manages the users and resources, it doesn't come with any clients, so you'll need to install them separately. I use:
- CalDavZAP - a calendar client. In order to configure it, set the href element of the globalNetworkCheckSettings array to 'https://yourdomain.com/baikal/cal.php/principals/'
- CardDavMATE - an addressbook client. Change the href element of the globalNetworkCheckSettings array to 'https://yourdomain.com/baikal/card.php/principals/'. I also change globalContactStoreFN, this affects how other clients see the contact's Formatted Name - I like to see the first name first.
Note: the two above work reliably only with basic http authentication, so you probably want to use https access to the DAV server.
You can then export all your contacts from GMail to a vCard format and then upload them to Baïkal using another tool of mine.
Calendar and address book clients
Thunderbird will need three extra plug-ins:
- Lightning - for calendar support:
- Go to File->New->Calendar..
- Select On the network
- Select CalDAV and tick the Offline support
- Enter address of the calendar, ie: https://yourdomain.com/baikal/cal.php/calendars/user/calendarid
- SOGo Connector and MoreFunctionsForAddressBook - for decent enough address book functionality:
- Go to Address Book
- Go to File->New->Remote Address Book
- Give a name to the address book
- Enter the URL of the address book, ie: https://yourdomain.com/baikal/card.php/addressbook/user/bookid/
RoundCube needs two plug-ins:
- carddav and carddav_plus:
- Go to Settings
- Go to CardDAV Settings
- Add the address books using the same addresses as in the case of Thunderbird
- Go to Address Book
- Click Synchronize
Android apps needed to integrate the calendar and the address book:
- CardDAV-Sync beta
- CalDAV-Sync beta
- If you use HTC Sense, you may have some issues integrating the contacts, this should help in solving them
- The new Android contact editor is also somewhat retarded, but you can still download a port of the old one.
The setup described above allows for handy integration of all my devices. Although, I find having to log-in to all the web apps separately somewhat annoying. I will need to find some single-sign-on solution to integrate them. Another big thing missing is GTalk. I know it's just jabber, but I find it handy to have the chat history accessible from one place. I will play with this a bit as well.
An interesting article on future of technology, nonsensical science-fiction movies and a perspective of alien invasion.
Twenty years ago if I asked you how many feet were in a mile (and you didn't know) you could go to a library and look it up. Ten years ago, you could go to a computer and google it. Today, you can literally ask your phone.
Read more here.
Tiny Tiny RSS is a web based RSS reader with a corresponding Android app. Quite frankly, I find it way better than Google Reader ever was. There's a fairly verbose installation guide over at Life Hacker. The author does a good job describing how to install tt-rss on a shared hosting (DreamHost), except for one detail. In fact, on DreamHost, it is trivial to set up the thread updater as a cron job. Just go to the web panel and put something like the following in the commandline field of the job:
cd /home/username/domain.com/tt-rss && \ /usr/local/bin/php-5.3 \ /home/username/domain.com/tt-rss/update.php --feeds >/dev/null 2>&1
Go to Settings -> Labels and check the Show in IMAP box netx to the Chats label. Then use one of the gmailmigr scripts to copy the chat logs to your IMAP account.
./imap_copy.py \ --source=imap.gmail.com:993 \ --destination=somewhere.else:993 \ --copy="[Gmail]/Chats.INBOX/gmail-chats"