Home Latest show Previous shows Presenters Forums Contact FAQ LugRadio Live 2006! Map
September 06, 2006

aquarius

Converter Deskbar

Another thing for Gnome Deskbar: a converter that converts one unit to another. Enter “23m in feet” and immediately get the answer that that distance is 75.46ft. Inspired by Google Calculator’s similar behaviour, you can download the program and drop it into your ~/.gnome2/deskbar-applet/handlers folder. You’ll need to have GNU Units installed as well (install the “units” package in Ubuntu). Some examples:

Convert '$50000 in pounds', '4 lightseconds in furlongs', and '4 litres in teaspoons'

Download Converter Deskbar now!

September 06, 2006 01:03 AM

Bryn_S

I should probably blog…

I’ve moved house… which is nice, three years at my old place came to an end on the 1st of September. I moved there around the 1st of June in 2003 to take up my job with the National Library. It’s work that brings on this latest move. I’m now an Assistant Warden at the student village of the University.

Not much excitment from the move, I found my old leatherman and my space pen, which was good.

I did have some drama when I woke up on the second day and found I couldn’t hear from my right ear, I found blood on my pillow and dried blood on my earlobe. Once I’d washed it out, my hearing returned. On advice from the Abnibers, I phoned NHS Direct. They asked me a series a questions and gave me the wonderful advice:

Keep an eye on your ear

Which I found be wondefully absurd :)

I’m mostly moved in now, so it’s quite nice. I’m still settling in. It wasn’t helped by having 2 marketing phonecalls in the first 5 hours of being there…

B

September 06, 2006 12:19 AM

September 05, 2006

jcmasters

WRT54GL

I bought my first WRT54GL last week. It arrived, I briefly marvelled at how well it was packaged, then turned it on, shoved OpenWRT on it and all was well. Now that’s what I call a cool Embedded Linux device. Not only does it run Linux, but it’s also flexbile and very very hackable. Definately not the D-Link ADSL-cum-crappy-modem that’s now sitting in the corner looking very unhappy with the world, in a few pieces.

In fact, I’ve decided that the best thing I can do to help my parents out with connectivity is get a el cheapo Conexant firmware based DSL router and have it bridge all external traffic through to this blue box. That’ll give me the flexbility to setup port forwards for them, to setup VPNs and video conferencing but without having to use anything other than this yummy Linksys goodness to achieve all of that. Linksys rock.

Jon.

September 05, 2006 10:34 PM

GingerDog

We do run, run, run.....

Running

On Sunday, Kat had suggested I go mountain biking - however I'm tiring of it, partly because it takes at least 30 minutes to drive to somewhere worth cycling - anyway, not wanting to be fat and lazy, I instead ran for probably an hour and a half (effectively along this 10 mile route). It tired me out somewhat, but was enjoyable.

Upon getting back from what I thought was quite a long run, Bob (the dog) showed his ability to recover quickly (or not get tired in the first place) and was trying to get me to play with him after five minutes :-/

September 05, 2006 11:14 AM

aquarius

Another DHTML Utopia review

Nate Klaiber reviews DHTML Utopia and is rather nice about it. Thanks, Nate! Did I mention that you should buy my books?

September 05, 2006 06:50 AM

September 04, 2006

tonytiger

Mail server outage

I noticed my mail server making a funny noise last night, so I shut it down. I’ve not had time to open it up this evening, for reasons that I won’t go into because they’ll just wind me up. I think the CPU fan might be dodgy.

So I’m not getting any mail at the moment. It should all be queuing on the backup MX, but until I’ve fixed the mail server, please leave a comment if you need to get in touch with me.

September 04, 2006 08:57 PM

jcmasters

No gmail, no problem

Something strange happened tonight. My gmail account had no messages in it for a change. I’ve been steadfastly using gmail for various emailing for quite a while now, but tonight, there’s no mail in there and everything else has been backed up seperately.

Although I really quite like a number of the Google services, I’ve reached a point where I don’t feel comfortable using a Google Account to track my life. I dislike hosting any email with a third party but I tollerated gmail - because it’s Google, right? Yet still, I’ve realized that the only email solution I feel comfortable with is one I run myself - and now I think I’ve almost got the reliability I need too.

Jon.

September 04, 2006 07:46 PM

mrben

Prize Time!

Yes, it’s time for an extra special prize to be awarded. Early on Saturday morning Neuro posted the 1000th comment on JediMoose! So I’m going to buy him something special, like a Mars Bar, or a pint of Guinness ;) Congratulations Neuro.

On a related note, the next post on this page will also be the 500th post, meaning we’re at approximately 2 comments per post, which is not bad IMHO.

Lastly, you may notice that the slidey menus from the RHS aren’t sliding any more. This is due to a conflict with the JavaScript libraries that are also used in the new slidey ’show comments’ bit which I’ve added. Hopefully this will be resolved soon, but at least now you can view the comments on the main page.

mrBen

September 04, 2006 12:02 PM

Uraeus

The curse of the evil power supply

So one day after returning the power supply of my Dell laptop stopped working. Due to being under warranty I was able to get a new one delivered from Dell, but it took me almost a full week to get the new one, which arrived on Friday. Turned out it was a DOA Power adapter I got...so today I figured I take now chances. I called Dell support, which I am still waiting to call me back to get them to send me yet another one, but I also ordered a new power supply from battery.co.uk based on a recomandation from Jaime. So far it looks good as they sent me a mail saying they shipped it within an hour of my order. Lets see which gets here first, the one from Battery or the one from Dell :)

September 04, 2006 11:26 AM

jono

Start your engines

Well, this is day one of my new role at Canonical. I am just setting up chunks of infrastructure and getting things up and running.

I just wanted to post a quick entry to say that if anyone wants to get in touch with me regarding anything regarding the community, you can contact me at jono AT ubuntu DOT com. You can also catch me on irc.freenode.net with the rather unimaginative nick jono. Maybe I should change my nick to l33t-mad-skillz-666?

September 04, 2006 09:01 AM

September 03, 2006

Aquarion

Journal - Black Ops Drummers

Go to BBC Scotland’s Military Tattoo page, then click on “Top Secret Drum Corps”, then watch the video.

They have black drums and neat hats

(via the monestary)

September 03, 2006 08:15 PM

davee

3 September 1939

Exactly 67 years ago, World War II began. Although there had already been a fair degree of conflict leading up to this date (both in Europe and the Pacific) it was the German invasion of Poland on 1 September 1939 that officially got the ball rolling. Two days later, Britain and France declared war on Germany and thus began the most descructive conflict in human history.

I find the history of World War II fascinating, although I’m not entirely sure why. I’m writing this blog entry in an effort to find out why.

I think my interest falls into two main areas: (1) the strategic approach to conflict, from large scale battles down to smaller-scale fighting. I play chess and have a mind which approaches many problem from a “what’s the best way to solve this?” angle; and (2) the human side, by which I mean “What on earth would it have been like to have lived through or been involved in this war?”

Regarding (1), this is a far more ‘detached from reality’ interest, where the war is reduced to strategies and tactics. Watching a documentary where the narrator presents a map of the battlefield and then explains “$PERSON attacked here, but was quickly driven back” probably actually means “dozens or even hundreds of people were killed here when $PERSON ordered an unsuccessful attack”. I think I like this aspect from an intellectual level, however. Similarly, the success of British codebreakers at Bletchley Park interests me greatly: decoding the enemy’s secret messages.

As far as (2) is concerned, think about this: imagine that everyone of the appropriate age was to be called up to fight. No sitting down in the evening to watch Eastenders, you’re stuck in a ditch somewhere, maybe only a few hundred yards from thousands of enemy soldiers who want to kill you and all your friends. Planes are dropping bombs on you, and back home they’re dropping bombs on your wife and children. You’ve been in that ditch, or others like it, for many months or even years. Many of your friends have been killed or seriously injured: you’ve witnessed much of this first hand. In addition, perhaps you’ve also killed some of the enemy. Although after a while a degree of numbness to the horror of the situation may develop, the inital terrifying fear must be incredible.

As recently as a little over 60 years ago, this was the reality in Britain, much of Europe and many other parts of the world. Many, many populations were subject to enemy occupation. And the scary part about all this is the seemingly innocuous way in which it all started. Hitler was democratically elected in Germany in 1933, for example and he certainly never wanted a war with Britain.

