Heroes in Tyrol

23rd Mostra – “Heroes in Tyrol”, by Niki List (Austria-Sweeden-Germany)

I managed to see most of this film a few years ago. Anybody know where or how I can get a DVD of it? (with English subtitles). I know somebody in the wider community has to know where (hence why i’ll put this entry in the MySQL category – i know somebody there has to know something about this film).

Besides – it has drinking songs, and MySQLers will get the connection.

MySQL Bug Deskbar plugin

Over at my junkcode section, I have mysqlbug.py which is a plugin for the GNOME deskbar panel applet.

If you’ve used Quicksilver on MacOSX, then you know the kind of app that Deskbar Applet is.

This one lets you type “bug 1234” and be given the action of “open mysql bug 1234”. If you type “edit bug 1234” it gives you the option of editing that bug number.

We’ll see if this proves useful.

Many thanks to kamstrup (one of the Deskbar developers) on #deskbar on gimpnet for helping me out with the plugin.

I totally heart Deskbar. It’s awesome.

copies of the “Don’t Ban Digital Innovation and Consumer Rights” petition

I’ve just picked up a number of copies of the petition from the printing place. They’re ready to go out. If you (or your LUG, your business or friends) can get signatures on it and would like a number of physical copies to hand out, let me know and I’ll mail them to you.

Bundles could be going out as soon as tomorrow.

I also sustained a paper cut while carrying them upstairs. See, I spill blood in this cause!

Maemo 2.0 (Nokia 770 Internet Tablet OS 2006)

Installed the Beta on my 770 the other night – rather cool I have to say. A few small niggling things, but it is BETA.

Things feel snappier, the thumb keyboard thing is actually pretty good, the handwriting recognition seems faster, perhaps a bit more accurrate (but still nowhere near even the Newton MessagePad 120 – with version 2 of the OS of course).

I still need to get the screen fixed on mine though, as soon as you get much black (or blue) you get ugly stripes and it becomes unreadable.

Can’t wait to get GPE PIM stuff working. Oh, and actual syncing with Evolution.

Arjen’s MySQL Community Journal – HyperThreading? Not on a MySQL server…

Arjen’s MySQL Community Journal – HyperThreading? Not on a MySQL server…

I blame the Linux Process Scheduler. At least it’s better than the earlier 2.6 days where things would get shunted a lot from one “cpu” to the other “cpu” for no real reason.

Newer kernel verisons are probably better… but don’t even think of HT and pre-2.6 – that would be funny.

A Followup on: a bug on failure failure

Ramblings » Blog Archive » a bug on failure failure

I blogged about MySQL Bug 17928 a little while ago. Well, I’ve submitted a patch that fixes the problem. I wrote rather a rather detailed explanation in the Changeset comments (and I encourage every body who commits code anywhere to do the same). You can see the patch over on the commits list (or here if you don’t want to sift through the archives).

In all theory it shouldn’t be hard to enable multiple simultaneous backups for Cluster. How useful this would be is very debatable. Arguably of little use of all (it’s a REDO log backup). Of course, testing for this (as we test Node Failure) would start to get horrific. Any good arguments one way or the other are welcome.

Ubuntu and more than 1 audio device

Welcome to a new category of blog post: heart-it-or-fart it.

This is an extenstion on the “Inciting Hatred” category, also allowing for praise.

I have a headphone socket on my laptop that seems a bit loose or a connection is dodgy. So, I’ve pulled out my old-and-trusty iMic – a device that came around so you could (for example) have sound input on a bunch of Macs that didn’t come with it (like my old 500mhz iBook). It also happens to have great audio out.

So, plug it in. little thing pops up saying “found new sound device, would you like to open the sound preferences panel”. So far, so good. So that’s what I do, open it, select my audio device and close it.

Then, if i’m lucky, it’s actually seleted it. More likely I have to go back and select it again, kilall esd, select it, relaunch rhythmbox.

Then i can play.

Maybe one song.

Then it skips over everything else in the playlist without playing them.

Quit rhythmbox, start it up again, works. for one song.

rinse, repeat.

Or, if you’re more lucky, you’ll get a fraction of a second of sound out of rhythmbox before it skips over everything. you even get a red stop icon next to the song. If you click on it, you see “Playback Error. Not negotiated”. Hrrm… not a very good error message there.

Oh, the other thing, if you succeed in playing your playlist, you then get, at the end, ALL OTHER SOUND EVENTS that happened for the ENTIRE TIME your playlist was playing. Because what pleases me more than ever is hearing 80minutes worth of gaim sounds one after another.

In the old days i would just “killell esd; esd -d /dev/dsp1”. This doesn’t seem to work anymore.

Verdict: fart it.

