May 09, 2008

Bastien NoceraCrack, and uncrocked

(Bastien Nocera) I was amazed by FunPidgin. Whilst some of the features aren't actually crack, making things like these options is:
An option to use stock GTK+ close buttons on tabs.
An option?!

Anyway, Totem's playlist parser is now ported to GIO. I'll make a release soon, but I'd like to ask people to please test the hell out of it. If opening or saving a particular playlist produces warnings, errors, or crashes, please file a bug.

You can test easily by recompiling and using as normal: Rhythmbox (Podcast and playlist parsing, playlist saving), and Totem and its web browser plugin.

by hadess (noreply@blogger.com) at May 09, 2008 01:05 AM

May 08, 2008

Thomas Vander StichelePillow howto

(Thomas Vander Stichele)

lazyweb, poll time!

When you sleep, how do you use your pillow ?

  1. the middle part of the back of your head rests on the lower end of your pillow, your neck floats freely, your shoulder blades rest on the bed
  2. the middle part of the back of your head rests on the pillow, your neck rests lightly on the lower end of your pillow, your shoulder blades rest on the bed
  3. the middle part of the back and your shoulder blades rest on the pillow
  4. something else (please specify)

by Thomas at May 08, 2008 11:14 PM

Laszlo PandyGood Customer Service is Refreshing

I recently moved out of my old house and into my new one, which is much closer to downtown. Of course this meant I had to change my address on all my credit cards, my bank account, bills and of course I had to get my new internet connection setup.

I dread moving my internet because the last time I moved into a new house I was originally planning on getting a Rogers high speed cable, but the guy who was supposed to install it never showed up. It turned out they called me the next week to confirm my appointment — they had scheduled it a week to late. But by that time I had already booked an appointment for another ISP called 3Web to install the almost identical cable high speed internet.

Finally after 21 days, my internet connection was active and I could get back to IRC, MSN and all surfing when I am bored. I lived in that house for two years and I kept 3Web service the entire time. The connection went out for about a day one time, but otherwise I had no problems with it. It was decent, but it wasn’t spectacular or impressive. Nothing to blog about.

Now two weeks before I moved, I called 3Web to let them know. They asked me what day I would like the service at the new house to be working. I said the first of May and they said okay. I thought, “That was too easy”. But on the day I moved, by the time I had a chance to open up the laptop and try it out, it was already working.

Contast this wonderful example of flawless service with my phone line. Bell recommends that you use the moving form on their site. So I did. However I got no response, no call to confirm from them or anything. When I got to my new house, the phone line was dead and I was still paying for the phone at my old house. As punishment I have decided I will no longer have a home phone. Right now I’m doing perfectly fine using Skype for outbound calls, but I still haven’t found a good provider of incoming VoIP lines for a 613 Ottawa number. I would be nice if SkypeIn was available in Canada. Maybe in the future I will get a cellphone, but it won’t be one from Bell.

There are certain companies which have such terrible service you dread dealing with them, and try anything to avoid it. Unfortunetly in Canada many of the monopolies are these kinds of companies, and these monopolies are so pervasive that everyone forgets what good service is like, or at least assumed there was no possible business model that would allow good support and cheap prices at the same company. My experience with 3Web, and flying with WestJet reminded me that is possible, so now I am voting with my wallet.

by admin at May 08, 2008 05:57 PM

Stuart LangridgeLugRadio Live USA videos

(Stuart Langridge)

For those of you who missed the greatness that was LugRadio Live USA, or those lucky lucky people who were there and couldn’t see all the talks, we’re now starting to make videos of the talks available for download! Tony Whitmore, our hyper-competent video guy, is busily processing the videos, and as they’re made available we’re adding them to the LugRadio Live USA schedule. Currently there’s video of the LugRadio live show recording, Ted Haeger talking about “Freedom and the Cloud”, and Emma Jane Hogbin talking about women in open source. More will be appearing over the next few weeks! Keep an eye on that page to find video that you can stream or download in a load of formats.

(Those of you who are hyper-keen can actually get the videos quicker by watching the official video thread in the LugRadio forums, too.)

by sil at May 08, 2008 09:47 AM

May 07, 2008

Zeeshan AliKarl Lattimer is my hero

(Zeeshan Ali) I just can't help but appreciate how this dude comes to my desk and solves my complicated problem within minutes. My python problems were all solved when he removed the link (/usr/bin/python) to absolute path (/usr/bin/python2.5) and recreated it, only this time using relative path. Either he is too smart or I am too stupid. :)

May 07, 2008 10:11 PM

Thomas Vander SticheleFree Software at work

(Thomas Vander Stichele)

Today someone at work asked me what graphing component our stats portal uses. I didn’t know either, so I took a look in our website code. Seems we use something called Open Flash Chart. I’m not a big fan of Flash for the obvious reasons, but it sure does get the job done and looks pretty doing it.

