As an otherwise happy Evolution user, I was envious to Thunderbird users because of some of the plugins they have. One of the more useful ones is the Remove Duplicate Messages extension. A sane email client doesn’t create duplicates of course, but when you move mailboxes around, switch from an IMAP server to another, or restore mail from your backups after a disaster, it is easy to accidentally create hundreds of duplicates. (My recent return to Gmail since they started offering IMAP comes to mind!)

Today I was browsing the Evolution FAQ just to see what it’s like and whether there are any cool Evo tricks I don’t know about. There are, and I also found out about the existence of a remove-duplicates-plugin!

Evolution remove-duplicates-plugin

The plugin builds nicely on Ubuntu Gutsy, and after restarting Evolution you can go and enable the plugin. Then simply select all messages in a folder and find a new “Remove duplicates” entry in the context menu.

I have been using p3nfs to mount my Nokia 9300 and later the E70, and it has worked pretty well. However, all this time the fuse and bluez hackers and Nokia’s open source team have been busy behind my back and provide a couple of alternative solutions.

The easier of these is using fuse and obexfs. I initially found this tip on Google Groups, and later David’s more thorough HOWTO. Here’s the drill:

  • Find out your phone’s Bluetooth MAC address if you don’t know it already:
    hcitool scan
  • Find out the OBEX FTP channel it uses
    sdptool search FTP
  • Load the fuse kernel module:
    sudo modprobe fuse
  • Make a suitable mount point for your phone:
    mkdir ~/Phone
  • Mount
    obexfs -bXX:XX:XX:XX:XX:XX -BYY ~/Phone
    (where XX:XX:XX:XX:XX:XX is your phone’s MAC and YY is the OBEX channel)
  • Unmount when you’re done with your file transfers:
    fusermount -u ~/Phone

That’s it!

Mounting via Bluetooth and Browsing via Web
Image: Browsing my phone via Bluetooth,
WebDAV and a Web browser

The other method is more exciting and far more geeky. It doesn’t actually involve mounting your phone’s filesystem at all, but making its contents available by running a web server on it. I’ve known about Nokia’s mobile Web server for some time already, but was inspired to try it out recently by Mikko’s comment on a blog entry of mine involving phone/linux synchronizing.

You can selectively make all your phone’s information available on the Web for yourself, for a group of friends, or globally. Register on mymobilesite.net, download the Mobile Server software, and away you go. It works very well, but eats far too much RAM to be running permanently at this stage (it’s advertised as beta). For temporary access it’s a viable solution though, and here’s the strong point: no setup is needed on the receiving side, all you need is a computer and a Web browser! I will certainly keep an eye on the server’s development and play with it more in the weeks and months to come.

Linux users with smartphones and PDAs are familiar with the narrow definition of a “supported PC” most mobile device manufacturers have: a Windows PC, and perhaps a Mac. I have tackled this problem from many angles in the past, from the struggle to achieve simple file transfers between Nokia phones and Linux boxen, to the quest for calendar and address book sync, to accessing email.

There are two main routes to solve the sync problem: the Web2.0 Way and the Old School Way. Both have one thing in common: if you’re a Linux user, you should keep your data online. Forget about plugging your Nokia smartphone via the USB cable and pressing “Sync”. While software such as OpenSync and Gnokii exist, I’ve never had complete success with them. Also, when your data lives on a centralized server maintained by professional Other People, you get backups as a bonus!

There are three main things that I need to be able to access at all times: email, calendar, and todo list. I’ll describe my sync methods below.

The Web2.0 Way

The hip and the cool among us enjoy Gmail and other online apps and services, and I do like them as well. For example, Gmail’s user interface changed the way I looked at webmail forever, and in some ways it’s superior to any desktop email client. Who has better search than Google, after all? When you have a mail archive of hundreds of megabytes, it’s safe to say that the network is no longer the slowest part of your system when you search for that message from Charlotte she wrote in 2004, saying she doesn’t love you anymore. We’re generating increasingly large amounts of information, and as Paul Boutin noted a while back, you would never allow a system in your house that would compete with Google’s search.