Given how comparitively recent history this actually is, it seems incredibly hard to understand what it was really like.

Every serious historian who studies World War II usually says that such study is necessary “to ensure that a similar tragedy never, ever happens again in the future”. Let’s hope that’s true.

September 03, 2006 06:16 PM

jcmasters

BookMooch - Trade your unwanted books!

So, I figured I should do my bit to help publicize John’s latest endeavor. You might have heard of Magnatune (if not, go check it out, Creative Commons licensed music rocks!) but you probably haven’t heard of BookMooch (yet). This is doing for book reading what magnatune has done for music listening, well, as closely as possible.

I first heard about the concept quite a while before it really happened - and I’m so glad it’s been well received so far. Effectively, BookMooch allows you to trade your unwanted books for tokens that allow you to have other books. There’s a fairness system to handle differences in international postage and a lot of people have signed up already. Including me. I’ve not got any books on offer at the moment because I’m about to ship stuff to the States - if I get time, I’ll try to offload a few unwanted ones via BM before I leave to save on shipping.

Jon.

September 03, 2006 04:30 PM

Portrait Photos

Photo: High-Resolution Portrait Photos taken by John Palmer.

So, I need some photos taken for one of the writing projects I’m working on. They needed a high resolution Black & White portrait, and I decided I might as well get some stock photos to use. So I swung by a local studio yesterday and had these taken.

Jon.

September 03, 2006 04:08 PM

Fun with telemarketeers - “The Religious Zealot”

So, I’ve been trying to think of more interesting ways to get rid of telemarketeers. The number here is on the Caller Preference Service and a bunch of other “don’t bother” lists, but they still call from time to time with fantastic offers I just shouldn’t miss…

caller: Hello, Mr. Masters!
< bit of questioning from me to find out if it's a legit. call >
caller: Are you currently using a mobile phone?
me: yeah.
caller: Which network are you with?
me: The GOD network.
caller: And are you on pay as you go or contract?
me: Neither.
caller: So how much do you pay per month?
me: Nothing. It's paid for through devine intervention.
caller: Uh, I see, that's great.

Give it a go! Be creative!

Jon.

September 03, 2006 03:42 PM

aquarius

Back from holidays

I am back!

You may not have realised I was away.

I have been in Caorle at the Villagio Hemingway with Sam and Niamh, and it was fantastic. Took quite a few pictures, too, which will be up soon. I love Italian food. I love speaking Italian. I love sun. I don’t love that I go back to work tomorrow.

September 03, 2006 02:03 AM

September 02, 2006

resiak

Object-Orientation, student-style

Come on, people. I know Java allows classes to extend others, but that's not a good reason to make classes randomly extend ArrayList for no apparent reason.

Seven times I have found this in the last hour.

Also, I know I said that we really have to document things, but ... come on:

/**
 * Return's whether this step is interactive.
 * @return      true or false
 */
public boolean isInteractive(){
    return interactive;
}

September 02, 2006 04:09 PM

Keyboards

#debian-uk on OFTC threw up a revealing diagram showing how much keyboards suck now compared to keyboards of the past.

September 02, 2006 03:38 PM

jcmasters

The world’s worst embedded Linux device

Door rings, it’s the mailman to deliver a package I missed the other day and rescheduled. I ordered the D-Link DSL-G604T ADSL router and a Linksys WRT54GL. Both of these are (intentionally) running on Embedded Linux environments because I want to manage them remotely. They’re going to be at my parent’s place, I’ll be overseas.

What I want to do is establish an ADSL connection, run some WiFi and forward a couple of ports (temporarily) into an internal machine. Nothing that should be even remotely tricky on a Linux system and in fact is not. Now, I’m not going to write about the Linksys box at this point because I know for a fact that they run just great and I’m not planning to use the vendor firmware on it anyway. However, I will (for the sake of humanity) write a little about the shockingly appaling D-Link DSL-G604T that I received in the mail this morning.

I’ve managed to find the world’s worst ever Embedded Linux device! This little fucker is apparently based on some MVL variant and the underlying Linux is actually just fine - I mean, how could you honestly screw up busybox and iptables? Even D-Link didn’t manage to do that. No, logging in on the console is the only nice thing about it. Let’s see… the web interface is very simplistic, filled with (minor), annoying bugs and even the Advanced settings are trashy. Adding Port Forwarding rules shows them in the web interface, but iptables on the device (via the undocumented telnet) confirms that they don’t actually setup the rules right. Various fora suggest all kinds of fixes (and document other classical bugs) but none work. It’s just badly done.

I could just work around D-Link’s crappy product and script the device startup, but for the fact that there’s no free space on the flash by default and I’d have to remotely reconfigure it on every reset. That’s not a problem - I mean, you can’t assume that those buying your product will want to hack it in this way. BUT they could supply it in a way that meant it worked in the first place. I decided to look for a firmware upgrade. I used the nasty windows exe installer directly after several attempts at using the web interface - and that’s about the point when the device bricked itself. No amount of factory reset button usage is bringing this thing back from the dead at this point.

So, I’ve lost a few hours, I’ve got a brick. I’m going to return it, right? Actually no. I’ve decided I’m going to help out on the OpenWRT firmware and take this fucker apart/reflash it by hand. If D-Link won’t produce a device that works, then the least we can do is to provide an alternative - and hopefully kick some idiots into trying a little harder next time. Not impressed. Meanwhile, please don’t buy this product.

Jon.

September 02, 2006 01:25 PM

jono

Cairo-fied effects dialog

As some of you will know, recently I have been hacking on effects support in Jokosher. Well, it is all working pretty well, and figured I should try and make the dialog a bit nicer and roll in some Cairo goodness. Now, I am completely new at Cairo, so this effort has been my first shot. I thought it might be nice to stick a few shots online to show you the current progress.

When you want to add an effect to an instrument, you see the Effects Dialog. This dialog allows you to add a bunch of effects, and this is what it looks like with some effects added:

Let me explain what is going on here. The top left combo box lists the effects on your system, and you can select an effect and click the Add button and it will add one of those little orange boxes. In the image above we have three effects added. The little red circle will eventually have an ‘X’ in it and delete the effect. You will also be able to drag each orange box and re-organise the order of the effects, which is crucial in many situations. Finally, you can double-click each orange box and tweak the individual effect settings. When you click it, you see a settings window pop up:

Here you can adjust the sliders in the settings dialog, and if you clicked the Play button in the first dialog, you will hear the effect change in real-time as you configure it. This makes it simple to get the effect just right. Oh, and the Preview button in the image above will be removed by the way, thats a little cruft left in to make sure those of you at the back are awake. :P

In both images there is a presets combo box where you can easily load and save effect settings as a preset. In the first box the presets are on an instrument basis, so you can easily view all of your guitar, drum, vocal presets etc. In the effect settings dialog, it will list presets for that individual effect. All the presets code is complete.

So, still plenty to work on and bugs to fix, but its really starting to sit well now. As ever, we need more helping hands with the project, so if you fancy getting involved, do get in touch. You can test this code by heading over to our Subversion server here and check out the development site at here.

September 02, 2006 02:07 AM

September 01, 2006

jono

Final thoughts

Well, today is my last day at OpenAdvantage and I have been working on a few articles that others may be interested:

Its been awesome working at OpenAdvantage, and now a new chapter opens. Onto Canonical…

September 01, 2006 02:20 PM

OnCallBald

Zimbra 4 is out

Title says it all really but Im pretty excited. The new Asterisk functionality is incorporated and the web interface can be skinned, there is support for mobile devices etc etc
I for one am downloading it right now, but if the previous versions are anything to go by it should be brilliant

Good work Zimbra guys (and gals) ! http://www.zimbra.com

September 01, 2006 09:25 AM

mrben

Trusted Computing

So much better than anything I could say


September 01, 2006 08:38 AM

August 31, 2006

GingerDog

WolvesLUG : BBQ

WolvesLUG - BBQ Meeting

Last night, we had a WolvesLUG meeting at our house - it would have been an outdoor BBQ but the weather forced us indoors.