Quote from their website:

And it’s really free?!

Yes. Once upon a time I had to deal with a company who sell flash charting components, their component had a bug that I needed fixing, so I emailed them about it asking when it’d be fixed. (Remember that I had paid real money for this software.) They were so incompetent, rude and obnoxious that after three or four weeks of emails I thought to myself “I could learn Flash and Actionscript and write my own charting component, release it as Open Source, host it on sourceforge and build up a community of helpful coders faster than they can fix a single bug.” And that is what I did. And that is why it is free. I guess the moral of the lesson is: don’t piss off your customers.

How can any Free Software hacker not like that story ? Don’t piss off your customers, put into practice.

by Thomas at May 07, 2008 09:27 AM

May 06, 2008

Andy Wingoan admission

(Andy Wingo)

I subscribe to cairo-list just to read what Carl Worth has to say. Carl is smart, fair, level-headed, perceptive, very sympathetic to people that come with problems, yet opinionated as well. It's refreshing, inspiring, and humbling at the same time.

This blathering inspired by one random post, although it could have been any other post just as well.

by Andy Wingo at May 06, 2008 09:50 PM

Rob LordReturn of the RIA?

Mozilla’s Mark Finkle recently concluded that the term RIA, Rich Internet Application, has lost its meaning.

RIA (the acronym) has jumped the shark. I find that I can no longer use RIA to describe anything anymore. The definition has been watered down and twisted to the point that nearly any application can be called RIA.

I agree. Finkle names names of Adobe and Microsoft software evangelists pushing proprietary app frameworks that have obfuscated the meaning of RIA and, in their wake, the user-centric, community-directed utility promise of the RIA class.

However, I don’t follow Mark’s conclusion to retire the term RIA. The term has currency and fluency; Let’s re-appropriate, replenish and sharpen it. With a new, Firefox, Thunderbird and Songbird are practical and aspirational leaders of the RIA class.

The key to emphasize the I in RIA. The Internet is global network of community-centric client-server systems including the Web, email, DNS, etc. An RIA implements the client-side of at least one of these Internet systems.

Also, the R in RIA should be measured by “richness” found in exemplary IAs, Firefox first among them. The metric is user utility and community adoption of the client. Firefox’s open source, vibrant community, Open Web manifesto, widespread adoption and 5,000+ community-contributed add-ons establish a very high “richness” bar.

With this definition it’s easy to discern the real RIAs from the wishful: RIAs implement the client-side of Internet methods, formats and protocols. In the Web client-server system, RIAs are better known as user-agents or Web browsers. In the email client-server sytem, RIAs are better known as email clients.

By this definition, is Twirl, a useful desktop app for Twitter built from Adobe AIR, an RIA? No, it’s a proprietary app, platform and service integration. However, if someone built an desktop IM-like client from the open source Mozilla stack that posted your Twitter-like status to your OpenID via Attribute Exchange and thus accessible to all Twitter-like status tracking services like Twitter — that would be a really cool RIA.

Your comments are welcomed!

by roblord at May 06, 2008 08:31 PM

Christian SchallerSebastian Dröge joins Collabora Multimedia

(Christian Schaller)

Thought I should let the world now we have a new employee at Collabora Multimedia. I think most of you know him already as Sebastian Dröge is one of the biggest patch reviews and bug fixers in the GStreamer community already. While Sebastian will be helping out with some of our internal projects we also plan on letting Sebastian continue his great community work. In fact the first assignment we have given him is simply to try to help out with some hard bugs thats been troubling Jokosher for a long time. So a big welcome to Collabora Sebastian, and an especially big thanks for starting your new job by taking GStreamer once again out of the top 10 bugzilla list :)

by uraeus at May 06, 2008 11:56 AM

May 05, 2008

Thomas Vander Stichelehomey

(Thomas Vander Stichele)

Friends and family back in Belgium tell me I don’t talk enough about how it’s going in our new apartment. I guess they’re right - while it felt I was telling everyone about it all the time, I never really tracked what we were doing here for all to see.

I’ll do so from now on as we’re putting on the finishing touches, and go back and revisit some fun things later on.

So anyway, this weekend was actually productive on the apartment side. When you get your new place in such a state where you can move in (which we did with a big walk on the wild side by taking Julien, Noelle and their kids in the same weekend we first moved in - a story for another day), you really have to try and avoid getting lazy and not doing anything anymore for a long time. There’s lots of small things to take care of, and it’s easy to just think “Oh, we’ll do that some other day”.

