Planet IM

July 27, 2010

The longest running XMPP service

I wonder what is the longest running XMPP service without a restart.

I watch a few servers running Tigase but then I restart them from time to time for software update with new features or bug fixes.

One of them is im.flosoft.biz which runs on quite old Celeron 1.33GHz machine with 200MB memory. Serves approximately 800 online users and works well for 75 days already without a restart. This is a development version of the Tigase 5.1.0 branch but indeed, Florian pushes me to release it as another stable version.

I have found however an absolute winner in this 'competition'. The last time I checked it earlier today the Tigase uptime time was: 657 days, 6 hours, 53 mins, 21 secs. This is a service running on MS Windows machine for online gaming website and most of the user connections are web clients connecting via Bosh. It is still running and working well!

I have also received a few other reports from people successfully running Tigase, as they say for 2 years without restart. If you have any specific data, number of days, the software version, please add a comment to this article. I would like to hear about your experience with long-running Tigase server.

read more

July 19, 2010

Video chatting with Grandma

(Cross-posted from the Gmail Blog)

Two weeks ago we asked you to submit photos of you video chatting with your grandma. Thank you for all your submissions! As promised, we’d like to highlight a few photos that particularly touched us.

Emmanuel from Israel submitted this photo and wrote "My grandmother lives in Nice, France and could not come to our wedding in Israel, this is as close as we got to having her with us."


Charlie from New York City sent in these great photos of his daughter Maayan’s first video chat with her grandparents in Portland.



And Niranjan from Bangalore submitted this photo of him video chatting with his grandmother in Mumbai while away at college.


Thanks again for your submissions-- and happy video chatting!

Posted by Cody Bratt, Google Chat team

July 12, 2010

Tasks 0.18 (and 0.17)

Whilst Tasks isn't exactly under active development, I'm still maintaining it because I actually use it (unlike certain other projects, ahem). So, Tasks 0.18 is released.

  • Huge translation update, including several missing strings
  • Add a "tomorrow" button to the date popup
  • Support adding tasks from the command line
  • Use "category" over "group" consistantly
  • Ensure the entry is correctly styled
  • Ellipzies categories in the combo box
  • Correctly encode non-ASCII notes
  • Fix compilation with GTK+ 2.18

Tarballs and more information as usual are available at the Pimlico Project web site.

In related news, we're slowly migrating over to the GNOME infrastructure. We've migrated the source code, next up is the tarballs and bugzilla.

July 11, 2010

shot-scrobbler

It’s time for the second release of scrobbler for Maemo featuring support to mark tracks as “loved”.

There have been many improvements over the 1.0 release:

  • Support to “love” tracks
  • Detect network connectivity
  • Proxy support
  • Support for Now-Playing


Also, I had to rename it from maemo-scrobbler to Scrobbler for Maemo due to trademark issues,

Here’s a screenshot:
screenshot

This has been ready for some time, but I haven’t managed to make the release. All this time I’ve been testing it, and it works fine :)

It was quite complicated as I needed to write a D-Bus service first, and then write a separate Hildon Desktop widget to put some UI on, not to mention to write a lot of code to authenticate to last.fm web services. But it’s there now, and it works.

It’s now pushed to Maemo extras-testing, where you can test and vote up.


July 08, 2010

Tracker: branches branches branches

Recently, there has been so much work going into Tracker master. For a while now we have been averaging between 1 and 2 branches a week being merged into master. So I thought I would highlight some of the sweet work going into Tracker at the moment:

Dropping libinotify
For some years, we have been using an imported version of libinotify in our source tree to do the things not available in GIO’s monitoring API. One of the main reasons we didn’t move to GIO’s API was that the model we were using didn’t fit the model GIO used. In Tracker, if you monitored a directory and it moved to another location, we moved the monitor to that location. With GIO, if you monitor a directory it doesn’t move, which makes sense. Thanks to Aleksander Morgado, we have now merged his drop-inotify branch into master. It is so nice to be able to remove that imported library now.

D-Bus with file descriptors
We are always trying to reduce the memory footprint of Tracker. Recently Adrien Bustany finished implementing support for DBUS_TYPE_UNIX_FD in Tracker. The nice thing about this, is that we now don’t copy masses of memory from one place to another just for pushing the data between two processes. Adrien and Philip have previously blogged about this, but more recently, Adrien finished support for this by also implementing this for the tracker-miner-fs and tracker-extract communication. Effectively the same data is transported between those as tracker-miner-fs and tracker-store, with the difference that tracker-store also receives file specific information appended to the SPARQL message (like size, modified dates, etc).

To use this you need D-Bus 1.3.1, it is nice to see these sort of performance improvements in Tracker. Great work Adrien thanks!

Direct access
Bastien reported a bug not so long ago about adding support for direct access to the databases via a library API. This week, we started a branch to get this work under way. While we do this, we are considering re-writing the libtracker-client API using Vala and improving the old API substantially.

Git branch management
Due to the high number of branches we create, I decided to do some sort of clean up. I created a script to list all the branches and relevant information about them to be able to email the mailing list and check if everyone was happy with removing old branches. I thought this might be useful to other projects. Here is the script I used:

#!/bin/sh

if ! git rev-parse --git-dir > /dev/null; then
        echo "This is not a git directory"
        exit 1
fi

if test $# -lt 1; then
        remote=origin
else
        remote=$1
fi

git ls-remote $remote | while read LINE; do
        commit=`echo $LINE | sed 's/ .*//'`
        name=`echo $LINE | sed 's/.* //'`

        if [ -z $name ]; then
                continue;
        fi

        case $name in
        refs/heads/master)
                continue
                ;;
        refs/heads/*)
                shortname=`echo $name | sed 's@.*/@@'`
                if ! git log --max-count=1 --pretty=format:"Branch '$shortname' -- last commit was %ar by %an (%h)" $commit 2>/dev/null; then
                        echo
                        echo "Your checkout doesn't contain commit `echo $commit | sed 's/^\(.......\).*/\1/'` for branch $shortname"
                        echo
                        exit 1
                fi
                ;;
        esac
done

This produces output like:

Branch 'album-art-to-libtracker-extract' -- last commit was 3 months ago by Martyn Russell (d1f1384)
Branch 'albumart-quill' -- last commit was 8 months ago by Philip Van Hoof (a397a0f)
Branch 'anonymous-file-nodes' -- last commit was 5 months ago by Carlos Garnacho (60658be)
Branch 'async-queries' -- last commit was 2 months ago by Carlos Garnacho (88358dd)
Branch 'async-queries-due' -- last commit was 10 weeks ago by Jürg Billeter (52634ce)
...

Thanks to Sven Herzberg for some of the improvements to the original script. Most importantly, the use of git ls-remote. This makes sure that local branches are not used which may have been removed in the origin repository.

Last updated: August 01, 2010 05:41 AM