Archive for August, 2005

gShrooms, end of the summer

Wednesday, August 31st, 2005

Some more screenshots:

Rhythmbox source
Colin is streaming music, and jack is his friend.

Jack is receiving the music. The screenshot shows what Jack would see in his own rhythmbox, because he has 4 friends that are currently streaming music, one of them is Colin, he is playing Liquid Scarlet.

Gaim conversation
Here is jack’s conversation window to Colin . Colin has discovered a new album, and tells jack to listen to it, Jack then see the Listen button appearing in the conversation, and also see what colin is playing and is invited to listen to it.

Clicking the button makes rhythmbox play the buddy’s stream automatically (and launches rhythmbox if it wasn’t)

Gaim plugin
Colin has nothing particular to do, he has just to activate the plugin in Gaim, and set the preferences according to his internet connection.

And finally, something i’m proud of, a IRS tax TShirt, that was worth the whole summer:
Me, and the IRS

And a little update for the pastebin script, it now supports http proxies, removes twisted dependency, and allows to select line ranges with the -l x,y switch. Thanks to Gustavo “gjc” 🙂

The wonders of pastebin

Wednesday, August 31st, 2005

These last days, i’ ve been using pastebin intensively, for things like diffs reviews, code snippets to discuss, etc.

And i got sick of the web interface.

So i took a couple of hours to write this nice python script which allows to upload seamlessly any content to, and maybe it will be useful for other people than me, so i publish it here.

Very simple to use here is the usage():

$ pastebin [OPTIONS] [FILE]

Print the URL of the input file

If FILE is omitted content is read from standard input
        -h, --help                      Print this help notice.
        -r, --raw                       Retreive raw text URL (default=off).
        -d, --description       The description of the content (default=empty).
        -m, --message           Same as description
        -n, --name                      Your name (default=your unix username).
        -t, --type                      The type of the content (default="raw")

        Type can be one of:
        raw, asterisk, c, cpp, php, perl, java, vb, csharp,
        ruby, python, pascal, mirc, pli, xml, sql, scheme,
        ascript, ada, apache, nasm, asp, bash, css, delphi, html, js,
        lisp, lua, asm, objc, vbnet

        If type is not specified, an attempt to auto-detect type is made,
        based on file data/extension. Detection is more reliable when giving FILE
        argument than piping directly. This needs modules gnomevfs and gtksourceview

        If you have module gtk, the pastebin url will be placed in your clipboard,
        you can then paste it with ctrl-v as usual.

That means you can cat important-patch.diff|pastebin -m 'look!' then Ctrl-v in xchat or wherever the output URL.

Introducing gShrooms

Thursday, August 25th, 2005

I have put a page for the Braves who want to try out gShrooms.

You will need a jhbuild environement, rhythmbox and dependencies built, some stuff mentioned in the page, time, and nerves.

I appreciate any report of failure/success on IRC or per mail..

Thos who are wondering about the name think about Shared Music Rooms, then blame Seth 🙂

Summer of Code, the end of the tunnel

Thursday, August 25th, 2005

We are the 25th of august, the projects are due for the 1st of september, that means i have 6 days left to track down minor issues, and cleanup the thing.

In the meantime, as a teaser, here are two screenshots, i won’t comment them yet, i must sleep ! (click for full size)

Rhythmbox Buddy Source
Rythmbox Buddy Music source

Gaim Plugin
Gaim Plugin in IM windows

DBus tutorial, another one

Sunday, August 14th, 2005

I finished writing this nice little tutorial about dbus activation, i hope it will be useful at least for some people !

If there are any corrections/infos/additions to make feel free to contact me, also if you want to include it somewhere, feel free, credit is appreciated 🙂

BreakMyGentoo, Nattraverso

Monday, August 8th, 2005

BreakMyGentoo is back

You did miss the sleepless nights when you couldn’t do anything else than b0rking your system ? Be happy, is back !

I have become a co-maintainer there, so i will provide some help and ebuilds, starting with the gnome 2.11 beta ebuilds, and some more mono related stuff. The overlay is not quite ready yet, but we are testing each ebuild for dependencies and things like that.


This is the first product for the summer of code, an UPNP-NAT-traversal library, in python. I’m using it in my streamer, and i’m sure it could benefit other gnome applications since twisted has a gtk event loop, beside other type of loops. As i said before i’m not taking full credit for this, i borrowed code from Shtoom, but that’s open-source 🙂

I put up a page on this site, where you can download the package and see examples, there is also a full documentation in the package itself, generated with epydoc, because documenting code is Good.

I need feedback, cause i just tested it with my device, i need to see how much of the code works everywhere, and which parts need to be generalized, cause XML and SOAP sucks. Can you run the examples in the package and send me the debug log, if the thing didn’t work, so i have a trace of the xml exchanges, that would be great !

Beta packages, Summer of code

Monday, August 1st, 2005

Gnome beta portage overlay

Today i have been struggling to create all the necessary stuff to make portage install Gnome beta 2.11.90
The result is an overlay which you can download here (the name sucks, i know). If you don’t know what an overlay is, you most probably don’t want to try this thing, else just search the net on how to set this up. There is also a package.unmask file whose content should be added to /etc/portage/package.unmask, and maybe even more, just try..

Be warned that installing these ebuilds will most likely break things, beside the fact that this is a beta release, the ebuilds are mostly copied from existing ones, so they may be doing wrong things, don’t blame me 🙂

Don’t try evolution, evolution-data-server, gtkhtml !

I also included most recent dbus and hal from gentopia overlay, for completeness. If you know any more appropriate place for this, just tell me, or feel free to copy them anywhere you want, i don’t care.

I managed to compile everything here, and am now the proud owner of a beta gnome desktop which, of course, rocks !

Python bindings for libsexy

I made python bindings for libsexy which are documented as much as the original library, not at all ! The standard procedure ./configure; make && make install applies. I submitted the packages to Chris Chipx86 Hammond, so it should soon land in the libsexy SVN repository

Summer of code

I am participating to the google summer of code with gnome as mentoring organisation, Johan “jdahlin” Dahlin is my mentor, and he rocks. The project was the “Shared music spaces” bounty, but the actual end goal isn’t quite defined yet.

For the moment i have:

  • A streaming server, which accept http connections and serve music from a gstreamer pipeline, that’s quite like flumotion, but simpler.
  • A python library that allows to play with upnp devices, get external ip, add port mappings. The code is stolen and adapted from Shtoom, maybe we can turn this in a shared lib, so we don’t maintain two version of the code.
  • A gstreamer element that dump metadata from the stream on dbus, in a hashtable. This can then be retreived for any “Now Playing” needs, as well as an element that would write back tags from dbus to the stream, for example in the stream server.

The initial goal which is mainly achieved was to have a simple streaming server taking as input any sound that comes out the speakers and streaming that with any metadata to people connecting to the server via simple http streaming.

The most obvious problem with this approach is the firewall/NAT issue, while some NATs can be activated through upnp, passing a TCP connection through a firewall is nearly impossible. Maybe there should be a relay server hosted at gnome, but this is quite impossible too due to legal issues, and bandwidth costs. So basically it works if you have direct internet connection with no firewall, indirect connection through an upnp NAT and no firewall (or upnp-esque firewall), and that’s about it, i don’t know how large this part of the gnome users is…

I’m waiting for more instructions/discussions (*hint*) to continue this thing, in the meantime i fix bugs and polish the code.

I didn’t hear anything from the other gnome SoC’ers, maybe you should do some status report too, would be great 🙂