This weekend, I finally had the courage again to work on our bedroom closet, a huge IKEA affair called Pax which is dirt cheap for the storage it offers (750 euro for 3 by 2.3 by .6 meters of storage), but a real bitch to set up. I always enjoy IKEA furniture - my mother used to buy stuff all the time from IKEA and she’d always pass it on to me to set up because she knew I enjoyed it. Contrary to popular myth, I hardly ever encounter wrong instructions or missing pieces. It’s like LEGO for grownups.

IKEA has the multilingual - or rather, nolingual - instruction booklet down to an art form, and you can tell they’ve worked hard on their parts to make it almost possible to follow the instructions wrongly. Pieces are identical and only get “specialized” at some point in the instructions when you have to put some screws in some holes but not in others, and vice versa, but always in such a way that you didn’t set yourself up for failure at step 20 by step 5. I actually didn’t realize how well they do this until two weeks ago we set up some PVC closet in the basement, which had the worst instruction set ever - one big leaflet in four parts, with part listings for all 8 different models you can buy, and incredibly confusing instructions that caused me to break two screws and a handle.

But, as usual, I digress. This was the IKEA closet from hell, costing me a good six hours to get the main part set up, which I did a month ago. Then there were the sliding doors, which I just left in the hallway for the last four weeks, because I didn’t want to work on it alone anymore. So this weekend I finally convinced Kristien that we should get it out of the way and over with. It cost us another three hours, and the doors were so heavy Kristien and I weren’t able to get them installed correctly. I waited for Jeroen to come by on the Night Of Fifteen Girls In My Apartment and help me install them. They look gorgeous for a relatively cheap IKEA closet, and we’ll only need to slice off a small piece of marble mantlepiece to actually be able to slide them shut such that I can reach my underwear drawer.

(Jeroen and I ended up spending some time away from the NOFGIMA by going to the cinema - a ten minute walk from the apartment - and watching Iron Man, which was a lot more entertaining than I expected from knowing the dull background story)

When going shopping on Saturday, we noticed the garage below our apartment was open - an opportunity to finally fix the terribly installed telephone cable which was hanging on a spindle in the basement outside of this garage, connected by two thin wires to the cable actually leading up through that basement to our apartment. We avoided all the hassle of calling the owner, scheduling a date, and so on by just asking the renter of the garage if we could pull the cable through and get it fixed.

Yesterday we made a big list of things still left to do, and now the goal is to knock one or two off each weekend, until the list is empty. I guess this is the only practical way to keep momentum.

Big ticket items on that list are cleaning our garage, finishing the network cabling (half a kilometer of cables in the apartment), cleaning up the guest room (I have a visitor coming over this week), and getting lamps and curtains.

Meanwhile, our automatic blinds in the bedroom have stopped working. Inspection by the installer revealed that the rails for the blinds aren’t perpendicular to the window sill as they should be, and the top of the almost-rectangle is off by two centimeters, causing the thread in the blinds to rip or something - as if I know how these things work. At least he was able to get them mostly closed so I could sleep - no fun flying back from the US and arriving on saturday morning at 8, and not being able to sleep because the bedroom is doused in light.

He came back this Sunday - he has no time to do it during the week - and replaced the blinds with aluminum ones (which also feature no cracks between the lamels (is that even a word in English ?)), but figured out the engine was malfunctioning as well. So we still don’t have blinds that open, but we sleep darker now.

That’s about it for this weekend. I hope I sufficiently bored all of you enough to not get many more requests for domestic updates again :)

by Thomas at May 05, 2008 08:58 PM

Benjamin Ottesenior developer

(Benjamin Otte)

If anyone asks about it in the future, I go by the term senior C developer now. I’ve found a real bug in gcc.

</show-off>

May 05, 2008 08:08 PM

Andy Wingocatching memory leaks with valgrind's massif

(Andy Wingo)

One of my first tasks at Oblong was to migrate their code for playing video from some very tricky, threaded ffmpeg + portaudio code to using GStreamer. The playback interface is fairly standard, but thorough: seeks to time, segment seeks, variable speed and reverse playback, frame stepping, etc. There were some twists: we do colorspace conversion on the GPU, and there's a strange concept of "masks", which is useful for operating on rotoscoped video, and there's integration with the GL main loop.

But anyway, I felt finished with all of that a while ago. The only problem was a lingering memory leak, especially egregious in the context of the art installation, which has yet to switch to my code.

So it was with a queasy, helpless feeling that I sat down and tried to systematize the problem, come up with a test case, and see if I could track down where the leak was. I tried code inspection at first, and I proved my code correct. (Foreshadowing, that.) I at least narrowed down the situations under which it occured. I then despaired for a while, before I hit on the way to make memory leak detection fun: turn it into a tools problem. Now instead of finding the leak, all I needed to do was to find the leak detector!

So I checked out valgrind from CVS; it crashed on me. Then I decided to see if libc had anything to offer me; indeed it does, mtrace. But alack, deadlocks. I even went so far as to include mtrace in my code, and applied Jambor's patch from the bug report on my sources, but lost because the ELF symbol resolution is intertwingled with libc's build system.