Anyway, there was plenty of food, a good turnout, and plenty of beer - I at least was quite drunk (although I didn't realise how badly, until I lay down on the bed and noticed the room spin).

Kat made nice lemon and chocolate cheesecakes, and various people remembered to bring food. Unfortunately our fridge now has a large plate of meat in it, and although there is plenty of beer left over/behind, the thought of drinking it makes me feel slightly sick!

August 31, 2006 07:52 PM

mrben

Currently Listening To…..

OK - I confess that I generally dislike the trend for posting whatever you happen to be listening to on your blog posts, mainly because the fact that you are listening to it doesn’t actually guarantee that even _you_ like it……

But at the moment I’m currently listening to, and mostly enjoying, content from ChristianRock.net - now I know that Christian rock bands have had a bad rap in the past - everyone talks about Petra and Stryper, but wishes they weren’t ;) Not all the content on CR is good, but there is some really good stuff (if you like rock, that is). I’m particularly impressed with a piece called ‘Rebirthing’ from the band Skillet (you can listen to it on their MySpace page), but it is not by any means the only good piece of music.

Even if you’re not a Christian, then it might be worth a look (well, listen).

Enjoy ;)

mrBen

August 31, 2006 12:15 PM

fuzzix

Back to School Special!

Culled from the local paper:
[Back to School Special!]

I’m getting the Back to School beard trim.

August 31, 2006 12:01 PM

jono

Transparency in process

As I finish up my few remaining days at OpenAdvantage, a few people have mailed me with comments and thoughts about the recent update debacle with Ubuntu. Personally, I have not wanted to blog about it as I have not had a huge amount to bring to the discussion, but Mark’s post brings up some issues I do want to talk about. Now, I must stress here that I am not privy to any internal strategy at Canonical about this issue, I haven’t even started working there yet, and my blog is most certainly not a platform for me to advertise Canonical strategy, not that they would ever ask for it to be. Every word you read on this blog now and in the future are my words, so do read them as my words.

One of the reasons why I love free software is that process is transparent. When you immerse yourself in the free software ecosystem, you get used to such an ethos. You can easily read developer discussions, view bug reports, access source code, interact with the community and more. Software development is something that is performed in the open, and this transparency is essential - it is the lifeblood behind the concepts and philosophy that we call freedom and openness. As a community, these concepts are our binding agreement to be fair to each other, and transparency is the currency that is exchanged to be a part of such a functioning community.

Although transparency can be easily defined at the raw software engineering level, the waters can sometimes get a little murky when it comes to governance, structure, policy and direction. In some situations, transparency is swapped for convenience and a pressure to achieve something, preferably within the direction and roadmap agreed in the open community. With this compromise in openness, criticism and one-shot slogans often hit the newswires, with terms such as not invented here , design by committee, closed shop and cynicism spreads questioning how open and free a project really is. It is clear that there are indeed certain situations and circumstances when complete openness is either not an option or not a sane option, and such situations net dramatically different reactions. Evidently transparency, openness and freedom have no yardstick.

The Ubuntu project is an astonishing example of transparency at work. The project has defined a strong set of structures and policies to define open process, and the entire project was birthed in a culture that the development of Ubuntu within each of the many disciplines (art, docs, translations, coding, QA, a11y, packaging etc) should be community driven. I am convinced that part of the reason Ubuntu has been so successful so far is such a strong commitment to this transparency. Again, this is relatively straightforward to achieve when it comes to development, and has been for hundreds of other Open Source projects. One key example, particularly pertinent to Ubuntu is Debian. Debian have not only led free software in technology but also in defining open processes that scale. Where it does get interesting is when you mix in Canonical.

Now, again, I must be clear here - I haven’t actually started at Canonical yet, and I start on Monday, but I have been having some discussions about some projects and areas to focus on when I do start. These conversations have been with Canonical people such as Jane Silber, Mark Shuttleworth and Matt Zimmerman, and their intelligent commitment to community has been even stronger than I expected. The reason it is intelligent is a real understanding of what community actually means, and to not just deride it as something that is good for PR or cheap labour. These discussions have placed the community at the core, complete with supporting infrastructure to help things tick along. This is why Ubuntu is so popular - not only is there an open process and some solid, well developed technology, but Canonical have a real understanding of the community themselves. I don’t think I have seen any other company who hits the nail so perfectly on the head, and this is why I wanted to work there. I simply would not work for a company who did not have a clear understanding of what drives our community, and I am proud that in a few days I will be part of a company that really does “get it”.

Bringing the discussion back to the update mistake, the response was another demonstration of this open and transparent process, and how part of subscribing to such a process is to admit when you miss the target and screw something up. In the traditional IT world, a crack team of PR monkeys would have no doubt been instructed to paper over the cracks and help move the news cycle on, but the Ubuntu project instead identified the issue and worked to resolve it quickly, outlining the problem and the solution clearly on the website and elsewhere. Mark’s pleasantly candid blog post further secured the message that something went wrong, it is entirely unacceptable, and efforts are underway to stop this happening. In a traditional market, this message could be received with scepticism, but in the transparent market of Open Source and free software, you yourself can watch the open landscape for such efforts to prevent future mishaps. Mark’s hands-on approach and acceptance of the issue speaks legions about what transparency means to Canonical, and knowing him, it is not just paying lip service.

Sure, nothing is perfect, and there are many bugs to fix, problems to solve and ways to further improve this openness and transparency, and my big list has a collection of action points and areas in which I am determined to further improve the process. I don’t believe in resting on your laurels, and there is always scope to tweak and improve methods of working and refining your approach. Whenever you join a vendor and start working for them, there is always a prescribed assumption from onlookers that you will tow the party line, and always buy into the message of that vendor. I have always remained committed to only working with clueful people who have a message and ethos that agree with, and I will always be my own judge. I am looking forward to working with these clueful people in the open and transparent community we cherish so much.

August 31, 2006 01:01 AM

August 30, 2006

jcmasters

HA mail (part deux)

So, I spent a while trying to figure out how I’m going to shutdown all these machines I’ve got at home. I came up with the idea of getting some more colo to handle stuff I don’t really want based at home in the first place - well, not really, it’s more hassle than it’s worth to worry about unreliable [A]DSL connections and the like.

I prefer my email to just work. So, I decided everything needed replication. Not just in the way I’ve copied things previously - now I want live copies of mail that are synchronized, right down to the meta data for which mails I’ve read/deleted or otherwise tagged/flagged. Take a look at the MX for jonmasters.org now:

jonmasters.org.         9601    IN      MX      10 mx1.jonmasters.org.
jonmasters.org.         9601    IN      MX      20 mx2.jonmasters.org.
jonmasters.org.         9601    IN      MX      30 mx3.jonmasters.org.
jonmasters.org.         9601    IN      MX      40 mx4.jonmasters.org.
jonmasters.org.         9601    IN      MX      100 mx5.jonmasters.org.

I setup a couple more colo boxen (actually low cost VM) that can see each other over my private VPN. These are mx1 (fremont.jonmasters.org) and mx2 (london.jonmasters.org). They run exim4 and both think they’re delivering locally all of my mail. Fremont delivers into /fremont/mail/jcm/Maildir, while London delivers into /london/mail/jcm/Maildir. Since fremont.jonmasters.org is the top priority MX, most of my mail will end up there, some (mostly SPAM) will go to the secondaries. Both fremont.jonmasters.org and london.jonmasters.org export /fremont and /london over NFS over the VPN so they can see each other’s mail.

I wanted a distributed filesystem (thanks to my friends at work for suggestions) but unfortunately cannot get my colo providers to do that just yet (they’re busy moving to Xen anyway - then I can just take the matter into my own hands) so I have to have this (growing) NFS hack for the moment. I can’t just deliver mail into both directories on both machines, because that won’t help when the two are out of sync. Instead, I have looked at a variety of Maildir syncing software with a view to syncing the two machines once per minute.

First off, I looked at offlineimap. Mostly because other people seem to like it. It sucks. Not only is it badly documented, but it doesn’t work in the way you would expect, errors out if it’s not happy and likes to create lots of duplicates of mail/waste space. I won’t use it again unless it’s for something that’s a really simple syncing-mail-with-laptop scenario. Oh well.

Next, I looked at maildirsync. This is a simple looking utility, but it actually works. Through a wrapper script, I now have the machines sync the maildirs of those users for which I want this replication enabled. Each user has pretty typical procmail filters and the like, thanks to some macros abstracting the difference between hosts.

The net result from this work is that I now have several places with live copies of my mail, synced together and make it available using IMAP, Squirrelmail and through other media. Eventually, I’ll increase the number of hosts involved so that I can handle multiple failures on different continents and still have mail I never read nor reply to :-)

