
Inspired
Right now I am at FooCamp in California.
I learned today that I am most creative and inspired when talking to people I like. As such, my creativity is a result of the incredible people I know and love. Thanks to every one of you, you know who you are. 🙂

The Opinion Slab: OpenConsole?
Welcome one and all for this weeks block…no chunk…nay, *slab* of opinion. As ever, everyone is welcome and encouraged to scribe their opinions into the comments on this post. Yep, even you oddbals with your wild staring eyes and can of Special Brew in tow are welcome to join in. Lets go…
“*In recent years the gaming world has become bigger, more impressive and more diverse, but all within a pretty restrictive set of metrics – if you want to develop for PS3, Wii or XBox you need licenses, special hardware and there is little opportunity to write homebrew games on these systems. Despite utterances from some of the vendors about encouraging some degree of homebrew, the situation is pretty drab. Then mix in the complexity of writing games for PCs and specifically Linux with its array of potential dependencies. Could we instead make our own open games console standard? As in, could we define a machine spec (a chosen set of components), a set of software tools, a development stack and consider this the OpenConsole standard? This could provide a specific target platform, a target set of tools, and potentially allow OEM vendors to release hardware based around said spec. There were similar attempts with the multimedia specification in the late nineties and it died on its arse. Could it work here? Could this be our opportunity to define an open games console standard and get our grubby feet into the gaming ring?*”
My take: I think it could work. Sure, there are challenges, and there would be some tough decisions (which graphics cards, which processors, which software etc), but the aim of this exercise would be to make tough decisions, define a platform and then build a strong community around that platform of players and importantly, developers. The platform could potentially offer a predictable gaming experience (which is always a benefit of consoles) and a specific set of development processes to encourage games production. There is no reason why the development platform could not encourage choice (support both C/C++/Java and Python as an example) but have the benefit of consistency and a predicable and known set of resources and abilities.
So what do you think? Share your views in the comments.