So back to valgrind, this time the 3.2.3 version packaged with Fedora, and lo and behold, exhibit A:

houston, we have a leak

My test is adding a video, waiting a while, removing the video, waiting again, then repeating. You can see the obvious video-playing versus video-removed phases.

Fortunately, you can also see the leak, and where it is: in the green part, corresponding to something that's calling g_try_malloc. This was comforting to find. It could have been something involving GL contexts or whatnot, and I'm using the babymunching nvidia drivers. So g_try_malloc was where it was coming from. But what was calling g_try_malloc?

For that, you have to dive into the textual output produced by massif. And sure enough, following things back far enough, you find that it is a GStreamer video buffer:

Context accounted for  7.2% of measured spacetime
  0x5F27E60: g_try_malloc (gmem.c:196)
  0x52E1487: gst_buffer_try_new_and_alloc (gstbuffer.c:359)
  0x530367B: gst_pad_alloc_buffer_full (gstpad.c:2702)
  0x53039FA: gst_pad_alloc_buffer (gstpad.c:2823)
  0xB9C11BF: gst_queue_bufferalloc (gstqueue.c:502)
  0x53034C0: gst_pad_alloc_buffer_full (gstpad.c:2668)
  0x53039E6: gst_pad_alloc_buffer_and_set_caps (gstpad.c:2850)
  0xBBECB4F: gst_base_transform_buffer_alloc (gstbasetransform.c:1112)
  0x53034C0: gst_pad_alloc_buffer_full (gstpad.c:2668)
  0x53039E6: gst_pad_alloc_buffer_and_set_caps (gstpad.c:2850)
  0xBBECB4F: gst_base_transform_buffer_alloc (gstbasetransform.c:1112)
  0x53034C0: gst_pad_alloc_buffer_full (gstpad.c:2668)
  0x53039FA: gst_pad_alloc_buffer (gstpad.c:2823)
  0x52F6C68: gst_proxy_pad_do_bufferalloc (gstghostpad.c:182)
  0x53034C0: gst_pad_alloc_buffer_full (gstpad.c:2668)
  0x53039E6: gst_pad_alloc_buffer_and_set_caps (gstpad.c:2850)
  0xC452722: alloc_output_buffer (gstffmpegdec.c:764)
  0xC454504: gst_ffmpegdec_frame (gstffmpegdec.c:1331)
  0xC45635D: gst_ffmpegdec_chain (gstffmpegdec.c:2236)
  0x5303C06: gst_pad_chain_unchecked (gstpad.c:3527)
  0x530421C: gst_pad_push (gstpad.c:3695)
  0xB9C0A3E: gst_queue_loop (gstqueue.c:1024)
  0x531E418: gst_task_func (gsttask.c:192)
  0x5F4338E: g_thread_pool_thread_proxy (gthreadpool.c:265)
  0x5F41C4F: g_thread_create_proxy (gthread.c:635)

For this level of information, you have to run massif with special options. I ran my test like this:

G_SLICE=always-malloc valgrind --tool=massif --depth=30 ./.libs/lt-vid-player

So now that I knew what was leaking, I decided to run with fewer, longer cycles to see the allocation characteristics were. And thus, exhibit B:

bucket effect -- watch the cyan trough fill up

You can see that after the video was removed from the scene the cyan part representing g_try_malloc allocation does not drop down to zero; indeed it starts to "fill up the trough", getting larger at each iteration.

Of course at this point I realized that I probably wasn't freeing the buffer that I kept as a queue between the GStreamer and GL threads on teardown. Indeed, indeed. Two lines later and we have the much more agreeable long-term plot:

memleak fixed

Moral of the story: "proof of correctness" is not proof of correctness.

Valgrind turned out to be much more useful to me in this instance than it was when I looked at before, when hacking Python. But again, the CVS/3.3 version was of no use, yet. Since then, 3.3 does indeed do graphs again, but in ascii. As a palliative, the textual output appears to have improved. Still, ascii graphs?

by Andy Wingo at May 05, 2008 05:07 PM

Phil NormandOn-going projects status report

(Phil Normand)

Last time I blogged about Elisa was end of February in an ultimate attempt to keep up with the weekly news reporting idea. I miserably failed since then... Some people recently asked me some status on Elisa, so I'll do my best to deliver some periodic insider news of Elisa and the other projects I'm involved on ;)

March was the month of the Elisa organization changes, the bug tracker is slowly moving towards Launchpad, the code was moved to Bazaar branches (about 20 so far) and the code reviews process was officialized (mailing list and BundleBuggy). All these changes are meant to ease contributions to the project and increase its visibility in the FOSS world, we'll see how it goes :)