Sync-wise, the Web2.0 Way has one obvious advantage over the Old School Way: there simply isn’t very much to synchronize! Gmail has an awesome interface for your desktop browser, as well as for the puny WAP browser on your mobile phone, so that’s a no-brainer. Even better, Google’s Java mobile client application is top notch.

Google Calendar is a very nice web app as is, and it has a more-or-less adequate mobile version as well. Google doesn’t give you a todo list of any kind though, so I recommend Remember The Milk. RTM has all the features you can hope for and then some, and comes with a very nice mobile version for your WAP browser.

On the desktop, you can integrate all these apps into your GNOME environment with read-only access. GCal and RTM provide standard iCal interfaces you can subscribe to with Evolution. This allows you to view your appointments and tasks right from GNOME’s Clock applet. You can also make a smart bookmark for Epiphany to search Gmail, and have it accessible from the deskbar applet if you like: 1) Go to your Gmail inbox. 2) Switch to “basic HTML” mode. 3) Search Gmail for a recognizable string like FOOBAR. 4) Bookmark the results page. 5) Edit the bookmark, replacing FOOBAR in the URL with %s and give it a descriptive name such as “Gmail search”. You will now be able to search your Gmail archives from the Epiphany location bar and deskbar-applet. (Firefox version is left as an exercise to FF users.)

Old School Way

In a nice paradox, the good old fashioned computing lifestyle demands much more from your tools than the “more advanced” Web2.0. However, if you have such tools, they are usually more comfortable and flexible to use than web apps. They will also survive network outages, which naturally is a tremendous benefit. My gear is Evolution on the desktop and the native Messaging and Calendar applications on my Nokia E70. The phone has to support the SyncML synchronization standard (sometimes called OMA these days) and IMAP for mail.

On the server side, we need an IMAP account, which rules out every free email provider I know of, including Gmail. We also need a SyncML server. ScheduleWorld offers this one for free, so we’re in luck. Evolution does not speak SyncML, but we can use a simple command-line tool called SyncEvolution as glue.

The benefits of IMAP are obvious: multiple clients can connect, even at the same time, and all mail is accessible to all of them. One can argue we can achieve the same with Gmail, but synchronizing local folders is far from trivial using POP.1 Also, since mobile phones usually don’t have lots of storage (mine can handle 2GB at best,) it is nice to work with only the mail headers and download and delete message bodies as needed.

SyncEvolution doesn’t come with Ubuntu, and I haven’t seen any suitable Debian packages floating around the Internet. Not to worry, the source builds nicely on Ubuntu, and you’ll be up and running soon enough. There is a nice tutorial on the Ubuntu Forums as well. I’ve setup a bash alias syncevo=’syncevolution scheduleworld’ and run that whenever needed. Works like a charm.

Which Path should i take, Master?

Whichever you like more! I’ve been using and loving both, and the best thing is they don’t rule each other out. ScheduleWorld not only syncs your phone and Evolution but Google Calendar as well, and recently introduced experimental support for syncing Gmail contacts. It also has quite a usable web interface too. Mail can be duplicated between your IMAP server and Gmail via simple forwarding.

Ultimately, the more advanced your mobile phone, the more you will like old-fashioned “native apps and sync” approach, while the Web2.0 applications’ mobile versions will work in your old phone’s WAP browser, and even have SMS interfaces.

1. But see the “recent hack”, which is useful for other things as well: I use it to backup my Gmail with fetchmail.

IMified is your best buddy

Tagged with , , | Comments Off

I’ve been looking for a good way to “jabberify” some of my online tools. Since any Web 2.0 application worth the name has an open API, I figured it must be possible to talk XMPP to them. I wanted to get to my calendar info, online bookmarks, TODO notes and perhaps even to Gmail via just a standard Jabber client and was looking for a bot that would do it for me – if something is hackable, someone must have hacked it!

IMified: Add task to RTM

The IMified buddy adding an important task to my RTM list

