WinFF

I discovered WinFF today; it's a GUI frontend for FFMpeg that works on Windows and Linux. I immediately thought "Hey, this could be a good replacement for Blacklight". I'd often been thinking that a dedicated Walkman-loading utility was a bit ridiculous and that the appropriate settings should be available in other software. Plus, it being able to work on Windows means I don't have to make a Windows port of Blacklight.

I did think "I'll just add a basic patch to WinFF to allow it to encode to the settings required by the Walkman", but I've just had a look at the website and WinFF is written in PASCAL! The 1980s called - they want their programming language back! Surprisingly enough, I did learn a tiny bit of Pascal in 1999, I think - but I remember none of it, and it was all pretty simple stuff.

Still, I can add a feature request to their bugtracker with the exact settings required by the Walkman, and hopefully they'll add it!

                            

Changelog: Fixed a race condition

I always wanted to say that I "fixed a race condition". Until fairly recently, I didn't know what a "race condition" was, I just thought it sounded cool.

Well, I did actually fix one today in Blacklight, that had been haunting me for a long time. I think it was a race condition. I also fixed (hopefully!) the problem involving the different directory names under Ubuntu 8.04.

I'll just package it up as a Deb, put a new little picture inside the Walkman screen in the icon, and put her up on Sourceforge.I found that a number of Linux users have these Walkmans, you see, so I want to make the program as good as possible.

Miro

Miro - an ancient African word meaning "I thought compiling software from source was easy".

Or:

Miro - a trainwreck of a project

Don't get me wrong; I used to have a copy of Democracy Player and I appreciated that it was rather nice. I didn't have the bandwidth at the time to really take advantage of it.

Now I've got 5 gigs per month, I decided to use it by watching some Internet TV. Miro (formerly known as Democracy Player) was my first choice.

I apt-getted it, and it promptly crashes shortly after starting it up. I found that a vastly newer version had been released, so I decided to use the official Miro repo. Bad idea. It wanted to downgrade libxine, which is especially stupid considering I didn't even have the latest backported version! I decided to go from source. When I had a look I found that Miro appears to be written in Python - "this will be easy", I thought.

I have downloaded about 30 megabytes of dependencies so far, and every time I run the installer script it complains about something else. NOW it's complaining about OpenSSL! It seems to require vast tracts of libboost, libxine, even X11 development libraries! It's almost as though Miro requires everything *except* anything that comes with Ubuntu.

I even thought I'd be smart and do "sudo apt-get build-dep miro" to make sure I had everything. But no... it downloaded 11 megabytes of stuff, but it seems that it didn't download anything that I needed.

Hmm... now that I've installed libssl-dev, the compile seems to be chugging away happily. But it's taken a lot of investigative skills to find all the dependencies. The project is a trainwreck. Firstly, the Miro crash is a known problem, which shouldn't have made it to any sort of release. Second, the packaged version of Miro from the offical Miro repo should be able to accept newer versions of libxine. Third, I'd appreciate knowing exactly what to download to build this thing. Fourthly, once I've compiled Miro, it SHOULDN'T FUCKING SEGFAULT ON STARTUP!

World Of Padman == great fun

I downloaded World Of Padman on Saturday morning, and I've been playing it a fair bit ever since.

This must be the first ever FPS where the maps go upwards more than they go horizontally. For those of you who haven't seen the promotional video or played the game, the characters are only a couple of centimetres tall in our scale, and they battle it out in an ordinary room. One level is a diner, another is a bathroom, another is an attic, so on and so forth.

Not only are the maps very unconventional (for FPS games), but they are made with exquisite care and detail. You've really got to play it to see what I mean. One map is inside someone's study. There is a computer sitting on the ground level under the desk. A transparent panel actually shows the motherboard and a graphics card... how exquisite is that?

And everything is cartoony. The graphics, the voices, even the weapons look non-threatening. But this isn't a game for kids - Padman swears, and the female Pad characters have cleavage showing.

There's the standard deathmatch ("Free For All"), a team deathmatch ("Team Play"), limited-lives deathmatch ("Last Pad Standing") and a team domination gametype ("Big Balloon"). But, as is customary for open-source FPSes, there's a brand-new gametype: Spray Your Colour. The promotional video explains it very simply:

1. Frag an opponent
2. Collect 1-8 cartridges (from the opponent or opponents)
3. Locate the teleporter
4. Spray your colour to score

Easy? No! Sometimes you can get lucky and find cartridges that have been dropped by fragged players but not yet picked up. On the way to the teleporter, you *will* get attacked, and if you're not careful you'll be killed. Of course, all your good work with fragging will go to waste, as an opponent is likely to pick up your cartridges and score from them.

When you use the teleporter, your weapons will be temporarily taken away from you and replaced with the spray gun. That's a nice touch, but it can be frustrating to see the bots spraying 5 cartridges at a time with you being unable to do anything about it. It can, however, be very satisfying to kill a bot that is trying to get to the teleporter with 5 cartridges, and you steal them away and score!

I'm sad to say that open-source FPSes seem to crash a bit, in general. Nexuiz crashes when I select certain gametypes. Warsow and Alien Arena 2007 crash when I select certain maps. Happily, World Of Padman has not crashed on me yet. Even better, it allows you to choose whether or not to use OpenAL for sound - great for computers like mine which don't seem to get along with OpenAL!

Padman was a popular comic strip in a console gaming magazine. World of Padman started life as an award-winning total-conversion mod for Quake 3. When the Quake 3 engine became open-source, the team behind the mod created a stand-alone World Of Padman game. You can still see evidence of the game engine's origins - the "Options" screen is exactly the same as Quake 3', albeit with new artwork.

There's no single-player mode yet, but if you start a new game server and put bots in it, that will give you a satisfactory match to start you off with.

There's only one real hitch with this game: I tried joining some games online, but was automatically booted because the server thought my copy of the game was modified. I understand that they want to get rid of cheating, but this is an unaltered copy! Maybe I should apply the patch to bring it up to the latest version.

Anyway, if you even slightly like FPSes, you should really get a copy of this game. It's about a 500 megabyte download, but the level design and artwork will blow you away even before your own Balloonys do :-)  Spray Your Colour is fun, the weapons are innovative, and it runs well on modest computers. There's also an avid community out there making new maps based on real rooms in their houses! Definitely worth playing and replaying. Easily the best open-source FPS.

Tovid is alive!

I submitted a bug report to Tovid's developers, about ffmpeg not using the -threads parameter when the computer has multiple CPUs/cores. I thought I probably wasn't going to get a reply or anything, noting that their wiki didn't seem to be modified after early 2007, so it was probably an unfortunately dead project.

This morning, my bug report was set to "Fixed", with the comment from one of the main developers that the feature was added in the svn version.

If you only need one menu in your project, I urge you to try the "Todiscgui" program. It's ugly, and looks a little confusing. But you can make menus with lots of eye candy. Unfortunately, one of the VOBs I was using seemed to be corrupted or something, so during the authoring stage the dvdauthor program fell flat on its face. I'll convert that VOB to DV or Xvid or something to try and get around the problem.

Here's a picture of a simple, but attractive, menu that Todiscgui created for me.

Preview

Ndiswrapper versus Linus

Ndiswrapper, a piece of software that emulates part of Windows to allow Windows-based wireless drivers to be used on Linux, has been broken by the latest version of the Linux kernel.

Linux tolerates non-open-source modules, but gives kernel developers the option to exclude their code from being accessed from a proprietary module. The code surrounding this mechanism has been changed to exclude Ndiswrapper from being able to access "GPLONLY" code in the kernel.

One of the Ndiswrapper developers submitted a patch to get things back the way they were, but Linus (head developer of the Linux kernel) does not want to accept that patch. His reasoning is that while Ndiswrapper itself is open source, it is a wrapper that allows proprietary code to run on Linux, and therefore should be excluded from GPLONLY code.

This is a serious situation, as many people can only get their wireless cards to work when they use Ndiswrapper, and Ndiswrapper only works when it has access to the GPLONLY parts of the kernel. If future versions of the Linux kernel break Ndiswrapper, vast numbers of people could be excluded from their wireless networks.

My reasoning is this. KVM is a virtualiser that allows other operating systems to be run on your Linux machine. It puts a free and open source module into the kernel. Ndiswrapper essentially virtualises just a single driver, not an entire operating system. Why are these packages being treated differently? KVM is often used for running proprietary operating systems, and Ndiswrapper could be used to run open-source Windows-based wireless drivers, if any exist.