The team significantly grew up, we have 2 new developers working on the windows ports of both Pigment and Elisa, one QA manager working on improving the global quality assessment of the code we write and a new graphic designer, smashing his head on the UI ergonomy and look. This is quite amazing, at some point we needed a sheet of paper with names and assigned roles on the wall to keep up with new people arrivals!

So the whole team is mainly working on the upcoming 0.5 branch of Elisa, for which a first release is scheduled in june. Many architecture changes on the table, a revisited UI framework, some new plugins to drive more content to the end-user and the usual fixes. More details to come later about that.

Some news about Pigment, Loïc worked on the OpenGL|ES plugin and support for touchscreens. This opens up Pigment to a wide range of embedded platforms! The plan is to release a 0.4 version soon. Work is heading towards the Pigment 0.5 branch. Guillaume is continuing his efforts on the PAF animation framework, the API is coming along nicely, let's keep an eye on this promising project.

Last but not least both Pigment and Elisa will be presented at next GUADEC, be sure to attend!

by Philippe Normand at May 05, 2008 03:14 PM

May 04, 2008

Zeeshan Alipython strikes back

(Zeeshan Ali) The joy of getting my python problems fixed on my debian testing were short lived. This time when i ran `apt-get dist-upgrade`, apt failed saying:


ValueError: /usr/bin/python does not match the python default version. It must be reset to point to python2.4
dpkg: error while cleaning up:
subprocess post-installation script returned error exit status 1
...
Errors were encountered while processing:
/var/cache/apt/archives/python-uno_1%3a2.4.0-5_i386.deb
/var/cache/apt/archives/deskbar-applet_2.22.1-1_i386.deb
/var/cache/apt/archives/python-ctypes_1.0.2-4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


So removed the link to python2.5 and recreated it but this time pointing to pythong2.4. It should fix the problem, right? No! here is what apt says now:


ValueError: /usr/bin/python does not match the python default version. It must be reset to point to python2.5
...

May 04, 2008 05:09 PM

May 03, 2008

Phil NormandCoherence strikes back

(Phil Normand)

With a release per month, Coherence is evolving rapidly, the community is coming along, it's nice to see the IRC channel filling up with developers and users. Recently Frank added a backend for Tracker, it's a bit rough on the edges currently and publishes only the Music files over UPnP, but support for Videos and Pictures publishing will come soon! In the future, every media file you'll have on your desktop monitored by Tracker will be potentially available to the other devices of your living network via UPnP.

One nice use-case is to use Rhythmbox on one computer to play the media hosted on another desktop, transparently, with no headaches of setting up a network share. Work is currently being done towards a desktop applet called gcoherence meant to ease the configuration and setup of Coherence:

http://base-art.net/static/gcoherence.png

Another new feature of Coherence is a MediaServer backend for Ampache, a web-based audio jukebox system. I haven't tested that one yet, but Ampache looks like a nice toy to play with in the near future :)

Great stuff guys, keep up the good work :)

by Philippe Normand at May 03, 2008 06:15 PM

Roberto FagáHello world

This is a hello world post, where I want to say hello to all gst community! I am one of accepted students to work in Google Summer of Code with the project Media services to transcode video and audio in different formats, and want to make a great project, which is intended to help users and applications, offering them services to transcode videos and sounds with gstreamer.

For who is interested in more details, check the wiki design at Gstreamer Wiki. This blog is intended to report what I'm doing during my (winter) summer, so please contribute with suggestions always, as I'm here to learn with everyone. Oh, and vote for what is the best name of this project, in this blog poll, I don't like MediaTrans too much.

by Roberto Fagá at May 03, 2008 01:15 PM

May 02, 2008

Benjamin Ottewebkit time

(Benjamin Otte)

So it seems gtk-webkit can support Free plugins, too. Even though it has its own quirks.
And it also seems Swfdec runs the new Youtube beta fine, too.

But be careful with poor Webkit, it likes to crash.

May 02, 2008 11:06 PM

May 01, 2008

Zeeshan AliGUPnP presentation at GUADEC

(Zeeshan Ali) So my GUPnP presentation for GUADEC has been accepted and scheduled for 14:30 on 11 Jul 2008. It will be essentially the same talk I delivered at FOSDEM but this time I'll try to make sure the demos really do work. :) If you missed it at FOSDEM, don't commit the same mistake at GUADEC. :)

May 01, 2008 10:09 PM

Jono BaconSevered Fifth

(Jono Bacon)

Recently I have mentioned a new project of mine called Severed Fifth. Although I can’t announce it yet, things are really coming along together nicely with it. The team is largely assembled, and we are getting the website together. The announcement is largely written, and the content is largely written.

