Present Perfect


Picture Gallery
Present Perfect

Ogg/Theora+Vorbis stream

Filed under: Fluendo,GStreamer — Thomas @ 9:20 pm

9:20 pm

Ok, so finally.
Point your theora-enabled player to http://mirror.fluendo.com:8802/.
The stream is a view on the fountain (since it’s weekend and we’re not working) with a commodore 64 tune in loop (since we won’t be saying anything useful anyway in the weekend). The tune already annoys the hell out of me, I need to bring my music collection to work very soon.

The same stream, but different encoding, can be watched with a java applet. You can also get a dump of the stream and it should play back locally just fine.

Here’s a recording of me dancing to the tune.

Of course, the usual disclaimers – electricity isn’t very stable here in Spain so sometimes the server is gone, the network is not always stable so sometimes the mirror is gone, and random crashes could happen. Leave us alone, it’s the weekend.

Enjoy !


Filed under: Hacking — Thomas @ 5:09 pm

5:09 pm

Linux 2.6 in Fedora Core doesn’t prefer modules put in /lib/modules/`uname -r`/updates anymore. This was annoying for our server since the recent kernel updates reintroduced a pwc.ko module, but I have rpms that provide the latest version of that together with the “contains-binary-stuff” pwcx.ko module.

So, looked at a patch from someone, found some bugs, then decided to go through depmod myself. Every time I code in something on a level below GLib I am very annoyed. But there are benefits.

One is laughing out at fun code like

/* I hate strcmp. */
#define streq(a,b) (strcmp((a),(b)) == 0)

Another is getting a better understanding at how kernel modules and depmod work.

And a third is learning new tricks. Faced with this structure:

struct module
/* Next module in list of all modules */
struct module *next;

(... bunch of members, snipped ...)
char pathname[0];

and this allocator code

struct module *new;

new = NOFAIL(malloc(sizeof(*new)
+ strlen(dirname) + 1 + strlen(filename) + 1));

I tried to think why this would be done ?
Basically, a one-byte array is put at the end of the struct, and the struct is over-allocated.
Then I realized why this would be useful; this trick allows you to just free the struct and the pathname with one free, since you allocated it with one malloc. So you don’t have to write code to free the members of the structure.
Of course, this only works if you have only one variable-length array in your struct and put it in at the last member.
Also, I don’t know how portable this is, but I guess since even when alignment is factored in it still always allocates at least enough to hold the string.

Anyways, I made made a patch, created updated modutils packages and on Jeremy’s advice sent it upstream to Rusty.

Matthias has joined in on the kernel module packaging fun and seems to be happy with the autotooling. I started on linux-wlan-ng, because someone mentioned it. It has a nice code layout, and is fun to package, so will probably be done soon as well. Now I hope the various fedora.us “players” can agree to my ideas so I can start documenting and getting packages checked and released.


Filed under: Life — Thomas @ 8:12 pm

8:12 pm

Was unable to get me some last night. I mean, zero. Lay awake all night thinking about synchronisation in GStreamer, reading a bunch of web resources, realizing more and more pitfalls each time I think I have it sussed out, …

The good thing is, I think we do have it sussed out well enough for the next iteration. And I came up with a bunch of nice ideas to fix parts of the problem.

But right now I’d have much prefered just having been able to sleep.

New office

Filed under: Fluendo — Thomas @ 8:08 pm

8:08 pm

is great. Well, not new office, but spankingly new furniture.
Rupert agrees.

It makes us feel like a real company if it wasn’t for the fact that we’re not actually doing anything. Especially since boss-type guy is away in New York schmoozing up lawyers.

Beside the office, also working on the website. I got the HTML from the Spanish design company. Site looks nice, but ugh, do I ever hate fixing up HTML. Javascript code copied literally over tons of files, tags that don’t do anything at all in the real world, bad identation, superfluous table cells, image and css class names in Spanish, …

Here’s a snippet of the original JavaScript code for your displeasure:

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a .length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} }

Seriously, your browser is not making this up. This is how it’s laid out in the source.
It’s probably directly generated from Dreamweaver, and if you stick to it you probably never see it, but man, I’d be embarassed if I had written the code that outputs this.

Streets – A Grand Don’t Come For Free

Filed under: Music — Thomas @ 7:00 pm

7:00 pm

If you haven’t bought this album yet, go do so at the speed of light. Yes, it’s hyped. Yes, it’s hip hop. But this album manages to pack everything good about music in the span of less than an hour. It is funny, emotional, soaring, well orchestrated storytelling, cinematic and lifesliced.

The lyrics span a range of subjects, and each of them is recognizable. It’s been a while since I heard a song as sexy as Might Well Be In or as gut-wrenching as Dry Your Eyes. He out-Blurs Blur on Fit But You Know It, and pretty much every song is a stand out. The album flows nicely, and makes me realize the plain and simple truth : there is nothing wrong with me for not liking lots of hip hop music. It’s just that much of it is crap, while it could be as utterly brilliant as the Streets’ new album.

Run – don’t walk.

« Previous PageNext Page »