Excluding Ndiswrapper from accessing GPLONLY kernel modules is like saying "Well, it's possible you could be running non-GPL code within this program, so we'll deny you access no matter what you're running". It's like denying virtualisers from running because they might be used to run Windows, or even worse, non-GPL open-source operating systems like FreeBSD. What's next - denying Firefox access to TCP/IP because there's a possibility the user might have Flash Player installed, or because they might visit a website with non-open-source scripting on it?

I have simplified the situation slightly in order to make this article accessible to a wider group of people, but the comparison still holds.

Warsow and Nexuiz

I read today that Nexuiz 2.4 was out. I now have 5 gigs of download per month so I thought I'd download the new version.

In case of misadventure, I decided to grab it with Wget, as Wget can restart failed downloads. However, after about 170 megabytes the download failed, and Wget had to start at the beginning for some reason. Then the download silently failed after 160 megabytes. In short, I've never played Nexuiz on this computer and I probably won't until the download servers get a bit less of a hammering.

So instead I played a bit of Warsow. I seem to be getting better at it in Team Deathmatch mode, and now I think that Warsow isn't too bad. It's just that even the novice bots completely outclass me. The graphics continue to impress me - I can't work out how they managed to get the indie cartoon feel to the game on top of the Quake 2 engine.

Java tainting your kernel

In the latest Linux kernels, it is possible to mark the kernel as "tainted" from userspace, if a program does something incredibly naughty that could make the kernel unstable. When a kernel is marked as "tainted", if it crashes and you send a bug report to the Linux kernel developers, they will either not help you or they will ask "hard questions" about what you were doing.

Rightly so - the kernel devs can't fix a problem that's been caused by binary drivers or programs doing dumb things.

On lwn.net, there is a discussion about this, along with the revelation (to me) that Java actually has functions for letting a Java application developer directly read and write all system memory. (this is called RTSJ). The last poster in the discussion says:

It seems that Java's absurdity would be moreeasily noticed once all computer OS vendors asked to implement RTSJ compliance also had to implement unfettered access to all physical memory. And besides, what do they need all that memory for?

My reply: If you'd ever used Java, you would have already noted that it appears to use all your physical memory :-)

As an aside: Is this possibly why running Java applications tended to make my Mac unstable, even after they had been quit?

Alien Arena 2007 - Not bad, not bad at all

I played the 2006 edition of Alien Arena a long time ago, and I really wasn't impressed. Although it played okay on my old AMD Sempron-based computer with integrated ATI graphics, I didn't really think much of the game and instead preferred Nexuiz (which needed a faster computer with better graphics).

Fast forward to late 2007. I heard lots of people saying that Alien Arena 2007 was very good and had a lot of personality. So I tried 2006 again and still hated it.

In the past week I've heard a couple of times that AA2007 includes a mode where there are vehicles, and this is one of my favourite parts of Unreal Tournament 2004 (which I play a lot on my new computer).So I leeched off someone else's internet connection to download Alien Arena 2007.

I still expected the gameplay to be as terrible as Warsow, which suffers from badly-written bots and ineffective weapons. While at first I wasn't blown away, I did seem to die too much considering I had the bots turned onto "Easy".

Then somehow, it all clicked for me.

Now I quite like Alien Arena 2007. The vehicles aren't very well thought-up sadly, and it looks like all the levels are small and claustraphobic, but I'm still having some fun with the rocket launcher and chaingun.

Alien Arena 2007 does betray the underlying game engine, or perhaps follow Quake too closely. I've never seen the point of "armour shards" which add 1 to your armour, but they are here in AA. The client-server architecture of the game is also obvious - playing a single-player game involves clicking "Host Game", for instance (just like Warsow).

AA2007 does add a couple of things to the genre. Firstly, unlike most other games, it's not possible to fire just one round from the chaingun. It's a powerful weapon, but if you fire it you're committing to fire a certain number of rounds. If you just tap the fire button, the chaingun belches out fire for about a second and a half. Therefore, having good fire discipline is the order of the day when using the chaingun.

There's also the obligatory Capture The Flag gametype. Team Core Assault is like Unreal Tournament's "Onslaught" gametype; except with very small maps, much fewer powernodes, and the nodes can be taken or retaken simply by stepping on them (no link gun).

I imagine Deathball mode to be like "Bombing Run", or possibly like Marathon 2's "Kill The Man With The Ball". The AA2007 gametype "All-Out Assault" is where you get the vehicles, and there's also a bizarre new gametype called "Cattle Prod" which I couldn't work out. It's something about herding cows. Very strange.

I also find it funny that the "OMG I have no ammo!" weapon is called "The Probe". So the event log would say "Player was probed by Cyborg".

In all, Alien Arena 2007 is worth the 200 megabyte download. If you tried the original version, you should check out the new one. Or, you could wait for Alien Arena 2008 which should be out quite soon. Sure, Alien Arena 2007 didn't blow me away, and in the grand scheme of things it's not an impressive game, but it's enough fun. I definitely saw potential in this game and I'm sure each edition will build on this promising base.

Wine updates broke Elastomania!

From the vaults of "I can't believe this happened": Wine used to have perfect support for the Windows 98 game "Elastomania". In the more recent updates to Wine, it has gone from Platinum ("works well out-of-the-box") to Garbage ("doesn't work at all"). That is sad. Especially considering the age of the game.

There's one more thing that I'll try, and that is running it without a compositing window manager. But I think we'll get the same result. If so, I'll send it to the HQ.

I completed Marathon 2!

I finally completed Marathon 2: Durandal just now, though admittedly on Kindergarten difficulty setting. That last room with the hunters and juggernought was ridiculously difficult, but I followed a walkthrough to get the basic tactic (get the monsters to fight eachother).

Who says you can't do gaming on Linux?