Well, turns out that now someone has! I found about IMified, an instant message buddy that will connect you to Google Calendar, Remember the Milk, Blogger and a number of other services, plus offers a simple notes list, todos, and reminders on its own too. I’ve played with it a little, and it works rather well after the initial unstability (the service was launched just four days ago.) You can add the buddy to most of the popular IM services but we Ubuntu users of course only use Jabber since we like our freedom :)

The interface is nice, and works great on my mobile phone too since IMified doesn’t hit my screen with too much verbosity. Yet it always providies clear instructions, I haven’t been lost once. Google Calendar has some timezone problems, and the Remember the Milk functionality could be more advanced (and no, you don’t get mail notifications), but IMified certainly has my support – I won’t be studying XMPP on my own any time soon :)

Imified: Complete RTM task

Done!

Project ToPaZ is the collection of blue-sky ideas and more serious plans that people have thought up for the as-of-now mythical Three Point Zero (ToPaZ) release of GNOME. I personally don’t think that GNOME 3.0 will be a huge change in the nature of the desktop interface; instead, ToPaZ ideas are penetrating the current desktop, and 3.0 will simply mark incompatibility with 2.x, caused by migration to GTK+ 3.0 one of these days.

The best part of ToPaZ, however, is the very fact that it doesn’t exist. So, we are all allowed to dream up our own vision of what it would be like. In my own opinion, ToPaZ means first and foremost a non-interface that is as invisible as possible, leaving only the user and her data into the desktop computing equation. I have been experimenting with existing GNOME technology to achieve a task-oriented environment where I can ignore the interface as much possible.

So here goes. Presenting the topyli Non-Interface, where people, documents and events are first class objects. Ideally, you should never start an application on the topyli desktop, but simply work on tasks, contact people, and find information.

Here’s what you should see when you login to the topyli desktop in the morning:

Clean desktop

In other words, not very much. A transparent panel at the top of the screen, with a few objects. It is important to place the panel to the top instead of the bottom of the screen. We still won’t be able to get rid of windows and applications, and those will have their controls at the top. Therefore, it makes no sense to make your mouse travel all the way to the bottom of the screen to work with panel objects.

According to Fitt’s Law, the corners of the screen are the most important spots of the whole desktop, because they are the easiest to hit with your mouse. The current GNOME default layout takes this into account and tries to use the four corners as efficiently as possible, and Ubuntu does even better, moving the trashcan from a desktop icon (where it would be covered by windows most of the time anyway) to an applet in one of Fitt’s corners.

The topyli desktop only has two widgets for interacting with the system, so I only use two corners, saving valuable screen space. At the left Fitt’s corner lives the Deskbar Applet, my primary “interface”. This is where you enter commands for the machine to act on. Next to it is Tomboy, a brilliant, Wiki-like personal note taking application. At the right corner sits the window selector applet, which lists all your open windows, including minimized ones. Next to it is the notification area, where applications will notify you of events that need your attention. In my case, it permanently houses the XChat systray and Gmail notification icons, which tell me about new IRC and email messages.

Notably, the window list (or “taskbar” to Windows users) is gone, as well as the workspace switching applet. I can switch windows with the window selector on the right or by typing a window’s title (say, a document title in a word processor’s titlebar) into the deskbar applet. Pressing Ctrl+Alt+UpArrow brings up the workspace selector to the middle of the screen. The calendar applet in the middle is big enough to hit quite reliably even if it’s not in the corner.

Applets

Naturally, the action of focusing the deskbar applet is bound to a key, so you don’t actually have to use the mouse to reach your primary interactive device. I recommend the Menu key between the right-hand side AltGr and Ctrl button, or the Windows logo button on the left if you have those.

One thing I definitely don’t want is persistent icons on the desktop, where they would be inaccessibly buried under windows most of the time. The deskbar is smart enough to find the folders in the root of my home directory, because I keep a rather flat hierarchy, like so:

Spatial Nautilus

Of course, I use the Nautilus file manager in spatial mode by default, so that all my folders open at the same place and size where I last left them. Sometimes an old-fashioned file browser is still in order, but that’s no problem since we can order one from the deskbar:

Nautilus Browser

Of course, I almost never want to browse my files. I want people, documents, and events, right? Well, the previous screenshot should show some promise of that, with the deskbar in all its glory. It reads what i’m typing at real time, and will happily

  • search all my files for whatever I type in. Not just filenames (who remembers those anyway?) but their entire contents, which are constantly indexed by the Beagle daemon,
  • browse all the installed applications (and their descriptions) for matching ones and offer to start them,
  • go online to search the mail in my Gmail account and search for matches (thanks Stuart’s Gmail plugin),
  • find names and addresses in my address book,
  • see if any events in my calendar match what i’m typing,
  • see if any open windows have titles similar to the typed string,
  • offer to find the definition of my search string in the dictionary,
  • see if anything in my Epiphany web browser bookmarks, or browsing history rings a bell. Epiphany works much better than Firefox here!
  • if i enter a calculation, perform it (with Spooky’s calculator plugin)
  • do drastic system stuff such as logout, reboot or shutdown the machine
  • and of course offer to search google, and my vast collection of online bookmarks on Diigo, by tag or full text search

Keeping an address book, mailbox and calendar locally on my machine would be rather silly. The Deskbar can search my Gmail account, and Gmail is accessible from any machine or handheld device. The Evolution Data Server can fetch information from online sources, so I keep my calendar and address book on Scheduleworld’s servers, and subscribe e-d-s to their iCal and LDAP services. Scheduleworld supports SyncML, which means my Nokia E70 phone always has the same information as my desktop:

Calendars

And while we’re at it, why not integrate everything with the Google personalized home page itself as well since Scheduleworld supports it :)

Google IG

All in all, while not ToPaZ, I find my topyli desktop experment rather successful. Using no non-existing future technology (which is very difficult to come by anyway), I think I’ve greatly simplified the typical workflow, compared to anything I’ve used before:

  1. Press the Menu button, tell the Deskbar what you’re thinking about
  2. Do your stuff

Any suggestions for improving the system are welcome of course!

This is how I made my Nokia 9300’s file system available to my Ubuntu Dapper box. I can now copy/move files around, as well as edit files on the phone just like I could earlier with the 9210.

Browsing the 9300 in Nautilus
Browsing the phone’s filesystem in Nautilus

You need a working Bluetooth setup. See my earlier Bluetooth related HOWTO on how to find out your phone’s Bluetooth address with the hcitool and how to setup a PIN so you can pair the devices in a friendly fashion. You need to have portmap installed (in order to use any kind of NFS shares). Then you need the key ingredient, p3nfs. Download the ARCH Linux binary package and the corresponding nfsapp SIS installer for the 9300/9500.

1. Install nfsapp on the phone (send the file over via Bluetooth, or browse to the p3nfs homepage with the phone’s browser and download it)
2. Convert the ARCH linux binary package of p3nfs into a debian package and install it: sudo alien -i p3nfs-x.xx.pkg.tar.gz
3. Set the suid bit on /usr/bin/p3nfsd so that you don’t have to be root to access the phone’s filesystem: sudo chmod+s /usr/bin/p3nfsd
4. Bind an rfcomm device to your phone. The nfsapp uses the Bluetooth channel 13: sudo rfcomm bind /dev/rfcomm0 XX:XX:XX:XX:XX:XX 13 (XX:XX:XX:XX:XX:XX being your phone’s address)
5. Start nfsapp on the phone. Check that it’s using Bluetooth/13 to communicate. If not, press ‘p’ to change it
6. Make a convenient mount point in your home directory, such as ‘Phone’
7. Start p3nfsd: p3nfsd -series80 -tty /dev/rfcomm0 -dir /home/<username>/Phone
8. Browse to the Phone directory with a file manager or in the terminal
9. when you’re done, exit any application, file browser or terminal accessing the ‘Phone’ directory and unmount the phone: ls /home/<username>/Phone/exit — wait for output confirming that p3nfsd has exited cleanly