Jon.

August 30, 2006 10:32 PM

Aquarion

Journal - Pathologicly insane

Hmm. I appear to have depressed the bird man again. I entered one of the sick, blistered, pulsating buildings and got stabbed up by a short ninja.

I’m not entire sure why.

I’ve just been introduced to the existence of a game called “Pathologic”, which has been warping my brain for a little while now.

To describe Pathologic as weird would be an understatement of the “golly, that sky’s a bit high up, isn’t it?”, “Pluto, eh? bit nippy”, “That crack cocaine stuff’s a bit moreish” school. So you have this game of abstract concepts, non-obvious plotlines and surreal suggestion, wrapped up in a tissue of self-awareness. One of the interesting things about the idea of story and style in games is that the industry has a tendency to ignore hundreds of years of theatrical style and study in favour of duplication of modern Hollywood styles or reinventing the wheel, in this we have a startlingly different – almost Artaudian – level of unreality. So this starts off in a weird place to begin with.

Then you have the fact that I’m playing the demo, which apparently drops you in on day 4 of the character’s adventures. In fact, you’re dropped in at the start of Act 4, which starts with a symbolic play about the events of the previous day in game time, after which (unless you leave early) you pick which character to play. The demo only has one character you can play, out of three.

The game, incidentally, boasts 24 hours of game play per character, and different plots per character, so 72 hours solid game play, so, that’s Day 4, or halfway into the story, with an introduction of what happened the day before, but no grander plot exposition. Which is weird.

Then we get into the plot exposition, which explains who your character is. He then kills some people. This apparently all happens before the game starts (as in, before the full game starts, not just the demo). Then we leap back into Day 4.

All of this is presented in a translation from the original Russian which meanders from the beautifully poetic though the gardens of mildly confusing and into the mud of the entirely incomprehensible. Often in the same sentence. So, you have a game that is designed to confuse you, wrapped in language you can’t decipher, and you’re dumped into the middle of the plot.

If I can work though the problems (I haven’t even started on the game play, you’ll notice) it could be worth my while to go though it, just to see how glorious the story and the game could become. Apparently the German translation is awesome, and the original Russian is wonderful. And, of course, I need an excuse to learn Russian…

I suspect I’m going in search of the full game of this one…

... for a slightly more well-rounded review of the full game, try the inimitable John Walker’s Eurogamer review.

August 30, 2006 09:08 PM

tonytiger

Darling Dapper

I took Alan’s advice to move on to reworking my Meeja Box to give me a platform suffciently up-to-date to get MythTV up and running. After a bit of a set back during the install (the Dapper server kernel doesn’t work on EPIA boxes, so I had to use the alternate CD) I got the necessary stuff installed and working within about a day of starting over, so it’s now back to the state it was in before I started the reinstallation. This was mainly due to the copious notes I made the first time around.

But I’m happy with the reinstall. The Dapper kernel includes the drivers and patches I’d had to add into my custom kernel under Sarge and X.org has the Unichrome stuff in it, which did cause a few problems as the driver had many more options than under the old install. Still, worked it all out eventually. Some AVIs that had previously had problems playing back (lots of “VOB not coded” type messages and video pauses) now play back fine. I made more notes, which are here. I’m going to wait for MythTV 0.20 to be released before I worry about installing it. I’ve lived with the “SSH interface” for over a year so I’m sure I can wait a little longer. :)

August 30, 2006 06:28 PM

mrben

CampAdmin - must try harder….

Having been taken to camp as the ‘techie dude’, and lumbered with the responsibility of running the shop and bank, I decided it was time to brush the dust of the CampAdmin tool that I wrote 2 years ago for camp at Alltnacriche. Back in January/February I had lofty ideas about rebuilding the interface, and fixing all the problems. In reality, I did none of it, which means that there are still some issues with it, namely:

  • Probably the biggest, and likely unsolvable, problem is the need to scan the entire stock of the shop at some point before the tuck shop opens. I reckon it took me about 3-4 hours this time. I’m not sure there’s an easy way around this, unless I can persuade SU to give me a database dump of their stock system beforehand, which is unlikely ;)
  • The other major, non-software, problem was the insistence of the onsite staff that all items must be scanned on their system as well as ours. This took ages, and seemed relatively pointless, IMHO. Next year I may see if they will let me manually enter the details from a post-shop report, which would be easy enough to generate, which would simply list the product codes and the quantity sold.
  • The reports are crap. Really, they are. Not only are the reports I have created often a bit useless, but there are a number that are obvious by their absence. And the wxPython reporting engine is, to say the least, a bit crap. There are 2 solutions - see if they’ve upgraded the engine, and build a new reporting suite onto the existing tool, or use an already existing reporting tool to pull data off the MySQL backend. It would be interesting to see how quickly I could pull something together using OpenOffice.org’s new Base program.
  • The current set up allows no way to add a camper with a given ID - the ID is generated by the tool. This is a problem if you given someone a big sheet of barcodes to assign to people rather than doing it in advance. In the end I entered them all in by hand through MySQL.
  • The photos never happened _again_ - this functionality either needs removed completely, or I need to work out a good way of getting all the photos on the system quickly and easily.
  • There _still_ is no way to create negative value items - while this sounds pointless, when it comes to things like refunds, or reinstating balances after a tuckshop ban, it would be really helpful.
  • For some reason you still need to click on the first cell in the Shop system before you can start scanning. It should really be more seamless than this - mouse interaction should be a bare minimum.
  • A dedicated tuckshop ban system might be a nice addition
  • A way of calculating the cash in hand seperate from the main system might be a really good idea, even if it is tied to the existing system.

There were, however, some good things ;)

  • It works! I’m actually quite proud of the system, and it got one or two envious looks from people ;)
  • The barcode scanner still works really well, and using the Shop system was actually really easy
  • Xubuntu was an excellent platform to run it on - nice and slender on the dedicated PIII 500/128MB RAM I had it on. I was very impressed with what the Xubuntu guys have done.
  • I managed to fix a couple of small problems with the system while I was there - it was nice to know that a) my Python isn’t too rusty, and b) my ‘proper’ job has helped improve my SQL skills.

So - plans for the future? (Whether or not this actually happens is up for debate):

  • I’d like to rebuild the interface with Gtk, using Glade. I think I can do this really quickly, and prettier too :)
  • I’d really like to get hold of a touch screen, and replace any mouse input with touch screen, and include some of the touch screen Point of Sale goodness that we see in shops these days
  • I’d like to network 2 machines, and run 2 tills over a network, with perhaps the database running on a dedicated backend/reporting server
  • I definitely need to fix all the problems, especially the reporting issues.
  • Ultimately, some seperate, reporting/management system, that provides a simple interface for managing all the camp finances would be outstanding.

Of course - if somebody would like to pay me to do the work, I wouldn’t say no ;)

Although it’s not been distributed, this is totally GPL code, so if anyone wants it, just let me know.

mrBen

August 30, 2006 03:08 PM

schwuk

Triumphant Return

I’m now back after a weeks holiday in France, preceded by an intensive week of work at my day job handing off a particularly long running project to its new victim maintainer.

Unfortunately I now seem to have been struck down by some sort of bug that whilst not serious enough to prevent me from work, it does make the experience pretty unpleasant.

In other news it looks like I should have an article published in the next issue of Linux User & Developer and I’m writing a couple more for other ‘outlets’. Futher bulletins as events warrant.

August 30, 2006 03:01 PM

Aquarion

Journal - Freedom of Cycling

So. I was checking my comics this morning (Or the important ones right now, which are Narbonic, Schlock, QC & S*P) when I saw on the latter an advert for FreeMesa.org, an organisation devoted to small groups of people in various local areas who give things they don’t want to each other instead of chucking them out.

Golly, I thought, first tea still unfinished, that sounds familiar. Isn’t that what Freecycle do?

You may not be familiar with Freecycle, but that is, basically, what they do. Or, actually, that is What Freecycle Is. A Freecycle List is a list on Yahoo Groups where people give things to each other. Upon a little research I discovered that Freecycle itself is a trademark of a non-profit organisation with corporate sponsorship.

And by “Research”, I mean “I read their web site”. This is the modern meaning of the word, as far as I can tell.