I want to clarify that this is a spare-time project, not something that is replacing my work with Ubuntu and working at Canonical - it is something I am doing, and have wanted to do for a long time. All being well, I can announce it in the next few weeks. :)

by jono at May 01, 2008 06:52 PM

Christian SchallerSun’s new video codec

(Christian Schaller)

So Sun Microsystems video codec effort is now public. Actually its been public since the 11th of April, but I missed it until today. I think it is an interesting effort and wish them good luck. That said I noticed from the comments that people where wondering why they where not instead pushing Theora or Dirac forward instead of making their own codec. Well the answer to that question is implicitly given in Rob Glidden’s blog post, Sun wanted something which they felt was 100% sure to not be under any current patents and thus they started with the sure to be patent free H261 codec (due to its age).

Of course that is similar to the approach the BBC took with Dirac, but instead of using an codec implementation they used old text books and research papers as their baseline.

That said neither the OMS video codec or Dirac can be 100% sure that there will never be any patent lawsuits, to many bogus patents for that. So all they can do is what they have been doing, which is to ensure that their prior art story is so strong that if a case ever is brought they should be able relatively easily defeat it.

And while I would of course love even more people contributing to improving out existing codecs like Theora and Dirac and think that getting new codecs launched which has used different strategies for ensuring their royalty free status is only a good thing as it gives us more angles of attack. And once one of these codecs reaches critical mass in terms of consumer adoption I think it can actually open the door to the others as it will reduce the current ’stigma’ around royalty free codecs.

In the meantime we just need to continue improving our tools as I feel that is the next step we need to take to help push free codecs forward. My goal is that we will get Pitivi and Jokosher to a stage where we have them running on all three major platforms and thus the threshold for getting your marketing department etc., to publish their audio clips and videos with free codecs is greatly reduced. The two Summer of Code students we have working on Pitivi and the renewed Jokosher effort should help push us forward.
I am also hoping that the codec support provided in HTML5 through Firefox will open some doors. While Apple and Microsoft are still trying to sabotage it there is still hope that the market share of Firefox is large enough to make a difference and force the issue.

by uraeus at May 01, 2008 05:07 PM

Benjamin Otterequired reading

(Benjamin Otte)

Here is required reading for everyone wanting to hack on Swfdec. It’s a nice 280-page introduction on the topic. Go Adobe for publishing it. Keep up the good work.

I think it’s a smart move of Adobe to try to go a more open way in pushing Flash (and its succcessor AIR) in the embedded context. After all, there’s at least three competitors in the new browser wars about “rich content”: Adobe, Microsoft and the W3C. But then, my previous statements about the topic are still relevant I think.

May 01, 2008 01:07 PM

April 30, 2008

Jokosher NewsJokosher 0.10 Roadmap Announcement

The Jokosher team would like to announce the long awaited version 0.10, which will be coming out in August. We are looking forward to getting an updated version of the code into the next Ubuntu release, as the current one is from one year ago. Certainly many Hardy Heron users are getting annoyed that their new distribution still contains the old stale version of Jokosher. Many of you have reported crashes and other bugs, many of which have already been fixed. So even if the next release of Jokosher isn’t perfect (it’s not 1.0 yet), it will certainly be an improvement and a step in the right direction.

At the same time, we are also announcing a feature discussion meeting on IRC this Sunday at 18:00 UTC. Just to be clear this is 8pm in Europe, and 2pm on the east coast of North America. For those of you unfamiliar with IRC, you can join our meeting on Sunday by going to our online chat page, and selecting a unique username.

We welcome everyone’s input for the next release, and we will be discussing everyone’s ideas on Sunday. If you can make it to the meeting feel free to give us any suggestions in the chat room. If you cannot make it on Sunday, feel free to post them on the mailing list instead.

For those who are interested, you can read the full text of the announcement from the mailing list.

by laszlo at April 30, 2008 04:01 PM

Thomas Vander Sticheleshirts

(Thomas Vander Stichele)

I’m used to seeing geek shirts. I see them all day at work - GNOME, FSF, thinkgeek shirts. I have a flatmate who is no geek at all but this week he was wearing a pacman shirt. I wear some myself as well. I go to conferences and they’re full of them.

But going into the subway and seeing a guy from across the street wearing a GNOME shirt, in plain daylight, without any conference or company nearby, is new to me. I stopped walking for a second, but he was already past me.

If you know who you are, with the black GNOME shirt with “The international desktop” on the back, coming out of the Rocafort metro this morning - say hello next time :)

by Thomas at April 30, 2008 12:08 PM

April 29, 2008

Benjamin Otteon marketing

(Benjamin Otte)

Marketing is a societal process … attempting to move the consumers toward the products or services offered.

I hate marketing. With a passion. The sentence above shows the 2 biggest problems I have with it. One is the word consumer, which often means “too stupid to make its own decisions”. The other is the fact that it doesn’t talk about the quality of the offer, but only about “moving towards”. To me that means that marketing is deeply unethical because its definition already violates the golden rule and the categorical imperative.