Never a dull moment
Recently I have been thinking of my next charity stunt to do. Well, this weekend it came to me. I am going to keep it under wraps for now. I don’t even know if it is possible and over ambitious. Quite possibly, the stupidest idea I have had. In any case, it needs to wait until after [LUGRadio Live 2007](https://www.lugradio.org/live/2007/).
If I do it, I will need plenty of help. This could mean you. 🙂

Happy Birthday to…
Just a quick note to say congrats to the excellent [OpenSolaris](https://www.opensolaris.org/os/) crew on their second anniversary. They have achieved a huge amount in two short years. Well done folks. 🙂

LUGRadio Live 2007 Prizes
Get all your LugRadio Live news and updates from the LugRadio Live Latest News Blog!
Yet more excitement about [LUGRadio Live 2007](https://www.lugradio.org/live/2007/) on the 7th and 8th July 2007in Wolverhampton, UK.
We have some incredible prizes to give away at LUGRadio Live 2007 donated by our good friends at O’Reilly, Nokia and Defective By Design. Not only will O’Reilly be giving bundles of books away and Make magazines, but Nokia are giving us five Nokia N800 Internet Tablets to give away. Finally, Defective By Design have donated one of the excellent hazmat suits they used in their Anti-DRM campaign, as modelled below:
Each of these incredible prizes will be available in competitions throughout LUGRadio Live 2007, and we expect even more prizes to be available on the big weekend.
Get [more info on LUGRadio Live 2007](https://www.lugradio.org/live/2007/) and go and [REGISTER](https://www.lugradio.org/live/2007/index.php/Register)!

Life is good
As many of you know, I rather like heavy music. In addition to being an avid listener, I am also a musician and take a number of influences in crafting my own music. One of the key musicians that has inspired me has been [Chuck Billy](https://en.wikipedia.org/wiki/Chuck_Billy_%28vocalist%29) from Testament – his combination of melodic singing ability and deep growl offered the perfect inspiration for my own music. When I started out taking singing seriously, I took singing lessons and at my first lesson brought along a cassette tape with Chuck singing, and said to my singing teacher “help me sing like that”.
I saw Testament a few times but never really got a chance to meet Chuck. He was always around after gigs, but I had to rush off or someone was picking me up. Then, he was diagnosed with germ cell seminoma, a form of Cancer and underwent chemotherapy which knocked him out of action. The metal world was worried about him and his future, but thankfully he made a full recovery. He continued to work with Testament and recently co-formed the Dublin Death Patrol, a band comprising of various thrash legends, most notably [Steve Souza](https://en.wikipedia.org/wiki/Steve_Souza) from Exodus, another one of my metal heroes.
Well, last night I went to see them play and finally one of life’s ambitions was satisfied:
With the prior history with Chuck, I was worried I would never have got a chance to meet him. Happy is an understatement. 🙂
Not only that, I hooked up with Steve Souza as well:
Life become that little bit more complete last night. 🙂
Also check out [Steve singing](https://www.flickr.com/photos/jonobacon/547178124/) and both [Chuck and Steve singing together](https://www.flickr.com/photos/jonobacon/547178110/).

LUGRadio Live 2007: Don’t Listen Alone
Get all your LugRadio Live news and updates from the LugRadio Live Latest News Blog!
(*if you can’t see the above video, click [here](https://www.lugradio.org/listenalone/)*)
The LUGRadio team are proud to release our second promo video. It is available in [many different formats](https://www.lugradio.org/listenalone/) so share it and spread the word about [LUGRadio Live 2007](https://www.lugradio.org/live/2007/), which is less than a month away!
…oh and if you are coming to the big event, go and [REGISTER](https://www.lugradio.org/live/2007/index.php/Register)!
**UPDATE**: [Go and Digg it!](https://digg.com/linux_unix/LugRadio_Live_2007_Don_t_Listen_Alone_video) – *thanks to mrben for digging it*.

Bask in its mighty glory
A while back I bought a Playstation 3. Well, one thing it does is spit out Full HD, referred to as 1080p by nasally gaming nerds. For a while I was thinking about getting a HD TV, and yesterday I buckled. Big time.
I picked up a Samsung 52″ 1080p LCD monster:
*Mmmm*
The above snap really does not get over how enormous it is – it really towers over he room. In fact, when I first put it on the TV stand, my dogs cowered in its mighty shadow. I needed to console little Frankie to show him he had nothing to be scared about. Madness.
Buying it was one thing, but getting the bugger back was a whole other thing. Although I wangled free delivery, I wanted *mega-telly* in my house straight away, so I drove out to the store and with the assistance of two of the store clerks, managed to cram the enormous box into my tiny 4×4 (affectionately referred to as a *hairdressers car* by my so-called friends). Well, there was not a huge amount of room for both mega-telly and me:
*Big telly, tiny car*
Driving was an experience. It really was.
The picture quality is stunning and really does make the whole experience much more pleasurable. I really recommend you all consider buying such a beast if you get a HD console such as the PS3.
Oh, and my Playstation Network user id is `cptfishhead`. Add me if you fancy some online gaming. 🙂

Debugging Jokosher Guide
Hello everyone. I like Jokosher. I think its a cool piece of software, with the right direction and a great bunch of people working on. Sure, I am biased, but nonetheless, Jokosher is an exciting project that has the opportunity to really redefine how we record music on a free software platform. But we have a problem…
…we need more testers. We need more people testing Jokosher, finding problems and reporting those problems. Now, some people are doing this and reporting bugs and reporting things on our [excellent forums](https://www.jokosher.org/forums/), but what would be *really* useful would be if some people could have a go at debugging Jokosher, and this in turns means being able to debug a GStreamer application.
We had a meeting about the new Jokosher QA Team yesterday and I agreed to write up a quick guide to getting started doing this kind of debugging. Hopefully this will help some of you get started in this incredibly important aspect of Jokosher. If you read this guide, it should give you a good solid grounding in how to debug Jokosher and contribute essential debugging information to our developers who can fix the problems. 🙂
## A bit of preparation
Before you begin, I recommend you get a quick overview of how GStreamer works. You basically need to know that you string together elements (plugins that do something specific such as reading in a file, decoding music or applying effects) and those elements are linked and have their pads connected together. I wrote a few little guides that explain how GStreamer and Gnonlin work. Although these guides cover how to write code, read them and understand the theory in them and it should give you a firm grounding in GStreamer. They are at:
* [Getting started with GStreamer with Python](https://archivedblog.jonobacon.com/?p=750)
* [Using Gnonlin with GStreamer and Python](https://archivedblog.jonobacon.com/?p=851)
You should also take a look at the diagram of the Jokosher pipeline:
* [Jokosher GStreamer pipeline](https://jokosher.python-hosting.com/attachment/wiki/CodingTeam/pipelinemap.png?format=raw)
This pipeline shows all of the elements and how they fit together in Jokosher.
In terms of software, it is recommended you are running Jokosher from SVN trunk and running a CVS copy of GStreamer. Instructions for this can be found [here](https://jokosher.python-hosting.com/wiki/InstallingCvsGstreamer).
## Getting started
The first thing you should do is initialise your CVS GStreamer setup. If you are using the guide linked above, you run a script that initialised CVS GStreamer for you. For me I run:
jono@forge:~$ bin/gst-head
The next step is to find a bug to work on. Take a look at our [bug tracker](https://bugs.launchpad.net/jokosher/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status%3Alist=Unconfirmed&field.status%3Alist=Confirmed&field.status%3Alist=In+Progress&field.status%3Alist=Needs+Info&field.status%3Alist=Fix+Committed&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=) and find a bug to do with playback or recording. This bug should preferably include some steps to reproduce the bug.
The next step is to run Jokosher in debug mode, reproduce a bug and then explore the log file. To do this, move to the directory where the main Jokosher code lives (namely where the `JokosherApp.py` file is present) and run the following command:
jono@forge:~/jokosher/trunk/Jokosher$ GST_DEBUG=3,python:5,gnl*:5 ./Jokosher -g > log 2>&1
This command does a number of things. Lets break it down:
* `GST_DEBUG=3,` – set the GStreamer debug detail level to 3 (1 is least detailed, 5 is insane uber-detail).
* `python:5,` – set the python debug level to 5.
* `gnl*:5` – set the Gnonlin debug level to 5.
* `./Jokosher -g` – run Jokosher and pass it the `-g` option which directs all debug output to the log file.
* `> log 2>&1` – send all debug output to a file called `log`.
Run the command and reproduce the bug by performing actions in Jokosher until the bug occurs. Try to remember the steps you follow – you will need to match your actions to different parts of the log file. If you get a GStreamer error message (one of the errors that says *Arggh!* in Jokosher) that will also be logged to the log file.
## Looking at the log file
When you run the last command you set GStreamer debugging into its default mode, which rather handily adds ANSI colours to the log file to distinguish between different types of information. To understand these colours, you need to run less to look at the log file. Run this command:
jono@forge:~/jokosher/trunk/Jokosher$ less -R log
It will then say `”log” may be a binary file. See it anyway?`. Type `y` to continue. The log file will appear and you will be presented with thousands of lines of debug code. Don’t be put off though, you will be skipping through large chunks of this code.
The debug log consists of a bunch of different types of information. A typical line looks like this:
0:00:06.855443000 15857 0x8249040 INFO GST_ELEMENT_FACTORY gstelementfactory.c:377:gst_element_factory_create:
creating element “bin” named “Volume_fades_bin”
If you look at the above line, there are two key bits of information you need to be aware of. The `INFO` bit tells you the type of debug message this line is and the content to the right of it is the message itself. There are a few different types of message:
* `INFO` – general information about what GStreamer is doing.
* `DEBUG` – debugging information from the application itself. More on this below.
* `LOG` – more logging information, typically used by Gnonlin.
* `WARN` – GStreamer warnings.
…and I believe there is an `ERROR` type as well, which are GStreamer errors. I seem to remember seeing this, but I am not 100% sure.
To the right of the type of message is the actual log message, which in the above example is `GST_ELEMENT_FACTORY gstelementfactory.c:377:gst_element_factory_create: creating element “bin” named “Volume_fades_bin”`. In this message a *bin* called `Volume_fades_bin` is being created.
You job now is to read through the lines in the debug log, matching the different parts to the elements and connections in the pipeline map, and try to figure out where the bug is occurring. Reading the log will be rather confusing at first, but after a few times you will get the hang of it, and after asking some questions about what debug messages mean, you will get the hang of how to understand the log file and see what is going on.
The log file is chronologically organised – the content is appended to the file as Jokosher runs. When Jokosher initialises, the pipeline is constructed, and as different things happen, the pipeline is updated and adjusted as Jokosher runs. So, as an example, when you add an instrument, a sub-pipeline (a small bunch of elements that are part of the wider pipeline) is added to the main pipeline. When this happens, some elements from the main pipeline need to be un-linked, the new sub-pipeline created and then hooked into the main pipeline. You can see how this works by reading the log file and tracking how the pipeline map is created.
Aside from GStreamer debug messages, there are also a number of debug messages written into Jokosher by our coders. The `-g` switch that you pass to Jokosher switches on these debug messages so they are saved in the log file. If you search the log file for `python` you can see these messages. You can then search the Jokosher code for `Globals.debug` to see where the debug messages are added. So, as an example, imagine this line in a Jokosher source code file:
Globals.debug(“foo bar”)
This line would generate the following debug log message (as an example):
0:00:06.896163000 15857 0x8249040 DEBUG python Globals.py:147:debug: foo bar
So you can match the contents of the log file to different bits of code.
Navigating the log file with the `less` command uses a few keyboard commands which you can learn by running `man less` and reading the information or by [reading about it here](https://linux.about.com/library/cmd/blcmdl1_less.htm). The key skill is typing a slash and a search term will highlight the search term throughout the file (e.g. type `/myterm` will highlight all instances of `myterm` in the log file).
Debugging is like forensics in CSI – you piece together a picture of the crime from the evidence you have, the main evidence being the pipeline map (which shows the GStreamer structure inside Jokosher), the debug log and the actions in Jokosher that were performed to trigger the bug. You use this evidence to narrow in on the problem. It is a fun, challenging and rewarding process when you explore the evidence and then discover what the bug is. They key thing then is sharing your findings with the rest of the team so that the bug can be fixed.
You should share any findings on the bug report of the bug you are investigating. If a bug report does not exist yet, create one and add your findings.
## Getting help
Debugging is a science that cannot be learned in a single evening, and you will need to ask plenty of questions as you learn to debug. Do hang in there though! Debugging is an *incredibly* useful thing for you to do to help the Jokosher project. You are welcome to ask questions in `#jokosher` on Freenode, post to our [mailing list](https://mail.gnome.org/mailman/listinfo/jokosher-devel-list) or ask in the [Jokosher forums](https://www.jokosher.org/forums/).
Good luck, and thanks for getting involved in this fun, exciting and important project. Feel free to ask questions or clarify points in the comments on this blog entry! 🙂

The Opinion Slab: Church of England in Playstation Gun Range Shocker
Here we are for yet another slab of opinion. This week I have quite an interesting one for you.
*Recently the Church Of England have been having a tiff with Sony regarding the use of Manchester Cathedral in the Alien infested first-person-shooter Resistance: Fall Of Man on Playstation 3. The CofE are not only angry that a holy place was a backdrop for such a violent game, but it also undermines their work to banish gun crime from Manchester. They have demanded that the game is removed from store shelves. A meeting at the CofE on Monday to discuss what actions should be made against Sony resulted in the church asking for a large chunk of earnings from the game being donated to the CofE. They also want the game content adjusting to remove Manchester Cathedral and for Sony to support anti-gun groups. Is it right for the CofE to make such demands? Is the use of Manchester Cathedral really that bad? Is it even more odd that there is a problem with the cathedral being used in a game that is clearly science fiction due to the abundance of aliens? Does the game really undermine anti-gun groups? Is there an ethical issue with the CofE taking a large donation of cash from a game they deem so inappropriate?*
My take: I can see the church’s problem with Manchester Cathedral being used in the game, and although I personally don’t have an issue with it, I can see why they take issue with it, but I don’t see how this is undermining their efforts banishing gun crime from Manchester – I thought the debate over video game violence spilling into real life was long finished in the late 90s. Then, to add insult to injury, I find the concept of the CofE demanding money from such an unethical game astonishing. On what ethical grounds can you possibly make such a demand – surely it is *dirty money*?
I think this is a fascinating topic, lets see what everyone thinks. Add you comments as usual to this blog entry. 🙂