So The Freecycle Network is an organisation which is basically a directory of mailing lists hosted on someone else’s technology with volunteers running them about people giving things away for free. What could anyone possibly object to enough so go so far as to set up a rival? All they can do is have the name.

Oh. Right.

Freecycle, who have seen what is happening with the verb to google (look at the link very carefully for bonus irony points) have decided to Take Action, and said

In legalese, the use of the term ‘Freecycle’ denotes a gifting service which is officially approved by the nonprofit organization ‘The Freecycle Network,’ and one that the public can expect to adhere to certain standards. The Freecycle Network must approve any e-mail list or web site that uses the term ‘Freecycle’ in its name and provides any sort of exchange service. (A relevant point for us to note internally is that we have to demonstrate a “concerted” effort.

Cite, plus bonus ‘How you should talk bout FC’ stuff

Grist have a good story on the Freecycle group turning into arseholes. Note that up until recently the Freecycle home page talked about freecycling.

I’m torn on this. On the one side, I can see the group wants to protect its trademark. On the other, it’s basically saying “That thing about the process being ‘freecycling’? Yeah, we’ll sue you for that now”. Also, whereas Google is a huge corporate entity now, I’m not entirely sure why Freecycle – a movement devoted to giving things away for free and using other people’s (freely given) resources to do so – is becoming one.

August 30, 2006 06:11 AM

August 29, 2006

Eyecon

Back, But Leaving

It's been over a year since I posted any blog entries, but I've decided that I'll give it another go (again). But not here. Instead, I've installed WordPress onto my own website and I'll continue to blog there instead. I've also imported all the posts from here onto that blog. So the new location for my blog is: http://www.mattmarsh.net/blog/ So long, blogspot.com... thanks for everything.

August 29, 2006 08:46 PM

Treenaks

Even More Graphs

In the past few weeks I've been steadily improving my graphing framework, and I've added a lot of new plugins:

  • Process statistics (number of dead/running/etc. processes)
  • Memory usage (free/used)
  • Logfiles (every line, or multiple regexes for different lines)
  • Database contents (using COUNT() queries for example)

If you like graphs, check it out, and give me some feedback ;)

August 29, 2006 07:09 PM

mrben

Mislaid - a technical review

I said in my post-camp post that I would post some more details about some of the stuff. One of things I wanted to talk about was the change in video editing under Linux in the past 2 years since I did any serious work.

One of the biggest changes was the amount of dropped frames when importing DV into Kino from the camera. Last time this was a huge number, resulting in poor quality output. This time, the total dropped frames for all the video (which was probably 4-5 times longer than the amount of tape for the previous effort) was 0. Zero. None. To say I am impressed is an understatement. This could be down to a number of things that had changed - it was a different firewire cable for a start, and brand new tape. But it’s also been 2 years of driver development, and Kino development. This was probably the best thing.

Kino, to be honest, hasn’t really moved much in terms of features in the last 2 years. It did the job, and the results are reasonably good, but it’s format is frustrating for me, and it’s FX set is quite limited compared to other products, even free (as in beer) stuff like (*shudder*) Windows MovieMaker. And there are some thing that are needlessly complicated to do - for instance, trying to insert some video into a scene, but not overwriting the audio from the scene.

Perhaps the biggest frustration was not being able to improve the sound quality. Although Audacity has many effects, a lot of them result in very ‘digital’ sounding noise, which is not what you want. While I am looking forward to see Jokosher develop, I suspect that it will suffer from the same problems with LADSPA plugins.

I’m hoping that, within the next 12-18 months, PiTiVi or Diva will reach a level of features that matches Kino - certainly both have interfaces that look much nicer to use.

In summary - you _can_ do a decent job under Linux with Video Editing, but there are limitations to it. Mislaid is an OK example of what you can do (as long as you ignore the sound quality, script and poor acting ;) ). But hopefully the scene is about to change, as these 2 new pieces of software mature.

mrBen

August 29, 2006 03:36 PM

Uraeus

End of vacation

So I have been away for two weeks on vacation. While I figured I needed it I don't think I realized how much I actually needed it :) Spent most of my time in Norway offline, partly by choice. Just spending two weeks relaxing either at home or hiking through the Oslo forest or hanging out with friends. I also grew myself a little beard while on vacation, and I think I will try to keep it around for a while :)

Since my experiment with bringing Norwegian Rakfisk worked our quite will after Christmas I decided to bring along another item of Norwegian food this time. So hopefully later this week I will be able to invite people to a delicous meal based on whale meat.

August 29, 2006 11:33 AM

ChairmanMioaw

House Bought :-)

We've managed to get an offer of 2.5k below asking accepted on the house we wanted. So hopefully in 3 months or less, we will be living here. For a short time only, I've put up this pdf

Wooohooo!

August 29, 2006 10:09 AM

House Sold at Last

This morning, after an encouraging viewing at the weekend, we received an offer for our house, which after a little negotiation we have accepted.

Out initial 3 options in Bromsgrove have been reduced, by sales, to 1. Thankfully its one that we both liked - David's favourite, and the cheapest of the 3. We've put in an offer 5k below asking and we'll see how that goes. I'm very excited though!

Hopefully, as there is no chain below us, and probably not one above (the vendors of the place we've offered on say they're moving into a canal boat, but we've been bitten by that sort of thing before) things will move pretty quickly, and the dreaded commute will be over, which will mean more walking, an an extra hour and a half each day

Yippee!

August 29, 2006 09:04 AM

August 28, 2006

Aquarion

Journal - Status

So, yes, updates.

Shit happens, as it tends to. Having been working on a redesign of AqCom for eight months, having shelved three and dumped two entirely, it looks like the stuff on the horizon is going to render all that work moot for the time being.

Yeah, I’m being cryptic. You’ll see what I mean on Friday.

Talking of Cryptic, I was playing City of Villains earlier. I was on a “Clear all heroes” mission and had cleared everything that stood still, but was waiting for the patrols to find me so I could wipe them out too.

They didn’t find me. That is, I stood in the middle of the corridor, blask smoke surrounding me, golden sparks from my feet, and the patrol skulked around me. I do believe the wouldn’t have noticed me at all had I not set them on fire.

Villain, remember.

I’m trialing World Of Warcraft again. After the ease of teaming and working and… everything that City of Heroes gives you, I’m finding the idea of attempting to build an entire social interface for a game as big as WoW on a substandard IRC client hellish. “LFG L31 Pally F RFD” pops up in the chat window. LFG… looking for group, yes. L31 Pally? Oh, Paladin. I’m one of those. Not L31 yet… RFD? Real fucking donkeys? Ready for domination? Red Flowers Die? Alt-Tab GoogleGoogle Razorfen Downs. Right. Ignore that then…

How is this the most popular game in the universe again?

Discworld (Specifically Vetinari) Art. Good

I’m writing a game, again. Or, rather, I’m writing the same game I was designing a couple of years ago. It’s a web-based racing-car management thing, with the selling point being scheduled races you can watch online, and change strategy as it goes if you like. It should be cool.

Right now, however, I have to work out exactly how the damn thing works from the high-concept downwards. Currently it’s got A basic page and the world’s most whimsical signup page.

Right now, however, I’m attempting to design a non-deteministic transparent yet non-linier points based research system which will be obvious in its calculations yet occasionally suprising and easy to use without being exploitable.

It’s suprisingly not as easy as it sounds.

August 28, 2006 09:06 PM

GingerDog

phpwm: wiki

PHPWM Wiki

After a short debate on the mailing list; there's now a wiki for phpwm.

August 28, 2006 08:49 AM

Propel ...

Propel

If you get turned on by Object Relational Mapping tools, or alternatively you're fed up of writing quite so much SQL when writing web applications try reading this guide on Propel

August 28, 2006 08:45 AM

jono

Getting started with GStreamer with Python

You know, there are tonnes of undocumented things out there. Really, really cool technologies that should be getting used more are not getting used as much because there lacks decent docs. And, to make matters worse, the developers naturally just want to get on and write the software. So, I would like to urge everyone who reads this (and I am thinking you ‘orrible lot on Planet GNOME in particular) should write an article about something that you have discovered that isn’t particularly well documented. This could be a technique, a technology, skill or something. Lets get some Google juice pumping and get some extra docs to help people get started. :)

So, with this in mind, I am going to write a simple first guide to getting started with GStreamer using the excellent Python bindings. This tutorial should be of particular interest if you want to hack on Jokosher, Pitivi or Elisa as they, like many others, are written in Python and use GStreamer.