(oh, and before anybody says anything – i will be filing a bug report. just the sort of bug that you’re amazed that it was let out as a non-beta release)

Matt on Ruby resource management (and why you can do it elsewhere)

ERROR: The requested URL could not be retrieved (yeah, site didn’t work when i clicked on it from RSS).

Matt uses this bit of ruby code to demonstrate that here you can’t ever not close the file handle:

File.open('something.txt') do |fd|
# Manipulate the file through 'fd'
end
# File handle is now closed

Which seems pretty cool. However, a good C++ programmer can also acheive the same (or better) things!

For example, in NDB (well, in the portability library we use inside NDB) we have a class called Guard. The constructor for Guard pthread_mutex_locks a mutex. The destructor unlocks it. So, for when you’ve got some simple mutual exclusion you need doing, you can have bits of code like this:

{
Guard g(m_config_mutex);

if(m_config.foo<10)
return -1;

// other_stuff
}

Guess what, those nice little error checking bits that should just return -1 look a lot cleaner and you can never forget to unlock the mutex! You’ll see code like this in the management server (ndb_mgmd – source in storage/ndb/src/mgmsrvr/ mostly in MgmtSrvr.cpp).

In fact, you can do this with files as well (multiple ones)  and have them all closed on exit from the block. It’s all a matter of having (or writing) some good classes. I’m no Ruby expert – but I think you’d have to have more indentation to do that with two files?

a bug on failure failure

I’ve been working on BUG#17928, which is all about “testBackup fails in error handling testcases” which appeared after we merged in some work to the 5.1 tree (which is okay in 5.0) that changes some things in the way that online backups are done in NDB to better support recovery in the event of various types of failures and various times in the process.

Anyway, not all systems are affected by this bug… I’m at least reproducing some of the failures on my laptop and have spent the past while in the depths of the BACKUP and NDBFS blocks trying to work out what’s going on and why we’re hitting this assert.

NDBFS is an interesting block as it’s the file system interaction for NDB – so we’re doing things that could take an arbitrary amount of time. We don’t like waiting for those sorts of things in cluster, so we go on and do other work.

For backup, we buffer up writes and send FSAPPENDREQ (File System Append Request) to NDBFS only when we have a reasonable amount of data to send. For example, for very small rows being put into the log file, no use making a write() call for each row – batch them into big chunks!

Back to the bug; I’ve got a theory[1], half a patch and some work to do tomorrow.

[1] excluding gratuitous Buffy quote

Call for Comments on MySQL Online Backup API – Jay Pipes

Call for Comments on MySQL Online Backup API – Jay Pipes

It’s been interesting watching the ideas develop for online, consistent Backup for MySQL.

I should expand that… consistent across storage engines. Other RDBMS vendors get it easy – they just have one storage engine to back up. We have several – and people want them done consistently (especially when you have multiple transactional ones).

For Cluster (NDB) we have added complications because you’re then wanting a “cross storage engine consistent backup” and there’s synchronisation down inside the cluster to make that happen. Greg and I have been discussing possible ways we could make this work. Not sure if it’ll be in the first version though :)

This is really interesting because AFAIK this is the first time that anybody has tried to solve this particular problem.

So go check it out and see what you think of our ideas.

the special level of hell

“reserved for child molesters and people who talk at the theatre”

(also Malcolm Reynolds if he takes sexual advantage of “Mrs. Reynolds”[1])

I’d like to add to that people who don’t merge their patches.

Special hell.

[1] If you don’t get the Firefly reference you haven’t watched Firefly enough. Go do that. Now. No, you can’t do work first. Firefly, now!

it’s also good to note that this is mostly tongue in cheek. although MERGE YOUR FRIGGEN PATCHES BEFORE PUSHING. Every time you don’t, a cute bunny and baby dies.

Welcome – Ubuntu Linux 6.06LTS

Welcome – Ubuntu Linux

I took the plunge and last night I upgraded my laptop (my primary work machine – as in it cannot be busted[1]) to Ubuntu 6.06LTS (otherwise known as Dapper Drake. The LTS is for Long Term Support). It went pretty smoothly.

I had to remove irda-utils after the upgrade as a module being loaded was causing a panic (which showed itself by having everything freeze about 4 seconds after gdm started up and you’re about to enter your username). I should report a bug for that…

It’s slightly annoying that I had to disable gdm so i could see the panic to find out what was crashing. Perhaps we need either:

  • crash dumps (a-la IRIX and others where you can then run a debugger on an image of the crashed system)
  • panic over the top of X (a-la early MacOS X)

I have to say though, I am very pleased with the upgrade. Everything seems a bit snappier (much welcome) and NetworkManager works! I haven’t tried to suspend my laptop yet though.. so we’ll see if that works.

