Michal Čihař - Archives

Phone synchronisation, finally

One of long standing things on my todo list was to make synchronisation work from my cell phone (Sony-Ericsson K750i) to some PIM application on Linux side (as a GNOME user Evolution is the natural choice). I tried it several times but it never actually worked. Today I gave it yet another try and I finally succeeded on first attempt :-).

As a first step I just wanted to make a backup of all things. Gammu can do it quite well and it's the tool I trust for this purpose:

gammu backup /tmp/phonebook.vcf
gammu backup /tmp/calendar.vcs

Now it's time to play with OpenSync. We will use setup guide and SyncML guide as a starting point. As I had in past problems with both sides - both phone and Evolution failed with some random errors, I wanted to go step by step. So I started with setting up phone to files synchronisation:

msynctool --addgroup file2phone
msynctool --addmember file2phone file-sync
msynctool --addmember file2phone syncml-obex-client

Now we need to configure file storage, just tell it where it should store the data:

msynctool --configure file2phone 1

And change path in your editor to something like:

<?xml version="1.0"?>
<config>
  <!-- directory path for file-sync -->
  <path>/home/foo/phone-backup/</path>

  <!-- should care of subdirectories (TRUE or FALSE) -->
  <recursive>FALSE</recursive>
</config>

Now the more tricky part comes, we need to set up phone end:

msynctool --configure file2phone 2

Fortunately we can use example from the SyncML guide and just fill in Bluetooth address (you can get it using hcitool scan) and channel (sdptool browse 00:b0:0b:fa:ce:00):

<?xml version="1.0"?>
<config>
  <bluetooth_address>00:b0:0b:fa:ce:00</bluetooth_address>
  <bluetooth_channel>7</bluetooth_channel>
  <identifier>Sony Ericss</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Agenda</calendar_db>
  <note_db>Notes</note_db>
</config>

And now we should be able to synchronise whole phonebook from phone to selected directory:

msynctool --sync file2phone

Okay, this works, let's try more complicated thing - include Evolution in the chain. The steps are the same, config file for phone is the same, Evolution plugin has sane defaults you usually don't have to touch:

msynctool --addgroup phone2evo
msynctool --addmember phone2evo evo2-sync
msynctool --addmember phone2evo syncml-obex-client
msynctool --configure phone2evo 1
msynctool --configure phone2evo 2

But now comes the tricky thing - Sony-Ericsson phones usually have something broken around notes (or it is broken in OpenSync, I don't care, simply synchronisation fails without this step) and we have to avoid synchronisation of them. This can be done by changing filter file in group we've created above (usually in file ~/.opensync-0.22/group2/filter.conf):

<?xml version="1.0"?>
<filter>
  <note/>
</filter>

And finally we can start the synchronisation and it should work:

msynctool --sync phone2evo

You can also GUI multisync0.90 to do the configuration and start synchronisation, but it is not much different, you also still have to edit XML files.

Wammu 0.28

I just released version 0.28 of Wammu. This release fixes various problems found by users. Full list of changes:

  • Fixed freeze while searching for Bluetooth devices.
  • Fixed guided configuration of Bluetooth devices (no more complains about not existing device).
  • Fixed saving of backups to folder with non ASCII names.
  • Validation is less strict and allows hopefully all number.

This release also comes with binary for Windows with embedded Gammu 1.20.0.

Cool down the server

Moving of server seems to go quite well. There were some outages for users during night because of too big TTL in DNS, but after setting up redirector at old IP during morning, this should not be a problem. Now only few hosted sites were still unable to change their DNS settings, but it's not my problem :-).

On the other hand, it looks that moving server to new server room will have some positive effect on it's health:

Temperature of disks

Server has been moved

This night, long delayed operation has been done and server which gives you this page has been moved to another server room. It should bring a bit better conditions for server and you should not notice this except short outage in this night till all DNS caches on the way will will update their records. This is a theory and lets see what problems will appear tomorrow morning ;-).

Code of the day

Why the hell do I have to hit various obscure pieces of code today? Current winner is part of system-config-printer:

def monitor_session (*args):
    pass

try:
    bus = dbus.SessionBus()
    bus.add_signal_receiver (monitor_session)
except:
    print >> sys.stderr, "%s: failed to connect to session D-Bus" % \
          PROGRAM_NAME
    sys.exit (1)

If you don't know D-Bus or Python: It listens to all signals on session bus and does nothing with them. All this code causes is eating up memory and CPU cycles when there is some higher load on session bus.

PS: Maybe I miss some nice idea behind this code, please enlighten me.

No DebConf this year for me

Okay, I will again miss DebConf. This time it is not because of time, but because of money. The flight to Buenos Aires is far too expensive to go there just for DebConf and I didn't manage to plan some more travelling around South America...

Hopefully it will get better next year, at least DebConf will be much closer :-).

PS: Just after deadline for confirmation and my decision for not going there, I got an email that my sponsorship for travel was approved. Unfortunately too late to change my decision.

Time for change, time for DebConf?

Okay I did thing I considered already for several months - I decided to quit my current job at SYSGO, make one month holidays in summer and find some new job meanwhile. So I'm looking forward to free August, which I will probably spend travelling somewhere :-).

This brought up again question whether to go or not to go to this year DebConf. The only problem with this is distance - flight to Buenos Aires will be something around 2000 USD and it means lot of money for me. I applied for sponsorship for half of the price (well I'm not sure if I can really pay the other half, but I would feel really bad for asking that much money) and let's see how it turns out. On the other side, I'd love to visit Argentina, but that would probably require much more time and money. Let's see how it all turns out, there is still time to decision...

PS: If you have some interesting job offer, just contact me at michal@cihar.com.

My cycle computer got crazy

After today short ride, I just wanted to look at how fast I was (well rather slow as my body is slowly getting used to usual travel distances). There was nothing surprising in most values, but maximal speed did really impress me:

171 km/h on bicycle

I just hope that it is really mistake of the computer and I did not really go that fast at some point ;-).

Most interesting things on my blog

It sometimes funny to review web server stats to see what people are looking for in my blog. I usually expect something like my name and projects I participate on. But there are some surprises:

  1. cihar
  2. gammu
  3. dosbox games
  4. pissing
  5. mpd sonata
  6. wammu
  7. phpmyadmin
  8. project names
  9. sound juicer mp3
  10. phpmyadmin themes

For most of them I'm in first page in Google results, even though I have no idea why are my posts ranked so high even for such generic things as "product names", but I don't care. What surprises me most is "pissing". I guess I know what are people looking for when they enter this word to Google ;-). But according to Google webmaster tools, I'm somewhere near 110th position. Why the hell does somebody look so deep in results? And why does he go to one line blog post? I really don't understand this. Maybe I should focus on this word and bring my post to first page of Google results ;-).

Changing SSH keys on SF.net

Yes Erik, SourceForge did not do anything. But what is even more "funny" is that changing keys over web interface does not change ~/.ssh/authorized_keys. So even if you are aware of this problem and change keys in interface which should do it, it does not work. I just realized this today when I read your post and wanted to check whether this file is really world readable...