Ready? Right, lets get started with the pre-requisites. You will need the following:

  • GStreamer 0.10
  • Python
  • PyGTK (often packaged as python-gtk2)

You will also need a text editor. Now, some of you will want to have a big ‘ole argument about which one that is. Come back in four hours and we can continue. :P

An overview

So, what is GStreamer and how do they help you make multimedia applications? Well, GStreamer is a multimedia framework that allows you to easily create, edit and play multimedia by creating special pipelines with special multimedia elements.

GStreamer has a devilishly simple way of working. With GStreamer you create a pipeline, and it contains a bunch of elements that make that multimedia shizzle happen. This is very, very similar to pipelines on the Linux/BSD/UNIX command line. As an example, on the normal command line you may enter this command:

foo@bar:~$ ps ax | grep "apache" | wc -l

This command first grabs a process listing, then returns all the processes called “apache” and then feeds this list into the wc command which counts the number of lines with the -l switch. The result is a number that tells you how many instances of “apache” are running.

From this we can see that each command is linked with the | symbol and the output of the command on the left of the | is fed into the input on the command on the right of the |. This eerily similar to how GStreamer works.

With GStreamer you string together elements, and each element does something in particular. To demonstrate this, find an Ogg file (such as my latest tune :P ), save it to a directory, cd to that directory in a terminal and run the following command:

foo@bar:~$ gst-launch-0.10 filesrc location=jonobacon-beatingheart.ogg ! decodebin ! audioconvert ! alsasink

(you can press Ctrl-C to stop it)

When you run this, you should hear the track play. Lets look at what happened.

The gst-launch-0.10 command can be used to run GStreamer pipelines. You just pass the command the elements you want to play one by one, and each element is linked with the ! symbol. You can think of the ! as the | in a normal command-line list of commands. The above pipeline contains a bunch of elements, so lets explain what they do:

  • filesrc - this element loads a file from your disk. Next to the element you set its location property to point to the file you want to load. More on properties later.
  • decodebin - you need something to decode the file from the filesrc, so you use this element. This element is a clever little dude, and it detects the type of file and automatically constructs some GStreamer elements in the background to decode it. So, for an Ogg Vorbis audio file, it actually uses the oggdemux and vorbisdec elements. Just mentally replace the decodebin part of the pipeline for oggdemux ! vorbisdec and you get an idea of what is going on.
  • audioconvert - the kind of information in a sound file and the kind of information that needs to come out of your speakers are different, so we use this element to convert between them.
  • alsasink - this element spits audio to your sound card using ALSA.

So, as you can see, the pipeline works the same as the command-line pipeline we discussed earlier - each element feeds into the next element to do something interesting.

At this point you can start fiddling with pipelines and experimenting. To do this, you need to figure out which elements are available. You can do this by running the following command:

foo@bar:~$ gst-inspect-0.10

This lists all available elements, and you can use the command to find out details about a specific element, such as the filesrc element:

foo@bar:~$ gst-inspect-0.10 filesrc

More about GStreamer

OK, lets get down and dirty about some of the GStreamer terminology. Some people get quite confused by some of the terms such as pads and caps, not to mention bins and ghost pads. It is all rather simple to understand when you get your head around it, so lets have a quick run around the houses and get to grips with it.

We have already discussed what a pipeline is, and that elements live on the pipeline. Each element has a number of properties. These are settings for that particular element (like knobs on a guitar amp). As an example, the volume element (which sets the volume of a pipeline) has properties such as volume which sets the volume and mute which can be used to mute the element. When you create your own pipelines, you will set properties on a lot of elements.

Each element has virtual plugs in which data can flow in and out called pads. If you think of an element as a black box that does something to the information that is fed into it, on the left and right side of the box would be sockets in which you can plug in a cable to feed that information into the box. This is what pads do. Most elements have an input pad (called a sink and an output pad called a src). Using my l33t ASCII art mad skillz, this is how our pipeline above looks in terms of the pads:

[src]  !  [sink  src]  !  [sink  src]  !  [sink]

The element on the far left only has a src pad as it only provides information (such as the filesrc). The next few elements take information and do something to it, so they have sink and src pads (such as the decodebin and audioconvert elements), and the final element only receives information (such as the alsasink). When you use the gst-inspect-0.10 command to look at an element’s details, it will tell you which pads the element has.

So, we know we have pads, and data flows through them from the first element on the pipeline to the last element, and now we need to talk about caps. Each element has particular caps and this says what kind of information the element takes (such as whether it takes audio or video). You can think of caps as the equivalent rules on a power socket that says that it takes electricity of a particular voltage.

Lets now talk about bins. A lot of people get confused about bins, and they are pretty simple. A bin is just a convenient way of collecting elements together into a container. As an example, you may have a bunch of elements that decode a video and apply some effects to it. To make this easier to handle, you could put these elements into a bin (which is like a container) and then you can just refer to that bin to in turn refer to those elements. As such, the bin becomes an element. As as an example, if your pipeline was a ! b ! c ! d, you could put them all into mybin and when you refer to mybin, you are actually using a ! b ! c ! d. Cool, huh?

Finally, this brings us onto ghost pads. When you create a bin and shove a bunch of elements in there, the bin then becomes your own custom element which in turn uses those elements in the bin. To do this, your bin naturally needs its own pads that hook up to the elements inside the bin. This is exactly what ghost pads are. When you create a bin, you create the ghost pads and tell them which elements inside the bin they hook up to. Simple. :)

Writing some code

To make this GStreamer goodness happen in a Python script, you only need to know a few core skills to get started. These are:

  • Create a pipeline
  • Create elements
  • Add elements to the pipeline
  • Link elements together
  • Set it off playing

So, lets get started, we are going to create a program that does the equivalent of this:

foo@bar:~$ gst-launch-0.10 audiotestsrc ! alsasink

Here we use the audiotestsrc element which just outputs an audible tone, and then feed that into an alsasink so we can hear it via the sound card. Create a file called gstreeamertutorial-1.py and add the following code:

#!/usr/bin/python

import pygst
pygst.require("0.10")
import gst
import pygtk
import gtk

class Main:
    def __init__(self):
        self.pipeline = gst.Pipeline("mypipeline")

        self.audiotestsrc = gst.element_factory_make("audiotestsrc", "audio")
        self.pipeline.add(self.audiotestsrc)

        self.sink = gst.element_factory_make("alsasink", "sink")
        self.pipeline.add(self.sink)

        self.audiotestsrc.link(self.sink)

        self.pipeline.set_state(gst.STATE_PLAYING)

start=Main()
gtk.main()

Download the code for this script here.

So, lets explain how this works. First we import some important Python modules:

import pygst
pygst.require("0.10")
import gst
import pygtk
import gtk

Here the GStreamer modules (pygst and gst) are imported and we also use the gtk modules. We use the GTK modules so we can use the GTK mainloop. A mainloop is a process that executes the code, and we need some kind of mainloop to do this, so we are using the GTK one.

Now lets create a Python class and its constructor:

class Main:
    def __init__(self):

Now, to the meat. First create a pipeline:

self.pipeline = gst.Pipeline("mypipeline")

Here you create a pipeline that you can reference in your Python script as self.pipeline. The mypipeline bit in the brackets is a name for that particular instance of a pipeline. This is used in error messages and the debug log (more on the debug log later).

Now lets create an element:

self.audiotestsrc = gst.element_factory_make("audiotestsrc", "audio")

Here you create the audiotestsrc element by using the element_factory_make() method. This method takes two arguments - the name of the element you want to create and again, a name for that instance of the element. Now lets add it to the pipeline:

self.pipeline.add(self.audiotestsrc)

Here we use the add() method that is part of the pipeline to add our new element.

Lets do the same for the alsasink element:

self.sink = gst.element_factory_make("alsasink", "sink")
self.pipeline.add(self.sink)

With our two elements added to the pipeline, lets now link them:

self.audiotestsrc.link(self.sink)

Here you take the first element (self.audiotestsrc) and use the link() method to link it to the other element (self.sink).

Finally, lets set the pipeline to play:

self.pipeline.set_state(gst.STATE_PLAYING)

Here we use the set_state() method from the pipeline to set the pipeline to a particular state. There are a bunch of different states, but here we set it to PLAYING which makes the pipeline run. Other pipeline states include NULL, READY and PAUSED.