But a recent version of f-spot is welcome, I’m thinking I’m going to start using it for my photos. The next trick is going to be when i completely run out of disk space on my laptop for them.

The new Rhythmbox has me using it again. Disappointed not to see google talk support in gaim (although maybe i’m just not looking right).

The Window List still exists – a UI element I solemly think should die a quick death. It didn’t work in Microsoft Windows 95 with more than a few windows  open and it doesn’t work any better now (okay,  a little, but not much).

I want to take a second and marvel at the look of the new Human theme. It is rather lickable and, as we know, the only thing that matters with UI is how much you are licking your monitor. Even without wizz-bang GL compositing powered by cold fusion bucky ball quantum knot computers, it seems nice.

gnome-xchat is taking a little bit of getting used to, but the toast that pops up when somebody “stewart: hey”‘s me is useful.

Epiphany has received some updates too which are quite welcome. A bunch of elements used in phpBMS for Web 2.0 stuff are a lot faster. In previous blog entries I’ve said why I’m using Epiphany and not Firefox. I may re-asses this at some point, but I’m not really in any mood to manually move over saved passwords.

Evolution seems to suck up a bit less memory. Started out only using about 247MB. Now 338MB+52MB for evolution-data-server though…. maybe I’m just not feeling it as much due to other things chewing up less. WHY THE FUCK DOES IT TAKE 390MB FOR A PUNY 10GB[2] OR SO OF MAIL?

On the other hand though, there’s been a bunch of UI improvements in Evolution that are really welcome. I’m quite pleased with the upgrade.

My Bluetooth seems to have broken (my send image from phone to laptop didn’t work). I haven’t had time to debug yet.

Is it just me or do fonts look a bit better too?

I’m probably going to run beagle soon too.

The new version of Deskbar seems to work a lot better. I’ve noticed I’m using it more. Although is it worth 37MB of RES memory?
Tomboy seems to have gotten a bit better, but I’m still experiencing a bug where if i click anywhere that there isn’t text in my “Start Here” note I get a new note with some random large chunk of text from my “start here” note. I credit tomboy with a lot – namely a boost to productivity and not loosing notes. I massively heart it.

I’ll be trying MonoDevelop again to see how easy it really is to whip up something quickly. In breezy things seemed to crash too often to be useful.

The support for switching between audio output devices is much welcomed. However, there still seems to be some bugs – especially related to USB audio devices. I have an iMic here that I bought years ago and am again using since the headphone port on my laptop seems to be having problems (electrical connection related, not software).

Liferea (feed reader) has a lot of improvements. I think it’s chewing less RAM too.

I had to fiddle with my keyboard layout things to get my DVORAK layout working properly. It still seems as though Ctrl-Alt-Left Arrow (and Right) to switch between Workspaces only works for the left cntrl and alt – not the right ones (that are closer to the arrows). Although now the little keyboard applet shows “USA” for Dvorak, “USA*” for QWERTY and “Swe” for Swedish.
My build of MySQL that I use (for important things – i.e. my invoices that make sure I get paid) that is typically a close-to-top-of-tree 5.1 install kept working after the upgrade – i.e .binary compatibility didn’t get boned. I did, however, need to rebuild some of my MySQL source trees afterwards (some linking with SSL foo failed, clean build fixed it).

I also did a fresh install from the Desktop CD under VMWARE on another machine. Quite nice installer.

I feel like I’ll move my Mum’s machine over to 6.06LTS very soon (this weekend) as I’m confident it’ll be a great release for her. I’m sure she’s going to love f-spot. I’m also going to introduce her to rhythmbox, Sound Juicer and possibly last.fm as she now has speakers plugged into her computer and a CD player in her car (okay, had it for a while, just slack in getting her up and running burning copies of CDs for the car).

I didn’t get Avahi out of the box after the upgrade… I wonder if I need this manually for the “Share my Music” feature of Rhythmbox to work. Installing now, so I’ll soon know.

I haven’t tried Ekiga (GnomeMeeting, but new name) Internet Phone yet with any SIP things. Since I have a physical SIP phone (a SNOM-190) I may not really use it (except when travelling). Good to test at some point though.

The real OpenOffice.org 2.0 is much overdue – as I’ve sworn rabidly about before. Big difference being this version actually works.

A very worthwhile upgrade IMHO.

The next box to get the upgrade will by my MythTV box – or Mum’s. But probably both this upcoming (long) weekend.

[1] I, of course, have up to date backups and a quick disaster recovery process (get machine, xfsrestore / and /home, continue working). However, this is a pain in the arse.
[2] This may be wrong… “du -sh Maildir” just takes too damn long. My Maildir is currently 1.7GB in a tar.bz2 archive.