You would probably prefer not to type all those commands by hand every day, so make a few nice aliases in your ~/.bashrc:
alias bindcomm=’sudo rfcomm bind /dev/rfcomm0 XX:XX:XX:XX:XX:XX 13′
alias mountphone=’p3nfsd -series80 -tty /dev/rfcomm0 -dir /home/username/Phone’
alias umountphone=’ls /home/username/Phone/exit’

NOTE: Do not mess with files on the E: and Z: “drives” on the phone. They belong the running system’s internal memory and touching that stuff may crash the phone and perhaps make it unbootable.

NOTE: This HOWTO is just a quick list of steps to get this working. It is not a substitute for actually reading the p3nfs README file. The p3nfs documentation also deals with situations when things are not working. I won’t, so don’t call me for support :)

Technorati Tags: , , ,

(Update: Instructions for connecting via the DKU2 cable now at the end of the post.)
This is how I made the GPRS Internet connection working from my Ubuntu Dapper laptop via a Nokia 9300 and Bluetooth. I found this info on an Ubuntu forums thread, kudos go to emperon:

  1. Have a working bluetooth setup.
  2. hcitool scan gives you your phone’s BD address. Make a note of this.
  3. sdptool search DUN will show you the appropriate channel to use. Make a note of this.
  4. Check that you have a 4-number code in /etc/bluetooth/pin unless your phone and the machine are very friendly already. Your phone may ask for this number later.
  5. Type rfcomm bind /dev/rfcomm0 X:X:X:X:X:X YY (where X:X:X:X:X:X is the BD address and YY is the channel number).
  6. Type rfcomm and check that the channel is either “clear” or “closed”.
  7. Create /etc/ppp/peers/gprs with the following contents:
    /dev/rfcomm0
    connect ‘/usr/sbin/chat -v -f /etc/ppp/peers/gprs.chat’
    noauth
    defaultroute
    usepeerdns
    lcp-echo-interval 65535
    debug
  8. Create /etc/ppp/peers/gprs.chat with the following contents:
    TIMEOUT 15
    ECHO ON
    HANGUP ON
    ‘’ AT
    OK ATZ
    OK ATD*99*#
    (NOTE: *99*# above is the number to call. This one works for Sonera in Finland and many other providers, but call your friendly provider helpdesk and make sure you have the correct one.)
  9. Initiate bluetooth pairing between your phone and the computer.
  10. Make the call: sudo pppd call gprs
  11. Surf away!

Here’s instructions for connecting via the DKU2 cable supplied with the 9300. Cables are uncool and sometimes get in the way, but the procedure is simpler. This info comes mostly from gr0kzer0 in another forum thread:

  1. Install wvdial.
  2. Connect the cable.
  3. Run wvdialconf /etc/wvdial.conf
  4. Edit the /etc/wvdial.conf just created. Look at the last four lines, we edit the Phone, Password and Username lines (the username and password are bogus ones. wvdial wants non-empty ones but you can enter Batman’s credentials there if you like), and additionally force the modem into Stupid Mode.
    [Dialer Defaults]
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    Modem Type = USB Modem
    Baud = 460800
    New PPPD = yes
    Modem = /dev/ttyACM0
    ISDN = 0
    Phone = *99#
    Password = foo
    Username = bar
    Stupid Mode = 1

    (NOTE: Again try to find a suitable phone number)
  5. Now you should be able to dial out with wvdial or GNOME PPP.

Technorati Tags: , , , ,

This must be the ultimate tip of the day. I know many people who sweat trying to clean their whiteboards, accidentally stained with permanent marker.  WikiHow has the HOWTO:

  1. Get the board you want the stuff off.
  2. Get a dry erase marker (yes, we will make marks to take marks) and a dry eraser.
  3. Draw over what you want to erase (make sure you draw slowly to fill it in better).
  4. Erase.
  5. Done!

I haven’t tried this yet, but soon will since my whiteboard is in a pretty sorry state. :)
(Via Lifehacker.com)

Next Page →

Switch to our mobile site