But before I get lost in another philosophical discussion with Christian I’ll get back to Open Source. And no, I’m not going to speak about the fact that “ODF good, OOXML bad” is just a big marketing campaign to close Ubuntu bug #1 or about if Linux is ready for the desktop, because that’d just get all the carnival barkers back on their podiums. They are just good as examples for the point I’m trying to make. And that point is that people generally behave seriously braindamaged when it comes to deciding about products or services they have no clue about (and yes, that likely includes me). Of course, we’re all trained to do the faith-based consumer approach by all the marketing that gets thrown at us, so we have a “good” excuse: And after all, how could the people we trust be wrong?

Turns out, the people we trust have no clue either. That bug report is Debian wondering which Flash player to ship in the default install. Apparently the most important thing in deciding about it is wether Flash starts paused (changing that is a one-line diff) or the amount of people that have submitted code. Stuff like feature completeness or code quality don’t seem to be that important. Why should they be, those are hard questions, answering them is way easier than looking at statistics or the big play button in your browser. Another hard thing for people is realizing that one doesn’t have a clue and asking the developers of the respective projects for their opinion. It still baffles me that people don’t ask.
Apparently in these cases marketing is very easy. Since the people don’t even have a clue what the right questions to ask are, marketers are free to make up their own questions to ask about the project and provide the answers. Which is what is happening in the bug linked above: The Gnash maintainer markets Gnash with made-up questions, the Swfdec maintainer does the same for Swfdec.

An interesting thing about all of this is that the Gnash and Swfdec projects have been using a very different approach at marketing. I have always been very careful, telling people they’d better try themselves, and not promising features; instead reminding them that reverse-engineering a product of that scope is hard. On the other hand, Gnash promoted itself as having “full Flash 7 support” by the end of 2007. That was a year ago. So you have one project that overpromises and another one that underpromises. Now if you browse discussions about Flash players on various mailing lists or forums, you’ll notice that Gnash is known way better. People are very more aware of an application that claims to almost support Flash than an application that claims it might not even work. On the other hand, the perception of Gnash is more negative. Gnash does not deliver its promises. Swfdec on the other hand promises nothing, so it’s likely it’ll be better than people expect, which makes them happy. Now, the question is: What’s the better approach? It’ll be interesting to follow it on Google blogs. If I ever figure it out, I’ll blog about it. Until then, it’ll probably remain nothing but an interesting thesis project for someone studying marketing.

April 29, 2008 10:14 AM

April 28, 2008

Zeeshan Aliwhats wrong with my python setup?

(Zeeshan Ali) Can any python guru out there explain whats going on here:


$ /usr/bin/gnome-about
Traceback (most recent call last):
File "/usr/bin/gnome-about", line 35, in ?
import gtk
ImportError: No module named gtk

$ head -n 1 /usr/bin/gnome-about
#!/usr/bin/python

$ head -n 36 /usr/bin/gnome-about|tail -n +29

import pygtk
pygtk.require ('2.0')

import gobject
from gobject.option import OptionParser, make_option
import gtk