(BTW I used a walkthrough on two other levels to find how to complete them, and at one point I found a critical switch under some lava due to Aleph One's transparent liquids - how on earth did anyone complete that level with the original game engine?)

Blacklight 2.1 Released

Reposted from the Blacklight project page on Sourceforge.net:

I am proud to announce that Blacklight 2.1 is now available for download. I recommend updating to 2.1 as it fixes a number of annoying bugs.

Another great reason to update is that it now includes a DVD ripping plugin! It requires Mplayer and the usual DVD viewing dependencies (libdvdnav, libdvdread, libdvdplay, and libdvdcss2), but is much more convenient than ripping with some other program and then encoding in Blacklight.

The DVD rip plugin is something I'd really like you to hack around on. It's very simply coded and there's scope for lots of features, like audio ripping (great for music DVDs) and ripping multiple chapters into one file like Acidrip can do.

Blacklight is written in Python so it's very easy to start working with and hacking around on. I'm sure there are still bugs in it, so please report them wherever you see them.

Thanks for using Blacklight! I hope your Walkmans are still giving you hours of enjoyment.

You can download the new version of Blacklight from http://sourceforge.net/projects/blacklight/

If you need a version of ffmpeg that can encode to MPEG-4/AAC-LC, add the Medibuntu repo.

The first version of the Debian package that I uploaded was faulty, but the new version is up now. Some dependency names have changed between Feisty and Gutsy, and this new package will work with either version of Ubuntu. Non-Ubuntu users can extract the package as if it was a tarball and place the files in the filesystem.

Banshee really does rock

I just tried to import two CDs simultaneously on Rhythmbox. It doesn't do it - instead it queues them up consecutively, not concurrently. I tried the same on Banshee (which was a sudo apt-get install banshee away), and it worked simultaneously at a pretty good speed! Not sure if iTunes can do this or not - probably not as no Apple computers have ever shipped with multiple optical drives, so Apple would have never thought of supporting it. (Fanbois, feel free to correct me in your flames).

But yeah, usually I try Exaile and Rhythmbox and think "Oh geez, I wish it could do xyz" and then try Banshee and find that I'm never left wanting. If only Novell wasn't behind both Banshee and the framework that Banshee is built on.

Critical Wine memory leak

RIght now I'm installing Unreal Anthology into Wine on Linux. My system monitor shows the memory consumption increasing by the second - when I started watching it, it was 400 megabytes... it has slowly increased to over 600! Fortunately the games have finished installing now and memory usage has stopped at 605 megs, but I was a little bit anxious and hoping that the installation would be finished before the memory use got to 2 gigabytes... I have no swap partition...

The train simulator I bought for my father for his birthday (which he has barely used) works quite well in Wine. There's just a problem with the fonts - almost none of the text is readable, so really the game is unplayable. But you can still drive around, which is all I ever did on it anyway :-)

I love this computer.

EDIT: As soon as I quit Wine, the memory usage went down to 287 megabytes. Ahh.

Very impressed with Kdenlive

I am using a CVS (mid-development) version of Kdenlive to edit the Hi-5 Carols By Candlelight video and put onto Youtube.

As a video editor, it is performing very nicely. There are one or two parts of the interface that feel a little strange to me, but then video editing interfaces are not a precise art. It does everything I'm asking it to do, which admittedly is very simple, but I can feel that if I asked it to do something more demanding it would still work just as well.

As a video encoding system, it is also very good. It doesn't appear to use the installed Mencoder or Transcode systems; Top is reporting a process named "kdenlive_render". It's possible that this is a rebranded Mencoder/Transcode though, as some of the command-line options look familiar to me. Encoding is fast, the files are small, the estimated time is accurate, and you can edit the command-line options for more flexibility.

I'm loving this. It's an example of open-source at its best.

<n00b>It's not as easy to use as iMovie!</n00b>

No, I guess not; but I'd rather use something that works well and actually lets me make decisions about my movie, than something that is easy to use because it gives you very limited options. iMovie 1 was a pile of shit in this regard; I haven't used subsequent versions but I know the Apple mindset.

I'm not sure if I've told you all, but I'm going to buy some parts and put together my own computer. I'm getting quite psyched about it, and the best thing is that the last two Windows-only tasks (video editing and MP3 player-management) are now completely accomplishable on Linux due to Kdenlive and my Sony Walkman, respectively.

Firefox 3 beta 2

I'm currently using Firefox 3 beta 2. The clever dudes at Mozilla created a self-contained binary of it for 32-bit Linux, so you just extract it into your home directory and it works!

I like how it integrates with the Gnome theme, except that the Human theme looks a bit strange on some web pages. I never really noticed that Firefox 2 didn't integrate very well, but now I'm *really* noticing that the FF3 beta does!

Saving tabs is different, some of my favourite extensions don't work :-(  No more Youtube downloading for me, unfortunately. All the beta testers seem to hate the History interface - it's now a PITA to delete all the history for a particular day (if you don't want other users to know what you've been looking at). You can't just bring up the sidebar and select "delete" for the day - that doesn't do anything. You have to go into the Places Manager and select all the pages there; but they're not delimited by the date.

Still, eveything else seems to be working fine, and after I broke my Debian Alternatives system and fixed it*, links automatically open in Firefox 3 beta. After using Firefox 3 beta, you can't go back to 2, because it forgets ALL your passwords (even the ones that were remembered when you used Firefox 2). That's a bit of a pain too, but Firefox 3 is stable enough already for daily use. It's just the darn incompatible extensions.

*Whenever I clicked on a link to a web page from some other sort of program, it would open in Konqueror, since Konqueror was the last web browser I installed. This used to happen under Dapper too, but I never worried about it. When Konqueror is installed, it creates a link to itself under /usr/bin/x-www-browser, and any programs which use the Debian Alternatives system for selecting a web browser (sensible-browser) will open links in Konqueror. This is because sensible-browser really just passes URLs to whatever browser is linked to in /usr/bin/x-www-browser.

I didn't realise this, however, and I stuffed around with update-alternatives program until sensible-browser and x-www-browser stopped working. Finally I realised that all the alternatives were also linked at /usr/bin, so I created the link to Firefox 3 there and everything worked out alright.

Moral of the story: Don't stuff around with your alternatives unless you know what you're doing!

Shellbot

An article that I read in Linux Format by Mike Saunders about writing an IRC bot in Perl. I had a bit of a read and thought "Hey, that looks easy". Only toward the end of the article did I realise the implications: Rather than have ssh open for incoming access on servers to perform remote administration, why not have an IRC bot on an existing channel that only responds to one user, and have the bot able to perform the limited tasks under remote direction?

If necessary, there could be a command for the bot that tells it to open SSH access for when more strenuous administration is necessary. The advantage is that the only remotely openable ports will be the actual services (Apache, Samba, Postfix etc). The bot will have connected to an IRC server, so not only will the administrator not have to know the IP address of the computer, but there would not be an extra service running on an incoming port!

I'm currently embracing and extending the original code (learning a bit about Perl in the process). The idea is that I will turn my computer on before going to work, and then from work on days when the boss isn't there, I will be able to log into the IRC channel and give my bot commands.

I currently have 5 commands:

  • uptime - posts my uptime
  • ls - asks me what directory I want to list, and then when I reply it will give a list of that directory
  • remember - asks me what I want it to remember, and then when I reply it will concatenate it to the list.
  • df - How much disk space is free on all mounted filesystems
  • remind me - posts back a list of the remembered items

I have plans to also implement:

  • wget - downloads a file I specify to my home directory
  • cat - prints 5 lines at a time, of a file I specify.
  • apt-get - Downloads and installs a package
  • execute - Runs a shell command that I specify
  • head - Prints the first 5 lines of a file
  • tail - Prints the last 5 lines of a file

I'm quite pleased with this; it's a little kludgy, but it works!

Three things that caught my attention on FSDaily:

  • Murrine will shortly have support for semi-transparent widgets. Windows Vista Aero had one thing over Compiz, and that was that Compiz could only change the transparency of a whole window, whereas Aero could have individual semi-transparent widgets, and semi-transparent window backgrounds with opaque widgets. Now, the Murrine theme engine for GTK will, in conjunction with a compositing window manager (like Compiz, Kwin4 and xfwm4) be able to do the same tricks. The code for this has not been released yet, but it looks great and only took a few lines of code in Murrine itself, with no modifications to Compiz! And have no fear - Vista's programs become completely opaque without Aero turned on, and GTK programs will do the same thing when you're not using a compositing window manager. And transparency-blurring and "reflections" will also work as you'd expect. Clever, clever man.
  • Don't Fear The Pirates - I can't sum up this article, but it's excellent.
  • Gnome-Do - this is a program based on Quiksilver for Mac OS X, which in turn is based on Katapult for KDE. Basically, you press Super-Spacebar, start typing something, and Gnome-Do searches for it. Gnome-Do searches your Evolution contacts, Tomboy notes, Pidgin buddies, Firefox bookmarks, files and applications. Let's hope there are lots more plugins written for it!

Blacklight DVD Ripper & prediction came true

Last night I started working on a DVD ripping plugin for Blacklight. It's half-finished already. Funnily enough, the thing I haven't done yet is implement the actual ripping - but getting a list of contents works perfectly, as does the previewing. Ripping is only a single command away; I want to implement a progress bar too, but I have an idea how to do that fairly easily.

Secondly, I've actually realised that my suggestion came true. My suggestion, as posted much earlier on this blog, was that by importing Chinese Linux-based computers and getting them into department stores, we could increase the Linux marketshare.

Everex is a Taiwan-based manufacturer, but Taiwan is virtually part of China anyway. They've developed their own Linux distribution called gOS, and a computer made to run it. The machines are being sold through Walmart in the US.

So, we looked to China for help with the Linux desktop ;-)

1-line bugfix

3 minutes ago, a bug existed in Blacklight2 which caused an error message to be printed if there was no PPP (Post-Process Plugin) specified.

2 minutes ago, I fixed it with one line:

if parameterString == "": raise Exception

I love Python.

Video IS WORKING in Blacklight2. That's right - Blacklight2 is now in a properly usable state. I'll continue to apply some love to it, but I envisage a release soon.

Sony Video Walkman: Cracked in 4 days!

Can you believe it? I finally encoded some video to play flawlessly on the Sony Walkman NWZ-S61 series!

But oh god, what a torturous route. In the end, I finally figured out that the version of FFMPEG I had was at fault. Upgrading to the latest development version through SVN fixed the problems.

Here is the command necessary to encode video onto the Sony Walkman, when you have a recent FFMPEG:

ffmpeg -i input -b 567k -s 320x240 -vcodec mpeg4 -ab 220k -ar 44100 -acodec libfaac output.mp4

This is the command necessary to configure the new ffmpeg:

./configure --enable-gpl --enable-pp --enable-swscaler --enable-liba52 --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libogg --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid

(you need development libraries for each of the --enable-lib* items there -  liba52-dev, libfaac-dev, etc. All are available in the Ubuntu Feisty repos.

If, when running FFMPEG, you encounter an error message about "try compiling with gcc 4.2, ignore it. Trying to fiddle around will only result in breaking your ability to compile! :-)

My ambition is to release a GUI video converting tool before Sony, and then add features to it later. I will be assisted by the use of a new monitor, that I will be buying tomorrow (as my old CRT has been giving me the sheets, flickering and turning white and stuff like that).

But yeah, it's now time for me to encode a video onto my Sony Walkman!

Exaile Bug #352: The High School Musical Bug

I just got the latest version of Exaile - it really has a lot of Amarok features in it now.

But it's still got a bug that has plagued it since its early days. An album/artist combination of "Various - Various" will invariably pull down the "High School Musical" cover from Amazon. Funny.

On that subject actually, I think the main reason why High School Musical has been such a big hit is because watching it is the only way you can listen to actual new POP music!

Since when has 480 lines been HD?

Quick note before I forget: My ISP seems to be shaping down to 128kbps, rather than 64kbps. Whoo hoo!

I tried transcoding some Amanda Bynes DVDs to MPEG-4 to play on my little DVD player. Although the transcoding was successful, I couldn't get the files to play on my DVD player, nor on the family DVD recorder.

When I try on my DVD player, it says "Cannot play HD video". I encoded these files at 853 x 480 resolution! Since when has that been high definition?

Looks like I'll have to transcode them again :-(

But the whole incident got me thinking again about an open-source High Definition disc.

Compiz-Fusion 0.5.3

I'm now running Compiz Fusion 0.5.3-git20070817 - which means that it's built from the source code that existed on the Compiz Fusion server on the 17th of August, 2007. It's code that is 3 days old.

I'm liking it a lot more than the previous version I was running, which I believe was another development snapshot actually. The Airplane effect is now available, and it runs quite well. I don't see anyone using this in real life, but it's impressive. The speed of the Expo plugin has been drastically improved to the point that I can now use it and it looks slick! In fact, everything about Compiz seems to have improved in speed a bit.

The default settings have changed. They're a little less dumb than before, but not much. Now the default animation for tooltips is Explode - it's a lot of visual noise for such a small interface widget, so this is likely to be the first thing you change. Fading still applies on all windows by default.

Minimise animations appear to be broken at the moment (as in, they don't work at all). Scale still doesn't show minimised windows. Shift Switcher may be broken, I'm not sure at the moment. All I know is that it's not working at the moment; Compiz Settings Manager might not be passing on the change or Compiz might not be applying the change while it's running.

It's still heavily in development, so if you've still got Beryl or are new to Linux I wouldn't recommend switching; but things are starting to look up for Compiz Fusion 0.6.0.

----------------

I just made an MPEG-4 DVD of two Amanda movies. K3B with Transcode as the backend made a real mess of it, chopping off the first quarter of the movie. So I tried Acidrip with the lavc (MPEG 4) codec. Worked perfectly... well, not perfectly as one of the movies initially ripped with the wrong aspect ratio, but after manually setting it everything was fine. Audio in sync, quality was excellent. Very impressed. Now I just have to try the disc in my wonderful $53 Palsonic DVD player.

Just got back from the Sony trade show. After seeing what Sony has come up with for the Bravia range, I'm ready to declare plasma as a dead technology. But Sony will have too many TVs; it will confuse consumers completely.

Today we sold two dishwashers from eBay! And the guy who bought the second dishwasher also bought a rangehood and a $550 Electrolux vacuum cleaner. We cleaned up; unfortunately those were pretty much our only sales for the day :-(

Flying windows

After Compiz mysteriously re-enabled the Scale plugin by itself, I took a trip to the Compiz Settings Manager to fix it. While I was there, I discovered the Screensaver plugin. Now, whenever my computer has been sitting for 10 minutes without human interaction or any new windows opening, the cube vanishes and all the windows start flying about and bouncing off eachother. It's cool!

And it beats the Photos screensaver in Gnome, which only seems to display pictures of the time my family took Sonia out for dinner last year. Well, it does actually display all my other pictures, but whenever I come back to the computer it's always displaying one of the Sonia ones.

Compiz a bit unstable

I've finally managed to make Compiz perform mostly the way I want it to. It has some terrible defaults, it occasionally loses settings, and every so often it crashes; often on startup. But at least I've made it workable.

Now I've got fish swimming around inside my cube!

Got a few things sorted

I've just somehow managed to fix the workspaces problem. I just switched workspaces on the Gnome panel and now the cube is rotating.

I installed the other Compiz-Fusion plugins (the unofficial and unsupported sets) and now I'm using the ShiftFlip plugin to perform the role that Scale used to. ShiftFlip emulates the Flip3D effect in Windows Vista Home Premium and above; or it can emulate the album cover flip effect from iTunes. I have it doing the latter. Unfortunately it requires use of the keyboard as well as the mouse, which is annoying.

Compiz-Fusion 0.5.2 is out!

The first real release of Compiz-Fusion (0.5.2) is now available as a prepackaged Debian/Ubuntu binary (and I believe there's a Fedora build too). So naturally, I moseyed on down to take a look.

I'm disappointed.

The first step was to get rid of Beryl. The second step is to add new repositories and install Compiz-Fusion. Unfortunately, I decided to be a smartalec and add the repositories then uninstall Beryl and install Compiz-Fusion as one step. The result was that I got rid of too much; I uninstalled the window decorators rather than upgrading them. Bad idea. Compiz wouldn't start. Finally I figured out about the decorators, installed them and restarted Compiz in the manner according to the semi-official HOWTO.

Compiz was running fine, but I was getting no borders. Some more reading later, I found that I should disregard the semi-official advice and instead run "compiz --replace -c heliodor" to actually tell it which window decorator to use. I don't see a way to specify window decorators otherwise, and there's no panel applet! A severe regression from Beryl - how have the Compiz folks done without it all this time?

The default settings are also pretty terrible compared to Beryl. Window animations are set too fast. Tooltips and menus are set to fade in AND have a focus shiver at the same time, which looks terrible; and the focus shiver is a completely different part of the badly-redesigned Compiz settings manager. Damn, I was just getting used to the Beryl Settings Manager (which I liked) and now this!

To add insult to injury, I cannot tweak the animations to perform at the speed I'm used to. The Burn animation no longer burns down the window; the window disappears shortly after the animation begins, and the burn effect continues even though there's nothing there. It's jerkier - uses too much CPU time.

I recently got rid of my task bar ("Window List") in favour of the Beryl Scale plugin. Well, the Scale plugin is still around and with some new features, but they've removed a crucial one: Showing minimised windows! Yes, there's no way to make Compiz-Fusion show minimised windows in the Scale plugin! Useless!

Some of the other new plugins run slowly (Expo runs at about 2 frames per second here). And I found some irritating errors in the settings program, where it continued to use a particular key for a particular plugin even after I told it not to use that key.

On the plus side, memory usage has improved. Menus are semi-transparent by default and look nice. The ADD plugin shows that the project is thinking about accessibility, and I'm sure it would be helpful. And on a fast system you'll love some of the new plugins. But I really think Compiz-Fusion shouldn't have released this - it needs another couple of months to cook. I preferred Beryl 0.2.0, and I hope that Ubuntu Gutsy includes Beryl by default rather than Compiz Fusion.

EDIT: I've been using Compiz Fusion for over an hour, and I'm STILL finding things about it which are REGRESSIONS from Beryl. For instance, switching desktops using Gnome's workspace selector causes the current windows to burn down and the new windows to beam in. Beryl did the logical, intuitive action of rotating the cube. Let's see if I can fix it.

---------
In non-Linux news, I finally bought the DVD of What A Girl Wants (the Amanda Bynes movie). I had a dream about her last night, so that's what prompted me to buy it. Mr Bean's Holiday has apparently been released, but I couldn't find it anywhere.

And I realised that I'm owed about $170 by various people. I'll get into debt-collection mode.

HOWTO: Stop Audacity from being a bastard

I used to have a little script called "audacity_start.sh" which disables Enlightened Sound Daemon, waits 2 seconds, then starts Audacity. This made Audacity behave nicely-ish with Gnome.

But this approach no longer works - something is hogging the sound anyway, so Audacity can't grab control.

I tried using the old esound-clients and the esddsp command to reroute Audacity's IO through ESD, but that caused a segfault.

I just found the alsa-oss package and the aoss program. So all I have to do is run:

aoss audacity

And Audacity will behave nicely. Granted, ESD itself will not work while aoss is working its magic, but other programs will still work fine.

Monster Masher

The local Ubuntu repository mirror is down at the moment, but the rest are probably up, so here's a game you might like to try.

It's called Monster Masher. Anyone who has played Bubble Trouble on the Mac will know the basic idea: It's a top-down view arcade-style game where you have to squash monsters in between these big movable boulders.

The differences are:

1. You can only move the blocks one space at a time
2. You can push multiple blocks
3. You can PULL a single block at a time as well
4. You must squash the monsters in between two boulders - pushing one into them has no effect unless there's another boulder on the other side.
5. You can't dissolve any blocks.
6. There's none of the cool music and humour, no powerups, and the graphics are very simple

But these differences make the game harder and more interesting, where you try to build structures where the monsters will hopefully go into, and you get into a position where you can squash them, without creating a dead-end where you can be trapped.

There's a two-player mode too, which I haven't tried yet. Could be fun, let me know how it goes!

Audacity 1.3.2 beta

I finally managed to compile Audacity 1.3.2 beta!

As I'm a Gnome user, I found it rather annoying that I had to turn ESD off before starting Audacity. And Audacity's ugly GTK 1.2 is ridiculous in the modern Beryl-enabled Linux desktop. So a few months ago I downloaded and tried to compile a recent Audacity beta version.

I couldn't get it working; I had assumed it was because Ubuntu Dapper was too old. So now I've tried it in Feisty, and I had exactly the same problem.

The difficulty is actually that Audacity uses the wxgtk-2.6 package, NOT 2.8. And the source archive I had downloaded included Wx 2.8, so I had always compiled that first!  Deleting the compiled 2.8 version fixed the problem, and Audacity compiled in a reasonable amount of time.

The changes are great. Menu items have been shuffled around, PortAudio is used now which stops conflicts with ESD, WxGTK is used which makes Audacity look quite nice and clean, there are new output options, an FTP client (!) and more that will become apparant to me once I start using the program properly in another podcast.

Whoever thought of the inbuilt FTP client is a genius. It makes Audacity brilliant for podcasting. And yes, Audacity can still output to MP3, Ogg and now even MP2.

I have a Checkinstall Deb for Feisty 32-bit x86. Leave a comment asking for it, and I'll send it to you. The next Copland will include this for sure.

The Xvid Test

I tried encoding the same clip with Xvid.

The quality was as good as I expected, and my CPU usage during full-size playback was much less. However, and this might be because of the transcoding utility I used, encoding took a ridiculously long amount of time. I started the transcoding process in the evening, came back in the morning and it still wasn't finished!

I will try installing a Xvid encoder in Wine and seeing if it gives good results and quick encoding.

Does anyone know of any other free-as-in-speech, non-patented video codecs?

Don't just complain - create an alternative!

Lately, the software libre community has been complaining about the DRM included on DVDs, HD-DVDs and Blu-ray discs. This is completely justified.

But one thing we often say is "Don't just complain, contribute!", meaning that if there's something you want to change about the software, you should just change it for yourself (or contribute to its implementation).

Why shouldn't this apply to other things? Rather than just complain about formats that are intertwined with freedom-killing DRM, we should be creating an alternative. Obviously, the studios aren't just going to adopt a DRM-free, open and unpatented format, so this might be more of a symbolic thing.

The basic idea is this: Create a format for video, audio, subtitles, and interactivity that is not tied to a particular physical media (i.e. it's not tied to Bluray discs, for instance). This format will use patent-free audio, video and image formats that can be compressed and decompressed with open-source software, and interactivity provided through XML.

Standard Definition is slowly slowly starting to be on the way out - high definition (768p and 1080i) is where it's at, and in the future it'll be 1080p. Therefore, our open-source disc format should be compatible with these resolutions, as well as future-proof with the ability to support higher resolutions still!

As part of this, I performed a small test last night. I transcoded the Hi-5 Have Some Fun DVD into Ogg Theora format using Thoggen (yes! It works under Feisty!). Good results - I used the same bitrate as the DVD originally was, and didn't seem to lose any quality. Audio and video sync was great. It took 5 hours to rip and transcode 1 hour of footage. Acceptable.

The only problem is, when I played back the footage at 100% size, my CPU was at around 100% capacity. When I tried scaling up to full-screen, it started dropping frames quite badly. Looks like this codec is not suitable for embedded devices like DVD players and HD-DVDs - this processor isn't really a slouch, and it had only 576 lines to deal with!

Next up: XVid. Although, apparantly there are patent concerns about this one.

BleedingEdge is a good idea, apparantly

A comment from Joseph regarding the BleedingEdge system I designed:

I'm a Linux newb who switched from Gentoo to Sourcemage, and so far the most annoying thing is realising the program I want isn't in my distro's repository, having to download the tarball, make an ebuild-like file for it, and look up the correct name for all the depends relative to my package manager. I'd love to see your idea implemented; it looks simple enough on the face of it, but wouldn't it be much harder in practice to design code that could flawlessly detect the naming convention of a package for multiple distros? It is a shame that some convention can't be agreed upon whereby a file is added to the tarball with an official name for the package, then the package manager could scan inside of tar balls for this name, or to save processing time in an ideal world each distro would agree to include the official name in the short or long description of the package.

Yes, it would be difficult, but hopefully the standardisation you speak of will occur at some later date, and until then BleedingEdge's guesswork will be a last resort in case the packages listed in the "require" statements are not found.

Thanks for your comment! I do enjoy reading comments on this blog, it makes me feel like I'm not just talking to myself :-)

----------
It's the strangest thing. I opened the Logout window and noted that there were no options for Suspend or Hibernate. For an unknown reason, I started looking at the man pages for reboot and the init programs, and I played around with the "runlevel" program, and when I went back to the logout window the options were there!

So I tried them. Actually, I closed the logout window and pushed the special key on my keyboard that I always had set to "logout", that hadn't worked on Feisty. It promptly suspended the computer. Waking it up worked fine.

So then I tried hibernating. Hibernation never worked on Dapper - it would hibernate, but waking up would just freeze the system. This time, it looked like Ubuntu was going to load from scratch, but then the logo disappeared and I was left with a Gnome prompt for my password ("unlock screen"). I'm currently running on this dehibernated computer, writing this entry. I have noticed that the network card seems to be down; still, hiberanation is a dumb idea that never works properly for anyone anyway.

EDIT: I've since restarted, and the Hybernate and Suspend options have disappeared again. The whole thing looks like a bug in Gnome or Ubuntu, but at least I know that Hybernate and Suspend work on this computer (mostly).

Hardware compatibility rocks!

Just now I found the cable that connects my digital camera to the computer. I never do it that way - it's easier to take the memory card out and put it into the front ports of my computer.

But when I found the cable, I wondered if my camera would work out-of-the-box. It sorta didn't on Breezy; but then I was expecting it to appear on the desktop and it never did, and I never installed a PTP (Picture Transfer Protocol) program. So I plugged the camera into my Dapper machine.

Nothing happened, so I tried going into F-Spot and "File > Import...". Presto, my camera was in the list of sources, so I selected it. It then showed me a list of my photos.

Brilliant. I will continue to take the memory card out and put it into my computer rather than search for the cable each time - but I just thought I'd note this for your benefit, because Linux continues to surprise me with its broad ranging hardware compatibility.

For the record, it's a Kodak EasyShare CX7430.

Evolution bug

I don't know if maybe the Gnome developers have fixed this bug by now, but it's been around for a long while.

"Summary and folder mismatch, even after a sync" when you have a lot of e-mails.

Google wasn't much help - it told me to delete a couple of files, but when I checked those files weren't there. I managed to guess what files were relevent, and now Evolution works properly.

I'm also wondering about the wisdom of having XFCE as the desktop of Copland. Ubuntu Server + XFCE use more memory than you typically find in the older G3s; and Copland is a distro intended partly for "salvage" (finding a use for older computers).

In future versions, I might have XFCE as an optional add-on with my custom configured desktop; and Openbox would be the default (it runs as a stand-alone window manager for REALLY low memory consumption, and it's smaller than Fluxbox).

Saving the best bit for last: I met Angelica today. We went to the movies and saw Hot Fuzz - boy that is a funny movie, but pretty gruesome at the end. Well worth seeing. And apparantly I don't bore her... that surprises me. She doesn't bore me; in fact, she's sweet and probably a bit shy like me.

Breathtaking

I took a look at a website that I had bookmarked back when Beryl was known as Compiz.

The videos of the latest version of Compiz really took my breath away. Check them out!

Beerorkid

As if I needed another reason to move to Feisty!

Open letter to Novell (not MS related)

Here is an open letter to Novell.

Re: Banshee Music Player

Dear Novell,

Please note that Linux supports having spaces within filenames. In fact, it has supported this since before you got involved in Linux. Please update Banshee with this knowledge. That simple four-character addition to your program will bring Banshee up into the 1990s at least.

While you're at it, can you fix Banshee's file allocation monitor plugin so it actually, like, does what it's mean to do and save me having to manually import new songs?

Another great idea I probably won't get around to doing

While much of the Linux world is focusing on finding a way to package binaries in a distro-independent manner, I have a solution working itself out in my head.

Source code is already distro-independent, right? (the ./configure scripts always work out where everything is). But source is a pain to install sometimes, with you needing to read the mind of the developer in order to guess what dependency you're missing. And source is always unfriendly for newbies to install.

In addition, Debs, RPMs and Autopackages aren't exactly a cakewalk to create. Oh sure, you can create a Checkinstall Deb, but it's not a proper package with dependencies and stuff. Building a proper package is beyond the abilities of most volunteer helpdesk people (such as those as Ubuntu Forums).

So, why not create some sort of scripting framework for downloading, compiling and packaging source code? I have called my proposed framework "Bleeding Edge"

For instance, take the following code snippet:

from bleedingedge import *
require("libsdl1.2debian-all", Debian)
require("libsdl1.2", Mandriva)
require("sdl1.2", Suse)
require("libgl1-mesa", AllDistros)

sourceGet("http://www.sourceforget.net/myproject/myproject-beta.tgz")
configure()
make()
debian_install(maintainer="chris@hotmail.com")
rpm_install()

Let's take this line by line:

from bleedingedge import * - This imports all the modules from my source management system into the local namespace, for simplicity. In a real implementation, an ImportError would then call a function that downloads and installs the Bleeding Edge module.

The "require" functions take two arguments and one option: The first is the package name that is a runtime dependency of "myproject", and the second is the distribution that it is relevent to. The Bleeding Edge module has already checked to see what distribution we're compiling on, so it only runs the statements that are true for our distribution (including the "AllDistros" one later on).

The other option taken is for a specific version. Note that no actual build dependencies are listed: Bleeding Edge would know that the build dependency for "sdl1.2" is just "sdl1.2-devel" on Suse, for instance. Like any experienced Suse user would. If a particular make system is required (like Jam or Scons), that could be listed in the requires.

Sourceget() does what you'd expect - it downloads the source code as a compressed archive. However, it also untars and ungzips the source into a directory like /usr/src/.

Configure() would change into the correct directory before running the configure script. The output of ./configure is piped to a piece of code that checks for error messages. If Bleeding Edge detects errors to do with dependencies, it can search the Apt database for the missing dependencies, and then ask the user whether they want to try installing them. This is really to provide a means of debugging the script for the packager, and intelligently handle any human error that may occur at that time.

Make() would probably have to have its output directed to a file, and then have the file scanned afterward for error messages. Make's error messages always have the same form, so it would be easy to spot. The user could be told that the package failed to install, if a message was encountered. Otherwise, execution would move onto the next step.

Debian_install() simply uses Checkinstall to install the package. But the packager can choose to supply keyword arguments which will tell Checkinstall what information to put into the package, such as "maintainer" (shown here). But what's this? Checkinstall would automatically put "beta" as the package version - dpkg will not allow this, so Checkinstall would fail. However, Bleeding Edge is smart enough to know dpkg's rules, and will prompt the user to choose a proper version number (suggesting 0.9 as the default for "beta").

If we were on an RPM based system, the debian_install() function would not be called, and instead the rpm_install() function would run. I have no idea if an alternative to Checkinstall works for RPM systems, so I'm hazy on how this particular link would work.

See what I mean? This is a simple example and easy to write. Yet, it provides a lot of opportunities for error correction. For installations like Firefox 2, where you need to move files around to get the software to compile and run, Bleeding Edge would provide safe interfaces to the mv and rm programs (so files can be moved back to their original places should the package be uninstalled). Also, distro-specific parts (like specifying the location of Lua for installing Aleph One on Ubuntu) can be handled without confusing the other distros, because Bleeding Edge will not run parts of the script that are inappropriate.

Best of all, you can get up-to-the-minute software for all architectures, without dependency hell and without going to the command line. The finished package is optimised to your system and registered with the native package manager. Unlike other packaging formats, the installer script which runs as root is human-readable, so you can check that it's not malicious. A package would only take up the same size as the source code (plus a kilobyte or two) and you can even use the system to install binaries!

I'd love to get started on this system for Copland 1, and introduce it to other distributions, but I still have to finish Copland 0 first! I hope hope hope that I can do the latter very soon, and that I get a number of programmers to take on the load of creating other programs so I can work on Bleeding Edge.

Open-source proves itself

One of the lesser-known cited benefits of open formats is that you can save into an open format, and forever more be able to access the data.

Before Microsoft Word became the dominant format, there were a number of popular word processing formats. When Word became dominant and the older programs stopped being made, documents made with those older programs became unviewable without the legacy software. If the legacy software stopped running on the newer computers, you effectively lost the documents.

With open formats, the likelihood is that there will always be a program that will be able to work with documents in a particular open format. And if there isn't, you can program (or employ someone to program) a filter for the format. The specifications, and even the source code, are all there free.

It's not mentioned as often as the other OSS benefits, mostly because laypeople probably wouldn't really understand: "Yeah, but MS Word will never go away, It's the biggest format!".

Tonight when searching my old Mac backups for Spice Girls multimedia (fixing a showstopper bug in Copland HFS Browser in the process!), I came across this exact problem. Remember when RealPlayer was the only streaming audio format worth mentioning? Well, I have some files from that era. The problem is, they're so old that RealPlayer for Linux refuses to open them - it gives me an error message about the codec being unsupported because of its age.

This is unacceptable! I have legacy audio files that I need to listen to! Fortunately, open-source software came to the rescue. MPlayer plays the files perfectly. And next time I join a world-wide fan network, I'll encourage everyone to use Ogg Vorbis and Theora :-) 

No, but seriously, this "unsupported legacy codecs" thing is a potential dealbreaker for putting the surviving Spice multimedia onto the web. If peoples' RealPlayer won't play the files, what's the point? Most of the multimedia was wiped out by carelessness, I don't want the rest to be wiped out through proprietry codec support (or lack thereof). Every piece of multimedia in Real format, I will convert to an open format.

GTK 1 annoyances

Using Audacity to edit this week's podcast, I've realised that I hate GTK 1 Open/Save dialog boxes.

The ones in XMMS and gTranscode are almost Windows 3.1-esque, how the directories are displayed in one panel and the files in another. The one in Audacity is also bad, in a different way. The files which start with capital letters come first, followed by the files which start with lowercase letters. So, for instance, a folder named "Videos" will come before a folder named "music", due simply to the capitalisation. Hardly untuitive, and even now it gives me moments of "I'm SURE I put that file in this folder!".

And having to set up a script to disable ESD, wait a couple of seconds then start Audacity is not exactly elegent. I mean, Audacity uses GTK, which is a Gnome project. How come they didn't forsee that Audacity might actually be used on a Gnome desktop, and therefore have it automatically turn off ESD? Or, better yet, have ALSA support as the default, rather than an optional extra to specify when compiling the program? (and Come On, Debian; ALSA has been around for a fair while and is a reliable piece of software; why not compile Audacity with the ALSA flag?)

Final thing: If you're one of the few who went out today and bought a copy of Windows Vista, then shame on you.

Actually...

...I do have sound (Gaim on Fedora is giving me notification sounds), but it's terribly stuttery.

Also, for some reason, in fullscreen mode my virtual screen is so far down my real screen that I can't see the taskbar.

Writing this from Fedora. Just found a bug in Fedora itself: It installed an item for Konqueror in the applications menu, but Konqueror is not installed. I also asked it not to install Firefox, but it did.

This rocks! I wanna get Syllable, Zenwalk, Deli, and ReactOS installed in Virtualbox now!

I installed Fedora

No, don't worry - I haven't acted on my threat to switch away from Ubuntu. I found out about VirtualBox, a newly-GPLed virtualisation solution for Windows and Linux.

For simplicity, I decided to install the Ubuntu Dapper package, which is actually the Free-As-In-Beer (closed source) Enterprise version; well, it's free for personal use. It was very easy to set up:

1. Install package
2. Add your user to the vboxusers group (usermod -G vboxusers <username>)
3. Run VirtualBox
4. Use the wizard to set up a virtual machine
5. Start the virtual machine.

Some quibbles:

The wizard allowed me to use an ISO disc image as a virtual CD, or the device /dev/cdrom; but not the /dev/dvd device. Which meant that I couldn't install Fedora directly from my DVD, I had to make a disc image of it first.

VirtualBox's sound output only supports OSS, not ALSA. And it doesn't seem to work for me anyway.

Note: I found out what this problem is: You have to log out before your group change takes effect. For an unknown reason, Virtualbox told me that it didn't have permission, when I tried to start the Fedora virtual machine. So I added root to the vboxusers group, and started Virtualbox as root. This worked.

Note: Rebooting is better.

But those are my quibbles. The speed of the virtual machine is excellent. I've just successfully installed Fedora, which is a better result than I've ever had with Qvm86. Unlike all other virtualisation solutions I've tried before, Virtualbox automatically set up a networking bridge to my host operating system, so if I wanted to I could write a blog post from within the VM. Right now I'm checking my webmail in Fedora. Awesome stuff; let's hope the open-source community makes it even better!

Pythoncard Rocks!

Hypercard still rocks more, but I think Pythoncard is the best darn programming aid I've got on my computer.

I figured out how to use it. You *don't* have an extra script file; I'll tell you how it works.

When you create a program in Pythoncard, two files are created. There is a "programname.rsrc.py" which is a Python dictionary containing all the information about where the widgets are, what the background's name is, all the properties etc. Then there's a "programname.py" which has a basic framework, importing a Pythoncard module and creating an class which inherits the module, and starting the main loop running. Then, you add methods to that class, i.e.:

def on_exitButton_mouseClick(self, event):

And that method will instantly act as a handler; whenever you click the button called "exitButton", the method will be called. Referencing other widgets is also easy:

def on_exitButton_mouseClick(self, event):
   self.components.textField.text = "Hello, world!"

as "text" is a property of "textField".

That's all there is to it. You can use any Python module you like. With the "commands" module of Python, you can use any command-line app if you like too. I decided to use Zenity, to make up for Pythoncard's lack of pre-built dialogs.

Since Pythoncard uses WxPython as the GUI toolkit, it all looks native. Oh sure, there are some rough spots (okay, so it's very buggy, and RadioGroup widgets cause the program to crash), and some things I wish they'd included (painting tools, labels on the progress bars, etc) but on the whole it's a very nice, easy-to-use GUI designer.

In a matter of an hour, I created and coded the Copland AIFF Interchange program. I've got it interacting with the Sox command-line program to convert AIFFs to WAVs. I am yet to stress-test it and add error handling for basic errors, and I also want to include a "Convert to FLAC" option (because I love FLAC as much as I love Pythoncard), but that stuff is seriously only another hour away.

If you want an easier way to write GUIs in Python that look just like GTK, you MUST check this out. You've got to download the source as the Ubuntu package is broken, but there's not even any compiling necessary, and you can run it straight from your home directory.

http://pythoncard.sourceforge.net/

I respect KDE

Although I'm a Gnome user, each time I log into a KDE session I'm amazed at all the settings available to me. Since I decided to familiarise myself with KDE, I have it as my default desktop environment.

For a start: Eye Candy. Don't get me wrong, I like the simplicity of Gnome's looks, and I love the Wii theme I have on Gnome. But KDE has some really nice looks. I have semi-transparent menus with a drop shadow. The window manager buttons fade in and out as I move my mouse over them. The quick-launch buttons have tooltips that wipe-in in a real nice way. The taskbar entries fade out. I can customise it so it doesn't look quite so much like Windows (which is one of my gripes about KDE - it's always so Windowsy).

Speed: KDE feels a little slower than Gnome, unfortunately. This is saying a lot, because my Gnome installation is the full "ubuntu-desktop" package, whereas my KDE is just "kdebase-bin" with a little extra stuff.

Customisation: This is where KDE shines. I could have sounds for events that I would never have sounds for. I can have different desktop backgrounds on different virtual desktops (I can hide the picture of my lady friend on a rarely-used desktop; one click shows me her picture, but if my parents are coming I can just drag all my windows onto some "safe" desktops). I can change the amount that my arrow cursor accelerates, and the threshold before KDE determines a click to be a drag. I can even have Mac-style menubars, in the top panel (only for KDE programs - still, it's better than having to patch the GTK source code).

Maturity: KDE has so many feature-packed programs. K3B and AmaroK are so good because they have been around so long; each new version has new features, and eventually you end up with brilliant apps. I'm sure there are others too, these are just the ones that I remember off the top of my head, that most Gnome users also have.

There are heaps of options that I haven't looked at yet, and many many standard KDE programs that I haven't even got yet. Some I don't need - I don't need the stuff for a dual-head setup, and I don't need knetwork-manager that Sal keeps talking about :-) I'm sure I'm missing a bunch of programs that get installed by default - Kate for instance. I'd like to see what I'm missing; maybe I'll find a DVD with all the packages from main.

Am I a KDE fan?

I've been asking myself the question a lot in the past few days! :-P

Happy birthday, KDE.

It all started when I decided to set up my KDE Theme Manager so KDE programs like Skype fit into my Wii-themed Gnome desktop. The experiment didn't quite work, and I ended off reversing my KDE theme changes. But then I came up with another idea - use KDE, and set up the gtk-qt-engine so that GTK programs look like KDE ones.

This was a bad idea. There's a long-standing bug in gtk-qt-engine that causes you not to be able to log into Gnome after it is installed! Thankfully I already knew about this, and as soon as I tried using Gnome again I realised - and I logged back into KDE and uninstalled gtk-qt-engine.

While I was using KDE a little bit, I opened up Konqueror and did some web browsing in it.

The Mozilla Corporation aren't going to let Debian Linux or Ubuntu use the name "Firefox" without the non-free logo, and have been really bitchy about it (reportedly, the corporation suggested that Debian should break its own package inclusion rules, and are forcing them to use a different version a mere month before Debian Etch's feature freeze). This has prompted much discussion about Iceweasel, which is a GNU-maintained fork of Firefox with a couple of extra security features.

I'm feeling really guilty about switching people over to Firefox now. On my own computer, I switched the Web Browser launcher in my Gnome panel so it has one of the proposed Iceweasel logos, and I even symlinked "/usr/bin/iceweasel" to "/usr/bin/firefox". But that hasn't negated my guilt. So I started using Konqueror.

And although I hate it as a file manager, I love it as a web browser. It has heaps of features and preferences, its own extensions system, the ability to use Mozilla plugins (NOT Firefox extensions, but then I only use User Agent Switcher on Firefox). The rendering engine gives noticably different output than Mozilla's Gekko engine, but it's good enough.

Of course, I'm sure some websites don't work (I haven't found them yet), and it doesn't look right on my dark-coloured Gnome desktop. There also isn't a WYSIWYG HTML post editor, as I've just discovered. I know HTML, it doesn't bother me.

But it's such a good feeling to be supporting a REAL open-source player. KDE have never complained that the distributions change the K-menu icon to the logo of the distribution. Gnome haven't either for their Applications menu, but I don't like the idea of using Epiphany again, because it uses Mozilla's Gekko rendering engine.

Apparantly there's an open-source web browser for Windows called Swift, that uses the same KHTML engine that Konqueror uses. When their website comes back up, I'll take a look and maybe recommend it to a friend of mine.

(Sorry if this message makes no sense to you... I'm writing it as a stream of conciousness and assuming that the reader knows as much about Linux and computers as I do)

Also, I'm just going to quickly mention that I've met a girl online who I think is wonderful. I've never met anyone like her before. She doesn't know about this blog, and even if she did she probably wouldn't get all the way through this message as she's not a Linux user :-) I'm never going to kiss and tell, but I already like her a lot and if you're all good I might give you some more information in the future :-)

What QDvdAuthor is like

I just realised that I forgot to keep you updated on how my video compression went, and how QDvdAuthor was.

My video compression on Windows failed for some reason which I can't remember - I might've run out of disk space. It uses heaps more space than you'd expect.

I also tried QDvdAuthor, but that program is a train wreck. It crashes all the time, and the interface is terrible. I even tried running it on KDE to see if that would solve the crashes, but it doesn't.

I found a program called DVDStyler, which you can get through a 3rd-party Ubuntu repository, but I haven't given it a proper working-out.

One program I was quite impressed with was AcidRip. This is a DVD-ripping program, which can even rip copy-protected DVDs. I ripped one of my sister's DVDs (we've been trying to find a legitimate copy for ourselves, but to no avail), purposely made the recoding fail, and then put the raw files into Nero for Windows. I probably could have DVDStyler as there was no transcoding necessary, but hey I didn't think of it.

AcidRip is available from repositories, but I'm sure you'll need libdvdcss in order to rip copy-protected discs.

I find myself accomplishing tasks only by using Windows and Ubuntu together; it makes me think that maybe there's not one operating system which should be able to do all tasks; that maybe multiple operating systems together is the best way to work.

And as I mentioned, Reconstructor is a great program. It actually has a hidden feature! I'm actually thinking of learning how to use squashfs-tools, and then building my own Ubuntu-derivitive distro with non-free codecs and some custom-written software to create a coherent, safe and convenient desktop computing experience. I have some ideas for this new distro which I call "Unity".

Unity will not pretend that you can use it for everything. It will be designed to co-operate with Windows, to the point of having WINE included with the system and also include tools for working with Windows programs and finding DLLs from your legitimate Windows installation. NTFS write support will be just one click away, and a special Windows program will be included to be able to download from repositories if your modem/wireless doesn't work with Linux.

A number of other things will be one-click away, through the use of Python scripts. 3rd-party GUI frontends will be included for certain tasks like editing xorg.conf. The Fish shell will be included as standard. File encryption and decryption through Blowfish will be available as a Nautilus script - just right-click the file and choose "Encrypt...".

I've lots of ideas. Now I've just got to work out if I can operate squashfs-tools :-)

Also, my computer is running really fast due to my large memory and prelink and preload; but it takes an age and a half to load gdm. Okay, it didn't really take that long, but it was longer than it takes on my iMac. I think it's Preload's fault; I used the Top command shortly after logging in today, and Preload was at the top of the list (meaning that it was using more processing power than any other program running at that time).

Got XGL and Compiz working!

I know some of you don't know what XGL and Compiz are, so I'll explain first.

XGL is a system for Linux where the objects on the desktop are drawn by the computer's 3D graphics card, rather than the computer's CPU. This means, in theory, that the CPU has more power available to it. (or does the overhead of running a bigger program negate the saving?)

Compiz is a window manager. A window manager maintains the windows on screen and draws the title bars and things. The reason why Compiz is so good is because it can create amazing special effects on your desktop, as long as you've got XGL installed.

Words can't really explain the effects, so do a search for "Compiz" or "wobbly windows" and you'll find plenty of pictures and videos and things. Basically, whenever you move a window, it stretches and deforms as you move it. Windows have a drop-shadow, and they become semi-transparent when in the background. When they minimise, they zoom away into the background.

Apart from "wobbly windows", Compiz is famous for drawing the user's virtual desktops onto the faces of a cube. You can switch from one desktop to another by Control-Alt-dragging. Cool effect.

I tried installing XGL and Compiz back when I first upgraded to Ubuntu 6.06, but it didn't work. I decided to try again today, and what do you know, the instructions have now changed, and I got it working!

I now have KDE as well, so I set up KDE with Compiz too! Naturally, there are a few bugs. Shutting down XGL/KDE kills the X server. Using the launchers in XGL/Gnome causes visual artifacts. It seems that you can't run two DEs at the same time when on XGL.

Compiz's special effects are better than those which will be in Windows Vista. XGL and Compiz are free to use and only require 256 megs of RAM. Vista will be expensive, and the effects in Vista will require 1 gig (plus 128 megs of dedicated graphics card memory)!

I have readers! / WINE

I have had two messages telling me that people read my blog. Thanks! I think a number of other people are occasional readers.

I'd just like to talk about WINE, if that's alright. For those of you who don't know, WINE is a program for Linux that allows you to run some Windows programs. It's an open-source implementation of the Windows libraries, and because of the way it's built, you can get the genuine Windows libraries and put them onto your computer and make the programs run better.

Due to certain things, I'd never read the HOWTO about substituting Windows libraries for the WINE ones, so I'd never had much success. I could run a simple CD-cover-designing program that came with my computer, a motocros game, Firefox for Windows, and the Flash 8 plugin for Firefox.

Thisiscrazy

(LEFT: hi-5.com.au on Linux Firefox, RIGHT: The same site on Windows Firefox on WINE)


So then I found that WINE creates a kind of Windowsy file structure inside the Linux user's home directory (/home/chris/.wine), and you can put the Windows DLLs there. (/home/chris/.wine/drive_c/Windows/System/)

Now I can run the Windows beta of Songbird on Linux! It's a bit slow, and sometimes the playback is a bit jaggy, but otherwise it's okay. It probably works better than the native Linux version at the moment :-)   Although my MP3-player's software runs, it can't find the player. I've almost had Microsoft Movie Maker running.

My tip is: When you launch a program through WINE in the terminal, if it doesn't work, see if it mentions any missing DLL files in the terminal output. If it does, find the DLL in your Windows partition and copy it over to WINE's directories.

Finally. I don't know if I mentioned it, but I'm a fan of the podcast they do over at www.ubuntuos.com. Please support them, they've just put out a new one. Oh, and I bought a cheap  Windows game called Ambulance Driver; it's heaps of fun. Doesn't work on WINE though, it tries to run but nothing appears on the screen. I bet Cedega would work with it... but that's another blog post...

Long time, no post

Well, the truth is that I've been using Ubuntu Breezy on my new x86 PC for most of the time. I bought a video digitiser that only works on Windows (boo!) and an LG DVD burner that works on Linux.

Funny story about that: When I plugged it in, the computer took a long time to boot at certain disk-related parts. When I tried to mount the drive, it also took a long time before failing. So I turned on DMA. Funnily enough though, I accidentally turned on DMA on my existing CD-RW drive, and that fixed the problem! (turning on DMA on the DVD burner later actually made the startup slow again, though not as slow as before).

My Dad has been using the computer most of the time to digitise his friends' videotapes, so I've sometimes been relegated to the iMac. I installed Enlightenment (E16) from repositories, and the Star Trek theme, so now it's pretty cool!

I also tried installing the latest Xfce on my new computer, but I accidentally downloaded the installer for the old version. But still, it's a pretty cool installer! It actually compiles the software in a user-friendly fashion. So now my computer is littered with Xfce stuff. My "Open as Root" Nautilus script now opens Thunar instead (because I compiled Thunar). Not what I really wanted, but still it's quite good.

Am I getting better at compiling software? Probably! I failed to compile Enlightenment on the iMac, and I failed to compile Mono on the PC (yeah I know, they're both in repositories) but I did manage to compile libexo and Thunar, and just now I've compiled Xmoto (which looks like a very promising Elastomania clone). I also compiled a small OpenGL program, Sable.

Oh, that reminds me: I found out that my ATI card is one of the ones supported by the proprietry driver! Yada yada yada, I've got acceleration now :-)  Plus, I'm learning more about the terminal. I installed Fish the other day (from an RPM) and that really rocks. And I've found out how to use the at and batch commands... look them up, they're cool too!

Maybe it was GPL-flash?

Epiphany and Firefox were crashing with an apparant X server error, whenever I tried to visit a page on the Harvey Norman website. (By the way, good work webmaster, for making the product list dependant on Flash! </sarcasm>)

It even once crashed the X server. Now, I'd thought that I'd uninstalled the GPL Flash Mozilla plugin, but it looked like I hadn't, and just out of a hunch I uninstalled it to see if that fixed the crashes.

It did, of course.

The moral of the story is: If you want to browse the web reliably on PPC, don't install GPL Flash (it doesn't work, anyway).

The other moral of the story is: If you want to browse Flash-based websites on Ubuntu, get an x86 PC. Which is something I will do. I'm currently thinking of a simple Sempron 3200+ system by Compaq, and when I get more money I'd upgrade the memory and possibly swap in an Athlon 64 processor. I heard that you can do that, so it's always a good option.

Good lightweight browser

In my continuing quest for a good lightweight web browser, I discovered Links2. It's a fork from Lynx (text-only browser), with support for graphics, tables, Javascript, and apparantly Frames. Visit the Links2 website: http://links.twibright.com/. It looks and works the same in Links2 as it does in Epiphany - great! Links2 is fast, uses up less than a megabyte of RAM, supports some log-in sites that Dillo doesn't (but Dillo supports some that Links2 doesn't), has anti-aliased text, optional Referrer and User-Agent faking, and lots of other great little features. And it's so fantastically stable. You can even run it in text-mode, although I tend to prefer w3m for text-mode browsing.

I've also downloaded the Hacked Links Project, which combines features from Links2 and Elinks (which was another fork). I'll try it out in a little while.

Also, I downloaded Prelink. When I next restart I suppose my programs will start faster... or slower; I don't know which. I'll give you a status report.

Xubuntu Dapper Beta is up to number 32 in the Distrowatch list. It looks like quite a few people are interested in learning more about it. I've heard it has come a long way from Xubuntu Breezy, which frustrated me endlessly.

For those of you who don't know, Xubuntu is a version of Ubuntu. Instead of using the Gnome desktop though, Xubuntu uses the Xfce desktop environment, which is lightweight (uses little memory and disk space). I'm seriously thinking of trying it out in the next couple of days, before my next billing month starts for broadband. Of course, I also want to download and try Ubuntu Dapper and Kubuntu Dapper.

Unfortunately, I only have a couple of hundred megs left of my download allowance before it's shaped back to 64kbps; so I'll have to choose one and one only.

I wonder what Edgy Elk (the next version of Ubuntu which uses bleeding-edge technologies and lots processing power) will do to Xubuntu?

I got Apache working properly!

I used to have problems with Apache 2 (web server software) on Ubuntu.

You see, I run an Apache server on my own computer, so my friends can download songs and videos of my/their favourite group Hi-5. Before I got Ubuntu, I ran a WebSTAR server on Mac OS 9 (with custom-written access control provided by Python).

My friends had almost no trouble downloading from my WebSTAR server. Their downloads rarely finished prematurely, and when they did it was usually because I was trying to use the computer at the same time :-) . When I switched to Ubuntu/Apache, it would happen even when I wasn't using