Resuming work on Gitarella

After release of 0.001 version, Gitarella became famous for a couple of days, as it was also posted on official git mailing list. This shown me that there is a bit of interest about it that make it useful for someone else.

I’ve then restarted working on it tonight, and I started implementing tags support, now that I do have one on a local repository. I hope to release a 0.002 in the next days, just to let people know I’m not dead on that ;)

On different notes, autoconf 2.59d/2.60 incompatibilities are still spread over the tree. From a few packages that seemed to be problematic at the start, right now we have quite a few failing. I was able to find a couple thanks to Pitr, but I still haven’t been able to complete gnome emerge (one of the packages was Totem, for completeness).

Also, yesterday I received Amazon’s package with a gift from Claes Mogren, who I want to thanks for it :) The Magic of the Wizard’s Dream by Rhapsody is really really good, and the Italian version, with Christopher Lee singing, makes me creep from the pleasure :)

Too bad the Lene Marlin DVD came scratched, so I had to start the procedure for change it; I’ve already prepared the box to send, will do that tomorrow.

A huge thanks to Norbert Thiebaud too, for his notable donation :)

Okay, now it’s time to return to Gitarella and to implement a few more things :)

Too hot

Today is too hot for me. And I mean it.

I hate summer and I hate heat, I hate when the temperature comes near the 30°C, and I hate the 90% humidity I have.

Today staying in my “home office” is difficult, and now I really can’t stay there anymore.
I ended up taking out my shirt and now I’m on my bad in my room, with the iBook.

Developing today is not possible, too hot to stay there, too hot to pass the whole day in front of the monitors because of the humidity. I worked on unieject this morning, and that is enough for today I suppose.

Actually, I also took some time to fix the licenses of my software, to update to latest GPL and LGPL texts available, and to update the address of FSF on all the files.

Now I will probably just find some time to hash out some documentation on gitarella, to release the first alpha alpha version, that at least might show some interest on that. It works basically, and that is what I wanted for it for now. Future development might make it use also SCGI, who knows? :)

My idea of adding WavPack support in xine seems to have changed a bit, Luca suggested me to rather write an ffmpeg plugin, so that the files would be played directly with it, but to that I should also add to my list the creation of a demuxer plugin for xine-lib (or it won’t be able to play wavpacks by themselves, but just wavpack streams) and a TagLib plugin inside Amarok to be able to get the metadata.

I’m afraid I won’t be able to take out much of useful by this pace, mainly because I never did anything like that in my life, and the time I can pour in that is strictly dependent on the free time I can get, and that is likely to be too few as I need a new job to be able to have enough money for the university.

Oh well, we’ll see.

Gitarella does FastCGI, too

So, tonight I didn’t sleep almost at all, so I decided to implement something more on Gitarella. Right now it does work as a FastCGI application if configured correctly and if ruby-fcgi is installed :)

The interesting thing of this is that the connection to memcached is never dropped this way, making it access even more fast, and also it caches the configuration file for the whole session. I can definitely see the speed increase of Gitarella versus gitweb, although I still miss quite a bit of features.

Last night I implemented summary, log and shortlog pages, today the commit summary page.

Something that scares me is having to find a way to display the differences in a decent web-suited way as well as the colourised output and the raw one. Sigh :P

But considering I’m working on gitarella since just a few days and in my spare time, it’s proceeding quite well. I might consider putting it in production on Farragut soon..

For the ones interesting in taking a look, just get the git repository at and if you want to help feel free to mail me.

Gitarella can use memcache

Okay today I wanted to write something for gitarella too, although I’ll have to stop now and go full-immersion into my job to make sure I don’t get behind my schedule because of KDE.

The first thing I looked at was implementing the sort of projects, it’s not difficult, it required me just to get the parameter from the CGI and then use the right entry in the hash to sort the array, it’s not bad at all, three lines of ruby code and gitarella supported sorting on the project page.

After that I decided to start taking a look to a new feature that gitweb don’t have as far as I know. As I also access all the information via the git-* commands it’s quite slow to access it multiple times. I already cached for a single session the tip of all the repos, but I still required to read all the data every time. Luckily as git assigns a unique sha1 for every object, using a cache on this is optimal.

What I decided to do is to use memcache for the job, so I had to find some Ruby bindings (that I finally found – the site is under maintenance tho), and then started looking into implementing it. It was really trivial to do, a few lines of code and now gitarella can use memcache if configured (but it works also without it, it’s not an hard dependency).

Right now I had to add three dev-ruby packages to my overlay for gitarella: ruby-liquid, Ruby-MemCache and IO-Reactor (dependency of Ruby-MemCache), but the work seems to proceed well. Next thing to do: display the log ;)

Replacing gitweb

Okay, I tried using gitweb to make my git repositories available via simple HTTP, unfortunately, I think it does not really do what I need it to. For this reason, having had a dummy day today, after working the morning on the course text, I spent the afternoon and the evening working on a gitweb replacement. Actually just the first part of the afternoon as I had a support call to take care at about 1500.

Anyway, after some hours of work (and a few before to decide how to handle it), I’ve got my own web-based git repository browser. It’s not yet complete of course, as I didn’t implement any history support yet, but at least I can point directly to single files without strange handlings :P

It won’t be available on production for a few days yet, but if you want to take a look to the current code, of course in Ruby, you can find it in a git repository ;)

The name has the literal meaning in Italian of “little trip” (although in some dialects it has different meanings… a silly name, but in topic with git’s silly name ;)).

There are really few features right now, no history, no way to browse non-HEAD tree, no diffs, no ordering. Most of it was easy to hack up, I just need more time to improve it. I actually already fixed one bug of gitweb, the binary files are sent as plain text by gitweb, instead they are bypassed by gitarella.

Maybe gitarella would be the “second choice” like ViewCVS is to cvsweb and so on, who knows? ;)

But I have to admit that writing it in Ruby is proving interesting and a good experience for myself, although it requires both filemagic and liquid – the latter not even in portage, but it’s on my overlay for now.

Talking about that, I also created the new git repository for my overlay. It might not be always available as the router is really driving me crazy, also because I can only find crappy D-Links in the stores where I usually buy my stuff, and I would get high shipping costs to get it via mail, plus no direct contact with the people who are selling it to me :/

Suggestions are welcome.

It’s 2:25am, I might go to sleep now.