$ /usr/bin/python
Python 2.4.5 (#2, Mar 12 2008, 00:15:51)
[GCC 4.2.3 (Debian 4.2.3-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygtk
>>> import gtk
>>>

$ /usr/bin/python
Python 2.4.5 (#2, Mar 12 2008, 00:15:51)
[GCC 4.2.3 (Debian 4.2.3-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygtk
>>> pygtk.require ('2.0')
>>> import gtk
Traceback (most recent call last):
File "", line 1, in ?
ImportError: No module named gtk
>>>

UPDATE: Thanks to Karl-Lattimer, the problem was solved by:

# rm /usr/bin/python
# ln -s /usr/bin/python2.5 /usr/bin/python

April 28, 2008 10:13 PM

Andy Wingoa preview look at quagmire

(Andy Wingo)

We've been using git at work for a few months now, and finally settling down reasonable workflow. As reasonable as anything might be with a 9 hour difference between me and Los Angeles, and for a cross-platform project that uses autotools.

Regarding the latter, the autotools have been a constant source of pain for my co-workers. I don't mind it myself, but I feel bad because I had a hand in inflicting it on them. So now when hacking on a bit of test code, I decided to take a look at Quagmire, Tom Tromey's experiment in replacing automake, libtool, and (to a large degree) autoconf with portable GNU make.

With Quagmire, all of the autofoo is replaced with one makefile, Quagmire.mk. Its format is much like that of a Makefile.am. A simple project with a few source files, that depends on pkg-config, might look like this example, taken from the Quagmire distribution:

# this is Quagmire.mk, in the top-level source directory
# -*- makefile-gmake -*-

bin_PROGRAMS = ekeyring

lib_LIBRARIES = libzardoz.a

libzardoz.a_SOURCES = zardoz.c

ekeyring_SOURCES = ekeyring.c something.h
ekeyring_PACKAGES = gnome-keyring-1
ekeyring_CONFIG_HEADERS = config.h

config.h_FUNCTIONS = strcmp strdup
config.h_HEADERS = string.h nothing.h strings.h sys/types.h

data_SCRIPTS = ekeyring.c
data_DATA = something.h

EXTRA_DIST = README.simple

The syntax will be familiar to anyone who has used automake. It is further described in the README.

Then you add the following configure.ac to the same directory:

AC_INIT(ekeyring, 1.5.1)
AC_CONFIG_SRCDIR(ekeyring.c)
AC_ARG_PROGRAM
AM_QUAGMIRE
AC_OUTPUT

And copy quagmire.m4 (from http://quagmire.googlecode.com/svn/trunk/m4/quagmire.m4) to aclocal.m4, to provide the AM_QUAGMIRE definition. Then import the quagmire files into your source tree by running:

svn checkout http://quagmire.googlecode.com/svn/trunk/src quagmire

At this point you run autoconf, in order to produce configure, and then ./configure. It doesn't configure much. Most of the actual configure checks are run at make-time.

For example the ekeyring_PACKAGES line specifies the pkg-config files that are needed to compile ekeyring. Those checks are made as dependencies of the ekeyring target.

status

Quagmire is promising, and is quite fast, as is appropriate for an underfeatured project. It's not there yet though. It doesn't yet understand differing shared library extensions (.so versus .dylib), it doesn't (I don't think) know about static linking like libtool's .la files do, and I haven't gotten programs that depend on in-tree dynamic or static libraries to build yet.

And yet, it does a proper distcheck. It integrates with pkg-config. The makefiles are understandable -- I can get the whole process in my head. Tom Tromey is either exactly the person to fix autotools, considering that he wrote automake, or exactly the wrong person, depending on your religion. And GNU make is actually quite an OK language for expressing functional dependencies.

For now I'm going to hold off on trying to use Quagmire for a while at work, given that I need to do some static linking stuff on the mac. But it's an idea that will be in the back of my mind.

by Andy Wingo at April 28, 2008 03:57 PM

Jono BaconUbuntu Open Week is here!

(Jono Bacon)

Ladies and Gentleman, boys and girls, its here again - the glorious joy that is Ubuntu Open Week.

Ubuntu Open Week is a week of IRC tutorial sessions that span a range of different topics and areas about how to contribute to Ubuntu. It is an excellent opportunity to learn how to get involved in the Ubuntu community. I will be kicking off Ubuntu Open Week at 3pm UTC on Monday 28th April with the beginning introduction session. I am looking forward to meeting lots of new and up-and-coming Ubuntu contributors who are ready to rock with the Intrepid Ibex release schedule. :)

So, go and check out the schedule, and then learn how to join in and come and join the worldwide Ubuntu family.

Rock and roll. :)

by jono at April 28, 2008 07:43 AM

April 26, 2008

Mirco Müllerhack of the weekend

(Mirco Müller)

Gosh, it glows…


(click to play back, ogg/theora, ~119 KBytes)

It’s all cairo and librsvg like the old version, but this time it’s slicker because of the blur and the custom-colored SVG-icon. So now all of Daniel’s issues should be solved. He and Andrea polished the background earlier this week. Now the foreground is also almost done. So no more reasons to complain I hope *g*

by MacSlow at April 26, 2008 09:02 PM

Zeeshan Aligupnp-media-server coming soon..

(Zeeshan Ali) Next on my TODO is a desktop-wide UPnP MediaServer based on tracker. Basically, it will make all of your media availabe to other UPnP devices that is tagged as "shared via UPnP". I already have a working dummy implementation, based on code from Jorn's rhythmbox plugin. I call it "dummy" because ATM it only exports a hardcoded list of media files. Here is a screenshot of Windows Media Player playing music from it using on2share plugin:

April 26, 2008 04:16 PM

Stuart LangridgeAuditions

(Stuart Langridge)

Lots of posts stacked up over Heathrow at the moment, like one about LugRadio Live USA, but for now I just have one bit of news. This morning, Niamh, my daughter, went to an audition to join the Stagecoach Talent Agency, and she was hugely successful. So successful, in fact, that they’re already putting her forward for an audition for a part on CBeebies, the children’s TV channel in the UK.

It is possible that I may burst with pride.

Fifteen years from now when she wins the Best Actress Oscar, I can look back and say “this is where it started”. CeCe Bloom, eat your heart out.

So proud. They said she was excellent.

by sil at April 26, 2008 12:33 PM