Finally, here is the code that create the Main instance and runs it:

start=Main()
gtk.main()

To run this script, set it to be executable and run it:

foo@bar:~$ chmod a+x gstreamertutorial-1.py
foo@bar:~$ ./gstreamertutorial-1.py

You should hear the audible tone through your speakers. Press Ctrl-C to cancel it.

Setting properties

Right, lets now add a line of code to set a property for an element. Underneath the self.audiotestsrc = gst.element_factory_make("audiotestsrc", "audio") line add the following line:

self.audiotestsrc.set_property("freq", 200)

This line uses the set_property() method as part of the element to set a particular property. Here we are setting the freq property and giving it the value of 200. This property specifies what frequency the tone should play at. Add the line of code above (or download an updated file here) and run it. You can then change the value from 200 to 400 and hear the difference in tone. Again, use gst-inspect-0.10 to see which properties are available for that particular element.

You can change properties while the pipeline is playing, which is incredibly useful. As an example, you could have a volume slider that sets the volume property in the volume element to adjust the volume while the audio is being played back. This makes your pipelines really interactive when hooked up to a GUI. :)

Hooking everything up to a GUI

Right, so how do we get this lot working inside a GUI? Well, again, its fairly simple. This section will make the assumption that you know how to get a Glade GUI working inside your Python program (see this excellent tutorial if you have not done this before).

Now, go and download this glade file and this Python script. The Python script has the following code in it:

#!/usr/bin/python
import pygst
pygst.require("0.10")
import gst
import pygtk
import gtk
import gtk.glade

class Main:
    def __init__(self):

        # Create gui bits and bobs

        self.wTree = gtk.glade.XML("gui.glade", "mainwindow")

        signals = {
            "on_play_clicked" : self.OnPlay,
            "on_stop_clicked" : self.OnStop,
            "on_quit_clicked" : self.OnQuit,
        }

        self.wTree.signal_autoconnect(signals)

        # Create GStreamer bits and bobs

        self.pipeline = gst.Pipeline("mypipeline")

        self.audiotestsrc = gst.element_factory_make("audiotestsrc", "audio")
        self.audiotestsrc.set_property("freq", 200)
        self.pipeline.add(self.audiotestsrc)

        self.sink = gst.element_factory_make("alsasink", "sink")
        self.pipeline.add(self.sink)

        self.audiotestsrc.link(self.sink)

        self.window = self.wTree.get_widget("mainwindow")
        self.window.show_all()

    def OnPlay(self, widget):
        print "play"
        self.pipeline.set_state(gst.STATE_PLAYING)

    def OnStop(self, widget):
        print "stop"
        self.pipeline.set_state(gst.STATE_READY)

    def OnQuit(self, widget):
        gtk.main_quit()

start=Main()
gtk.main()

In this script you basically create your pipeline in the constructor (as well as the code to present the GUI). We then have a few different class methods for when the user clicks on the different buttons. The Play and Stop buttons in turn execute the class methods which in turn just set the state of the pipeline to either PLAYING (Play button) or READY (Stop button).

Debugging

Debugging when things go wrong is always important. There are two useful techniques that you can use to peek inside what is going on in your pipelines within your GStreamer programs. You should first know how to generate a debug log file from your program. You do so by setting some environmental variables before you run your program. As an example, to run the previous program and generate a debug log called log, run the following command:

foo@bar:~$ GST_DEBUG=3,python:5,gnl*:5 ./gstreamertutorial.py > log 2>&1

This will generate a file called log that you can have a look into. Included in the file are ANSI codes to colour the log lines to make it easier to find errors, warnings and other information. You can use less to view the file, complete with the colours:

foo@bar:$ less -R log

It will mention it is a binary file and ask if you want to view it. Press y and you can see the debug log. Inside the log it will tell you which elements are created and how they link together.

Onwards and upwards

So there we have it, a quick introduction to GStreamer with Python. There is of course much more to learn, but this tutorial should get you up and running. Do feel free to use the comments on this blog post to discuss the tutorial, add additional comments and ask questions. I will answer as many questions as I get time for, and other users may answer other questions. Good luck!

…oh and I haven’t forgotten. I want to see everyone writing at least one tutorial like I said at the beginning of this article. :)

August 28, 2006 01:15 AM

August 27, 2006

jono

New song: Beating Heart

I am proud to announce my brand new song, Beating Heart.

This is a thick, heavy, catchy metal tune with plenty of bouncy riffs, pounding double bass drums and a melodic chorus. The song is about the rather grubby subject of war, and looks at how both sides can justify their position. Full lyrics are available with the song.

DOWNLOAD: Ogg (9.1MB) MP3 (6.3MB)

August 27, 2006 07:47 PM

davee

Neuromancer, Pluto, LDAP, CA

It’s been a while since I’ve written here: busy, again, unsurprisingly.

Neuromancer

I finally got around to reading “Neuromancer”, the famous ‘cyberpunk’ novel by William Gibson, which has the reputation of having spawned a lot of ‘net culture and the movie The Matrix. My opinion? It’s not a very good book at all. It’s certainly not very easy to read: the deliberately strange jargon is almost impossible to follow at times and the plot is too obscure and shallow to make any real sense. I thought that this was a book that I ‘ought’ to read, given its reputation, but I almost gave up about 1/3 of the way through. I persevered, but only because I don’t like leaving books unfinished. Not recommended.

Pluto

Pluto is not a planet any more. It is a dwarf planet. Or perhaps a mass-challenged planet. Anyway, it seems odd that the classical nine planets are now confined to the history books. But, given that there are many (maybe dozens or even hundreds) of Kuiper Belt objects of a similar size to Pluto, scientifically it has no special status other than the fact that it was the first one to be discovered. Pluto’s still a very interesting object, though: its primary satellite Charon is so large that the two of them orbit around a point in space which lies between the two. I think this means that technically this means they are a double (dwarf) planet system. There are also a couple of additional satellites (Nix and Hydra) which orbit the Pluto/Charon pair.

LDAP, CA

Work-wise, lately a lot of effort has been put into getting our LDAP directory into a good state to be used ‘for real’: much of this work has been done by the PFY, but it’s been interesting seeing the uses to which this setup can be put. Ultimately, we’re going to be serving up Samba for Windows XP machines with LDAP as the authentication backend. Anyway, I’m looking forward to the time when we can stop configuring LDAP, tweaking LDAP and so on, and actually just use the thing!

Something else new which I’ve been investigating is SSL service certificates and being a Certificate Authority. This was initially triggered by the LDAP development, but it has a much wider scope of course. We’ve created a departmental Certificate Authority (CA) and it is being used to sign all SSL services on the network. The CA certificate is being deployed to all systems so that they will ‘automatically’ recognise correctly-certificated services as valid, which will be helpful and give a more polished feel to the way that some services are made available.

August 27, 2006 06:50 PM

h|barbobot

Thomas Jefferson

What country before ever existed a century & half without a rebellion? & what country can preserve its liberties if their rulers are not warned from time to time that their people preserve the spirit of resistance? Let them take arms. The remedy is to set them right as to facts, pardon & pacify them. What signify a few lives lost in a century or two? The tree of liberty must be refreshed from time to time with the blood of patriots & tyrants. It is its natural manure.

August 27, 2006 08:45 AM

Bryn_S

An apt quote…

From Eureka

Henry: We Missed!

Yes, yes you did… So much potential and you missed…

B

August 27, 2006 12:45 AM

August 26, 2006

neuro

Phill Jupitus Voice Overs: Nooooooooooo!

Sent to Sky and Phill Jupitus a couple of minutes ago:

To: phill.6music@bbc.co.uk, skydigital@bskyb.com

Hi Phill / Sky,

I’d like to complain about the ridiculous voice overs being used during the credits of movies on Sky Movies. I understand you want to promote the showing of all six Star Wars movies on the Sky movie channels, and the trailers have been both entertaining and fun.

However, is there really a need to hear Phill Jupitus waffle on about the next Star Wars movie to be shown for a good two to three minutes while the credits are rolling to the movie we’ve just seen? I don’t think so.

