Sep 25, 2007
There are a number of lively discussions currently going on in desktop-devel with regard to new module proposals [1]. This reminded me of a few projects I used to follow that I have not heard from in a while. Hoping not to offend any of the developers I therefore ask,
What ever happened to?
-
Gnome Formatter
A HAL pretty formatting utility, so I may finally easily format my USB keys. Description here, and here
-
GSmartMix + PulseAudio + LibSydney
A dream bunch of projects providing policy for sound devices. GMartMix lives between gstreamer and pulseaudio (i hope...) to allow applications to mute, pause, and have per application volume control, although the latter may be the domain of Pulseaudio. LibSydney said to replace esd in GNOME (finally, down with cruft).
-
Mathusalem: Long running task manager
This SOC2006 project built sufficient buzz that KDE has now acquired an equivalent in KDE4. With Nautilus currently being broken to integrate the great new gvfs work, perhaps this would be a good time to play
-
New gnome-panel bling
Ohhh shiny. Im happy to see this come up on ddl, users like shiny things. Some more gnome-panel ideas here.
-
Libslab, Tiles and the New UI Metaphor, including Gnome Main Menu.
-
Gnome-control-center single window mode.
I know it met with resistance when it was introduced but I quite liked it!
-
GtkApplication and GtkUnique
Perhaps GtkApplication is a smart place to put the window DND stuff (now that nautilus supports XDS)
-
New GNOME Session Code
TOPAZ type infrastructure which may allow saving tasks to a file, or even a project or task oriented desktop.
-
Metacity Compositor
Kwin is shipping with a compositor, as is the xfce window manager. It would be a shame to have nothing comparable (yes I am aware of Compiz, and sometimes it hurts to use)
Anyway, its great to see the action on ddl, and the excitement surrounding GNOME again. I look forward to the next release. I will be releasing a Conduit 0.3.9 (the RC before 0.4.0) this weekend, and here is a hint about my next blog post: Conduit as a blessed GNOME dependancy, how can we integrate Sync into the desktop?
[1] I am also hoping that tracker and/or xesam gets proposed this cycle.
Sep 3, 2007
No screenshots this time, but still good news. Conduit tries to be a good citizen, integrating itself with GNOME technologies. Recently the following hacking has been going on (not all items are complete)
-
A Eye Of Gnome plugin allowing photo upload/sync to Flickr, Picasa, SmugMug, Facebook (soon)
-
Gnome user documentation
-
Themable icons
-
Patches to improve FSpots DBus interface to allow two way syncs with photo sites
-
Continued work on OpenSync integration. We have limited support for arbitary opensync plugins!
-
Canola, n800, Rhythmbox and general music synchronization
There have also been some new contributions
-
Two way support for Flickr, Picasa and Smugmug. Now you can move your photos between sites (AKA move my data)
-
A youtube dataprovider (sync your fave videos each morning)
-
Google calendar support (sync evolution with google calendar, iPod, etc)
Anyway if you are looking to get involved with Conduit now is a great time. I have just updated the docs on how to write a dataprovider. Here are some ideas for dataproviders people may wish to write (hint hint)
There will be some new features landing in trunk soon that will allow arbitrary parameters during the conversion process, i.e. transcoding audio/video to another format, resizing photos, compressing files, etc. Watch this space, download conduit, and go tell people it rocks!
Aug 20, 2007
I have a love-hate relationship with autotools. I love the thought of a parallel universe where it doesn't exist, and hate it with the fiery passion of 1000 suns the rest of the time. I just released Conduit 0.3.3 and have had some reports of some build errors. The recurring build error is basically something like
Running intltoolize…
Running aclocal-1.4…
aclocal: configure.ac: 18: macro `AM_PATH_PYTHON’ not found in library
The problem is, by some combination of luck and ignorance I have never been able to reproduce this or fix it (on Ubuntu). The additional confusion is that Conduit is python, so I understand even less of the interaction of autotools. I therefor have an offer;
I will happily pay the person who fixes the horrible autotools setup in Conduit a crisp $NZ50. This cool cash can be redeemed from me in person at linux.conf.au, in cash or beer form, or I will buy the lucky person a piece of FOSS memorabilia (example) to that value.
That means fixing the above bug, deleting autofoo files that don't do anything, checking that the translation stuff is setup optimally and generally making it less shameful and easier to follow. The person will also receive additional love points if they implement a skeleton autotools setup for documentation and for themed application icons. Remember, I hate autotools this much...
Aug 16, 2007
After a short hacking hiatus, soul searching, and general uncertainty regarding Conduits place in the Gnome Online Desktop plan, we the Conduit developers have decided to keep doing what we do best; adding awesome features, and making Conduit into the best desktop synchronization service for the free desktop. I invite you all to spot the new features in the image below;
Going through the new features one by one;
-
The Network datasink - thats how you tell conduit to share data to other people on the network
-
The chad.local dataprovider - ... and thats how you'll choose to consume other peoples shared data
-
The evo2-sync dataprovider - before long you'll be able to use opensync plugins in conduit
-
The f-spot dataprovider - before long that will be two-way and networkable, work is ongoing with upstream
-
Always-Up-To-Date is on the horizon (i.e. auto update and sync changed data)
-
iPod photos support - our patches are accepted upstream, so soon we will support those too
-
The facebook dataprovider - just photos so far, but more facebook features will be exposed soon
Other than those Massive New Features, there has been continued bug fixing and some improvements to the DBus interface to make it more Havoc Compliant. Check out the sample below for how to use Conduits DBus interface to synchronize things...
bus = dbus.SessionBus()
#Create an Interface wrapper for the remote object
remote_object = bus.get_object(APPLICATION_DBUS_IFACE,"/")
app = dbus.Interface(remote_object, APPLICATION_DBUS_IFACE)
#get a dataprovider
path = app.GetDataProvider("TestSource")
source = dbus.Interface(
bus.get_object(DATAPROVIDER_DBUS_IFACE,path),
DATAPROVIDER_DBUS_IFACE
)
#get another
path = app.GetDataProvider("TestSink")
sink = dbus.Interface(
bus.get_object(DATAPROVIDER_DBUS_IFACE,path),
DATAPROVIDER_DBUS_IFACE
)
#get a conduit
path = app.BuildConduit(source, sink)
cond = dbus.Interface(
bus.get_object(CONDUIT_DBUS_IFACE,path),
CONDUIT_DBUS_IFACE
)
print "Synchronize the conduit"
cond.Sync()
I have written an example which shows how to use Conduit to upload photos to any of our supported photo sites with even fewer lines of code. The DBus API documentation lives at the top of this file. Dont forget that by using a desktop wide sync framework you get all the Conduit bling for free, including
Jul 23, 2007
Well I have finally arrived in Canada, which signifies the end of my travels around Europe. Back in NZ in a week to start my PhD. Aside from the photos which I have been taking and irregularly uploading I have;
-
Bought a Nokia n800 (watch for a conduit port soon)
-
Played with an iPhone (its the little things, attention to detail of all transitions between operations)
-
Watched Transformers (not bad)
-
Read (1984, Fahrenheit 911, The God Delusion)
-
Hacked on Conduit
-
Missed GUADEC (I hope the videos and slides will go up soon)
-
Updated to Gutsy (went smoothly)
Conduit Schmonduit
I released 0.3.2 last week or so. Aside from bug fixes we also added box.net support (sync evolution/files/tomboy notes/etc to/from/via box.net), and also added the ability to delete photos from the supported photo sites (Flickr, picasaweb, smugmug). This means that Conduit can now better keep your photos (in a folder, or in f-spot) in sync. This includes removing them when they are removed from the synchronized folder, or tagged/untagged in F-spot.
Most of the work is now happening in the better-mvc branch which will land soon. This is a general tidy up of the code base and a better split of the synchronization logic from the GUI. This will not only allow for improved good looks; but other improvements too.
Mock-up Credit: Karl Lattimer
Jun 12, 2007
Excuse the shameless quoting of fellow conduit contributor John Carr's blog post but this video is pretty cool;
[googlevideo]http://video.google.co.uk/videoplay?docid=-2623798477165899506&pr=goog-sl[/googlevideo]
Video showing how you can use Conduit to synchronise Evolution Contacts and Tomboy Notes between two machines running the GNOME desktop environment.
To start with, laptop 1 has 2 contacts and 1 tomboy note. Laptop 2 just has 1 tomboy note. After syncing, both will have 2 contacts and 2 notes. Not too exciting.. but then... (on laptop 2) 1 note and 1 contact are deleted. The remaining note and contact are modified as well. When the camera flips back to laptop 1 and the sync happens you will see the windows update in real time - including the an open tomboy note getting updated.
Apologies for the poor quality
Jun 7, 2007
Conduit
For all those that are interested I just released Conduit 0.3.1, the second development release in the series. The release includes a heap of bug fixes and some interesting new features including;
Goals for the next release include
The thing that keeps me interested in conduit is the speed at which we are progressing. Each new dataprovider added has a benefit proportional to the number of already included dataproviders; for instance adding evolution support opened up the ability to do tomboy notes <--> evolution memos, as well as evolution memos <--> ipod notes, etc.
Gnome Link Drop
Here are some interesting things on the horizon that made me excited about GNOME and gtk. Delegated to people with more free time and ability than me!
Anyway, Im still on holiday, and loving it!
Jun 1, 2007
The reaction to my previous post was extremely positive, with a lot of interest in the bindings. Ive had a bit more free time and done some more hacking on both the bindings, and integrating evolution support into Conduit. On the first point;
Work on the 0.3.1 bugfix release of Conduit is coming along nicely, it should be out sometime over the weekend. In between fixing bugs however I been able to introduce some new dataproviders, which in turn will open up a heap of new synchronization possibilities.
-
Thanks to new conduit contributor Thomas Van Machelen we now support Smugmug and Picasaweb photo sharing sites.
-
Support for Facebook photos (uploading yours, and downloading your friends) is nearing completion thats to the excellent API complete pyfacebook bindings.
-
By supporting Evolution Memos and TODO items we now support some pretty cool sync combinations;
-
Evolution Memos <--> Backpackit.com and Tomboy Notes
-
Evolution Memos and Contacts <--> iPod
-
gnome-about-me (evolution) <--> Facebook profile
I recognise not all of these sync pathways are immediately useful or new, but they are providing a good test of the framework, checking if the design is correct and providing useful test cases. Its also exciting to think that when network support lands next cycle, direct sync between two computers over the web/LAN will just work, and will support any dataprovider that is available to conduit.
May 30, 2007
In order to add evolution support (contacts, task items and memos) to Conduit I needed to be able to access the relevant parts of evolution-data-server from python. evolution-python is an incomplete wrapper around libebook and libecal. It has now got to the stage of being useful, so here is a somewhat nervous announcement of evolution-python v0.0.0
This should be considered a work in progress and will be changing a lot over the next few days as I implement methods needed for the two way synchronization of evolution data using Conduit. However the basic skeleton is there, and I invite people to help with the bindings. An easy way to access evolution-data-server from python has been missing for a while now so I hope evolution-python will be useful for others.
There are some known issues and items to work on listed on the project website. Here is a small screenshot of the included test application.
May 7, 2007
Finally, and ?only? 3 months overdue I have released Conduit 0.3.0. This release finally marks the end of the sync engine rewrite from the previous release. This also signifies the first time that conduit is simultaneously useful to end users, and application developers as a desktop sync service.
[ ](http://www.conduit-project.org/wiki/Screenshots)
What can it do?
From an end user perspective Conduit has reached the level of being useful. I am currently travelling around Europe for a few months and using Conduit on a daily basis, at least for the task of Synchronization/backup of my photos to Flickr and my home server, Sync/Export of my Tomboy notes to iPod. Other than that Conduit can currently perform the following sync partnerships;
-
Two way file/folder sync on gnomevfs volumes
-
Two way Tomboy note sync via gnomevfs volumes
-
Two way Tomboy note sync via ipod notes
-
One way sync of files/folders of photos to Flickr
-
One way sync of FSpot tagged photos to Flickr
In the one way sync/export case Conduit is smart in the sense that if a piece of data has not been modified then it will not be synchronized/exported again, it will replace the existing data.
I have also added conflict detection, and a UI for resolving conflicts, including the ability to compare the conflicting data (using gnome-open on the relevant URI).
Desktop Sync Service
I have been talking about the merits of Sync as a desktop sync service for a while, and this release finally marks the point where I can start to add export and sync capabilities to GNOME apps using conduit. In this situation Conduit is exclusively controlled via DBus (independent of the UI). By sharing the same DB we can avoid duplicate data in the synchronization process.
To demonstrate this I modified to Uploadr to call conduit over DBus (and called the resulting app Yaput - yet another photo upload tool) (screenshot). This means that duplicate photos will not be uploaded, updated photos will replace old ones, and it doesn't matter whether you upload the photos from the Conduit GUI, the DBus interface or $(YOUR_APP_HERE). All that using 10 DBus calls!
Anyway, that's the plan, and apart from a few annoying known issues, I finally feel like I am on track.