Simple user-to-user file transfer without configuration in a LAN

There are many solutions to share one or more files, from setting up a Samba share, to a personal directory in a HTTP or FTP server, they have one big common flaw: they do not “just work”. As a consequence people often use services relying on an external server (such as email and chat), or removable devices. In some cases it is not even reasonable to do server-based communication, as is the case of meshed networks.

An ideal system should automatically discover other users in the neighborhood, list them and let the user choose who to send files. The system should also work without any configuration, without the need to tell one’s IP address, and without requiring any operation from the administrator, such as setting up a server or configuring a service.

For my dissertation I’m going to develop a program to satisfy those needs enabling users to easily send and share files over a LAN and I want to propose it as a Summer of Code project for GNOME. Detailed proposal here. Anyone want to mentor me?

Update: The project has been accepted and it’s now called Telekinesis.

GRegex in GLib

This morning I committed GRegex to svn, so glib 2.14 will have regular expression support. GRegex is a wrapper around the PCRE library by Philip Hazel that has several interesting features:

GRegex has a nice GLib-ish API that wraps PCRE functions and adds other features:

New mobile phone and Bluetooth

My two years old mobile phone died, so I bought a Nokia 6111, a small, nice and very usable phone.

This is my first Bluetooth mobile phone, so I tried for the first time Bluetooth on my MacBook. On Debian it works out of the box (you only need the bluetooth package), but Debian doesn’t have packages for GNOME Bluetooth, so I tried the packages from tuxfamily.org. To use them install the GPG key:

wget http://download.tuxfamily.org/osrdebian/61B8DB62.gpg -O- | apt-key add -

Then add the repository to /etc/apt/sources.list:

deb http://download.tuxfamily.org/osrdebian unstable gnome-bluetooth

gnome-obex-server (the program used to receive files) works, but gnome-obex-send (the program used to send files) cannot list devices even if “hcitool scan” is working correctly. This Ubuntu bug describes the problem and suggests to use “hciconfig hci0 inqmode 0”, but it doesn’t work for me.

I’m going to use Bluetooth only a few times and I’m lazy, so I decided not to solve this problem and to use a simple script to send files to other devices:

#! /bin/sh

if [ $# -lt 2 ]; then
    echo "Usage: $0 DEVICE-NAME FILES"
    exit
fi

ADDR=`hcitool scan | grep $1 | awk '{ print $1; }'`
if [ -n "$ADDR" ]; then
    shift
    gnome-obex-send -d $ADDR "$@"
else
    echo "Device `$1' not found" >&2
fi

A more annoying problem is that, when I try to use Bluetooth, I get disconnected from wireless. Dear Lazyweb, how can I solve this?