The real insult is that you’ve gone to all the effort to show Star Wars: Episode IV - A New Hope this evening in its original widescreen ratio, in Dolby Digital sound, and it was utterly fantastic, but you completely ruined the evening with the completely unnecessary voice-over about The Empire Strikes Back being shown next Saturday night. By all means have a quick 10-15 second voice over, I can almost tolerate that, but to have to listen to someone - even someone as entertaining as Phill - waffle on about his favourite bit in Empire (when Chewie’s head pops up from behind a snow drift? In the probe blowing up scene? Really?) takes the biscuit.

I can’t believe Sky are passionate about movies, or that Phill is passionate about Star Wars, when this is the way you treat the actual movie you’ve been promoting for the last month, never mind abusing other movies in the last week with this awful voice over.

Please make it go away.

Yours, someone who has paid a lot of money for Sky Movies in the past, a very grumpy Sky Digital subscriber and BBC 6Music listener: William Anderson, Glasgow.

I hate complaining to Sky, you rarely get somewhere unless you’ve really been messed about, i.e. by installers. I doubt anything will come of this, but with luck Phill might get shamed into making some sort of public apology for whoring himself so blatantly on Sky. I mean really, a good two minutes spent over the credits filled with waffle. Were John Williams dead, he’d be spinning in his grave. In prestissimo, no doubt.

August 26, 2006 09:24 PM

Elleo

New Guitar

Got a train in to Koln today and bought myself a nice new Dobro (all quite the challenge to my poor German skills) and have started to learn to play some nice mellow sliding blues. Here’s a picture:

My new Dobro

It’s suprising how loud a little guitar can be :) .

August 26, 2006 05:30 PM

OnCallBald

Encrypted webmail, simplified

While you could always excrypt emails using a webmail service, its always been a bit (well a lot) of a pain in the arse if we are honest. We would need to compose and encrypt the email independantly and then past the output into the webmail client, decoding at the other end was the same in reverse and as a result we rarely bothered.

Now, thanks to a new service called Freenigma, things are a lot simpler. This is a new service and its still in beta but it plugs right into certain services (gmail, yahoo and MSN) already
The Freenigma button in Gmail

The good news is that you dont have to worry about key management but the bad news is that you dont have to worry about key management. What I mean about this is that while its nice to not have to worry about managing your keys, the provider (Freenigma) hold your private key. Now the clearly state that they record/log nothing but its still a concern that they hold your private key.

Decrypting an email in Gmail

Currenlty you can only encrypt your emails to friends if your friends have a Freenigma account also, but there are apparently plans to change this.

It might not be a perfect system but it adds that little bit more security to our email lives and I for one like it. I just wish someone would write something like this that you didnt have to trust a third party with your keyrings but hey, maybe one day.

August 26, 2006 05:20 PM

Bryn_S

Joe Everyman…

As an addon to Dan’s post about Eureka, I cast my mind back to my Religious Thriller plotline generator and thought it was time to post another one in the series.

I found the form for creating male leads in most US TV Shows:

Wanted - Lead Character for TV Show

Physical Description of Character and Backstory
Must:

  • be Male, White, mid 30s to early 40s, must have dark hair and good teeth.
  • be a serving police officer, a retired police officer or an agent with a high level government law enforcement agency.
  • have either divorced or have lost his wife in tragic circumstances
    • If divorced, it will be because he was too dedicated to the job and his wife couldn’t handle his dedication to the job
  • be happy to be made to look like an idiot by the other characters and have everything explained to them in simple terms.
  • have a teenage daughter who’s now rebelious given her father’s lack of attention during her formative years and has now become anti-establishment or a son in his late teens who is determined not to be as emotionally crippled as his father.

Character Details
The character will have a solid, dependable American name. The first name will be one syllable long, like Jack or Stan or John. The last name will be a two-syllable name to our audience don’t have to remember anything complicated. Given our lack of imagination, we’ve settled on Jack Carter. The first name is nice and easy, and the second was the name of a President! (a democrat admitedly, but still a President! you can’t get more American than that).

Plot Details
The show will be a standard science fiction type show. Weird things will happen and the character will investigate. He should find something he can’t work out or notice something is wrong and consult his side-kick to explain it all. All the effects will be linked back to a nearby lab or someone working for the nearby lab. Given we’re lazy, our three main plots will be:

  • Scientist of the week tries an experiment which goes badly, tries to fix it and dies in the process, leaving it to our Joe Everyman to figure it out for the scientists to explain things and work out how to save us all
  • One of the sanctioned experiments by a lead character will be mis-directed and cause chaos, usually when there is some important visiting dignitary.
  • A visiting scientist will have some dark secret that they’re hiding from us all and it’ll be up to Joe to figure it out and save the day

Sex and Violence
There will be some violence, but not much. It’s a family show after all. There won’t be any sex directly. Some kissing and a lot of sexual tension. We don’t want to make things too obvious for the kids after all. The sexual tension will be there to stop the adults from nodding off.

Show Details

Fill in as appropriate:

Show Name: ________________________________________
Channel: ________________________________________

B

August 26, 2006 04:02 PM

August 25, 2006

h|barbobot

Beer Test


Bass


(100% dark & bitter, 33% working class, 100% genuine)





So the deal with this test is that each taker, based on his or her scores, is assigned a beer that fits their personality (Corona, Bud Select, and so on), and along with the personality description, there's a poster or an ad for that beer. As you can imagine, most of the images feature booty models, sports cars, or, maybe even more depressing, retro kitsch.


It's a testament to Bass Ale, and therefore to YOU, that when I went to look for ads for Bass, all I found was this. An ad from 1937. Bass is legit, and if your scores are true, so are you. I tip my glass to that.


Personality-wise, you have refined tastes (after all, Bass is kind of expensive), but you know how to savor what you get. Your personality isn't exactly bubbly, but you're well-liked by your close circle of friends. Your sense of humor is rather dark, but that's just another way to say sophisticated, right? Cheers.












My test tracked 3 variables How you compared to other people your age and gender:
free online datingfree online dating
You scored higher than 99% on dark
free online datingfree online dating
You scored higher than 99% on workingclass
free online datingfree online dating
You scored higher than 99% on genuine




Link: The If You Were A Beer Test written by gwendolynbooks on OkCupid Free Online Dating, home of the 32-Type Dating Test


oddly enough i drink bass a lot

August 25, 2006 11:49 PM

http://www.clickondetroit.com/news/9730778/detail.html

Tauno wanted for questioning.

if you know tauno you'll get it

August 25, 2006 08:33 AM

August 24, 2006

aquarius

Jokosher Cleanup Day, 10th September

OK, 10th September in #jokosher on irc.freenode.org is Jokosher Cleanup Day. We’re working through the code, adding comments, sorting out variable names, all that sort of thing; spring-cleaning on the codebase. This is something that you don’t necessarily need to be a l33t Jokosher haxx0r to understand, so if you’ve been meaning to get involved with an open source project and just haven’t got around for it, this is the one for you! Come to the IRC channel on September 10th and we’ll be able to help you get to grips with the codebase and tidying up jobs. Then you too will be part of the greatest program the world has ever seen. Yes!

August 24, 2006 11:48 PM

jono

End of an era

You know, its odd enough when leaving a job, but its even stranger when you stop working with people you really respect. Today was my last day working with Elliot as he is training tomorrow and on holiday for my final week.

I have a huge amount of respect for Elliot. Not only is he a talented developer, but he is a really genuine, down to earth guy who is entirely selfless in his work. Elliot is one of those guys that never gets tired of helping people, and goes above and beyond the call of duty in his work at OpenAdvantage and elsewhere.

It has been a privilege to work with him and it is people like him who make Open Source what it is. I really hope to keep in touch with him in the future. :)

August 24, 2006 11:16 PM

PRIVATE/CONFIDENTIAL

ATTN: Dear Sir/M,

I am Mr.Jono Bacon. an Auditor of a BANK OF THE JONO BACON,WOLVERHAMPTON (NFSFG). I have the courage to Crave indulgence for this important business believing that you will never let me down either now or in the future. Some years ago, an English welder /tradesman with the York Trailers company, made intimate relations with a Hairdresser of Yorkshire descent. After naughty crank a child was born of BACON on September 17th 1979. This child was me.

I am looking for a foreigner or native who will stand in as beneficiary, and OPEN a transaction to facilitate the transfer of Amazon products to my household. This is simple, all you have to do is to OPEN a browser in the world and visit my Amazon wishlist. There is no risk at all, and all the paper work for this transaction will be done by me using my position and connections i