LCA 2008 Google Party Mix
The day finally came, and though I was a ball of sweaty clothing from
giving my Lightning Talk I was ready to do some mixing for the LCA
2008 Google Party. Afterward, thanks to some pre-prepared scripts, I
put the mix up on my torrent server pretty soon afterward. If you
want it, you can download the mix
via BitTorrent or
read the track
listing. All the music is Creative Commons licensed and therefore
my mix is also similarly licensed; I'll work out the exact license
code when I've looked at the licenses on all the music, but for now I
will release the mix under a Creative Commons 3.0 By-NC-SA license.
Thank you to Peter Lieverdink and the LCA 2008 team for allowing me
to mix at LCA - I had a great time doing it. And my collection hat
(thank you Stewart Smith) raised $24.30 to donate to the artists. I
reckon that's pretty good for something completely voluntary where
most people hadn't been really getting into the music much (that I
could see). Now to work out how to donate it...
posted at: 20:48 | path: /tech/lca | permanent link to this entry
Network Interactionativity
For some reason, on certain access points at LCA - for instance the one
in the St. Mary's common room - I need to set my MTU to 1000 (i.e. down
from 1500) in order to get Thunderbird to do secure POP. Everything
else works fine, but Thunderbird just sits there timing out. I
discovered this by watching the Wireshark log and noticing packet
fragments disappearing (i.e. some packets where the tcp fragment
analysis couldn't find parts of the packet to reassemble). Hopefully
this isn't also causing Steve Walsh to pick up his specially sharpened
LAN cable and hunt me down...
posted at: 23:16 | path: /tech/lca | permanent link to this entry
On to other things
After spending four hours or so working on my hackfest entry, I was less
than optimistic. My entry had yet to even be compiled on the test
machines, and it still had huge areas of code that were completely
unimplemented. When I went into the common room at St Mary's, Nick from
OzLabs recognised me and helpfully mentioned that someone else not only
had their code completely running but was in the process of optimising
it. I promptly resigned.
I say "helpfully" sincerely there. It is a bit of a pity that my ideas won't see the light of day this hackfest, and that I won't be in the running to win whatever prizes they might offer. But since I don't have a snowball's chance in a furnace of winning anyway that's hardly a real disappointment. And I can go to bed with a clear head and prepare for my lightning talk and the Irish Set Dancing and mixing I plan to do at the Google party, which realistically are much higher priorities.
I do hope that we get to see the winning solutions, though...
posted at: 22:17 | path: /tech/lca | permanent link to this entry
Hackfesty?
I've decided to have a more serious look at entering the hackfest,
since I'm familiar with processing fractals with parallel algorithms.
Downsides are that I've only done it with PVM, I haven't done anything
with the Cell architecture and there's all these other really cool
talks to go to. That and I need to have my eyes stop glazing over
when I start reading anything more detailed than the "Fire hydrant
and hose reel" sign opposite me.
posted at: 11:03 | path: /tech/lca | permanent link to this entry
At last you know what you're getting
I've finally mangled up the track listings for the
Flashing Google Badge
Mix and the
Wired Kernel Hacker
Mix. Now you know what you're listening to!
posted at: 12:46 | path: /tech/lca | permanent link to this entry
The "solving things" conference
Last year at LCa 2006 I had two guys take five minutes of their time
to help me get my work laptop on the wifi, a process which included one
of them lending me his PCMCIA card (that didn't require firmware) so
that I could download the firmware for my inbuilt card. I've forgotten
your names, whoever you were, but you guys rocked. And I've told the
story many times to illustrate why groups of hackers getting together
can achieve things that would take a single person a lot of work to
troubleshoot.
This year I've had similar experiences. The first one was getting my DVD drive set up to use DMA. On the Intel 82801 ICH7 family of ATA bridges, it supplies a SATA interface for the hard disk and a PATA for the DVD. Unfortunately, the standard ATA driver doesn't interface with this combination correctly and doesn't enable DMA on the DVD drive (or allow you to set it via hdparm). To fix this, put the following incantation on the end of your kernel line in your GRUB configuration file (for me on Fedora Core 6, that's /boot/grub/grub.conf):
kernel ... combined_mode=libata hdc=noprobe
The other was finally getting CPU frequency scaling working on my Intel Core 2 Duo. It's an unfortunate but now well-known bug that the Fedore Core 6 anaconda installer will not correctly work out what type of chip this is. It therefore thinks that you need the Pentium (i586) kernel rather than the Pentium II and later (i686) kernel. Since Pentiums didn't come with frequency scaling, the kernel package doesn't include the necessary kernel objects for speed stepping. You'll know if this applies to you with the following command:
rpm -q kernel --queryformat "%{NAME} %{RELEASE} %{ARCH}\n"
The third column will have the architecture - standard rpm and rpm -qi commands won't tell you this. uname -a will tell you i686 even if the kernel is i586, so don't believe it. To download the new kernel version, use:
yum install kernel.i686
I think that you have to do some special magic to get it to install the i686 architecture of the same version. As of my writing, it picked up the 2.6.18-1.2868 version of the i686 and installed that beside the 2.6.18-1.2869 version already installed. Yum won't correctly replace the i586 architecture version with the i686 architecture version if it's the same release number, as far as I know. I don't know what you do in this case.
Of course, while you're running the current working kernel, download all your kernel-specific packages for things like wireless networking support. These you have to download the RPMs from your local mirror and install manually, because it's currently running a different kernel and yum will only install packages for that. Of course, if your ipw3945 driver is compiled from source, you'll have to make that clean and compile it and the ieee80211 module from scratch again. Take it from me, there's some weird voodoo to get this working that took me a day to correctly incant.
Then you should have an acpi_cpufreq.ko module installed and be able to
use one of the CPU speed regulator daemons. I think I have both
installed somehow, which means they're probably fighting it out or
something. Go me. Still, I can blog about it, which hopefully means
that Google will index it and someone else will learn from my mistakes.
That's the only reason I'm doing this, you know.
posted at: 05:36 | path: /tech/lca | permanent link to this entry
Rad GNOME Presenters
Andrew Cowie and Davyd Madeley put on a good show for how to start
writing GNOME applications in C and Java. Andrew in particular
is an enthusiastic speaker, and understands that it's very difficult to
choose which talk/tutorial to go to and sitting for ninety minutes and
listening to one topic is sometimes difficult. I totally appreciate that.
And, by Torvald's Trousers, he's fast at using UIs - watching in work in
Eclipse makes you realise how good programmers can churn out a fully
implemented file browsers in an evening.
I'm going to have to kidnap one or both of them and bring them to the
CLUG Programmer's SIG meeting. This talk was exactly what the people
at the PSIG that I've been talking to have asked for.
posted at: 10:49 | path: /tech/lca | permanent link to this entry
I'm on the shirt that killed River Phoenix
In crowds, there's always someone heading vaguely toward you but heading
somewhere else entirely. There are a whole lot of little protocols -
not meeting their eye, negotiating a slightly different course - that
allow a certain social space. So it's always disconcerting to have
someone stride directly up to you - when they actually do mean to meet
you and you've now been pointedly ignoring them. He pointed to my
LinuxChix Miniconf "Standing out from the crowd" T-shirt and said:
"Where can I get one of those?"
I gave him Mary Gardiner's email, and whatever other methods I could remember of how to get in contact with her. But though it's a long sleeved shirt and it's a warm day, I'm totally chuffed to have got one now. LinuxChix roxxors!
(BTW, the title is a reference to TISM's popular song
(He'll
Never Be An) Ol' Man River, of course.)
posted at: 09:25 | path: /tech/lca | permanent link to this entry
Kernels meeting in the middle?
Andy Tanenbaum's talk on microkernels was, IMO, really cool. The
interesting thing to me was that this almost exactly mirrored Van
Jacobsen's talk at LCA 2006 on
speeding
up network access by moving the network drivers out of the kernel.
Not only did this speed network access up, but it also removed a whole
bunch of ugly locking stuff from the kernel, improving its quality as
well. Another side benefit of this was that you could now run half a
dozen network processes instead of one. With architectures like Sun's
Niagara, Intel's quad cores and many other systems getting many cores
on the same chip, this is going to deliver an increasing speed-up.
It occurs to me that this is the other good thing of Minix. The disk driver, the network driver and the screen driver can all run at full speed because they get 100% of their own CPU time. Separating these out onto separate processes that can run on separate CPUs will deliver better scaling than bloated kernels that have every driver and every system all bundled together. To me, this is not really a problem for Linux - we already have proof that these trends are happening. Linux might have a larger kernel, but we're meeting microkernels in the middle.
For Windows, though, I'd say that it will become increasingly obvious
that it just can't compete on reliability and scaling in the area that
they so desperately want to get into: the server market. The annoying
thing about this is that it
won't really matter, because Microsoft knows who to market to (the
upper management who don't read technical journals) and have the budget
to make anything look good. The fight is still on, but it's still not
between Linux and Minix. Sorry, Marc,
stirring that particular pot again does not get you any kudos.
posted at: 10:51 | path: /tech/lca | permanent link to this entry
Submitting patches and watching devices
Two more excellent talks at the LinuxChix miniconf - how to work on
open source if you're not a programmer and how to understand PCI if
you're not a hardware hacker. It was amusing to see that the small
room the miniconf has has been constantly full, with people often
having to sit on side tables or stand in order to watch. For the
latter talk in particular, a huge contingent of guys turned up to
listen and strained the capacity of a room that had been boosted
with lots of extra chairs. Very cool.
One of the key elements that has come out of the LinuxChix miniconf (in my opinion) is that social networking is just as important as digital networking. Part of this is meeting and greeting, something that even if LCA was twice as big would still be just as awesome. Another part is the smoothing of feathers, the shaking of hands, the stroking of egos - the little things that sometimes you have to do to get patches accepted or problems resolved. One trick which Val Henson mentioned is to submit a patch with one or two obvious errors (like submitting it in the wrong format) - then the developers can feel all important and tell you you did it wrong, and you quietly submit the correct patch and everyone feels happy.
Logically, it shouldn't have to be this way. Open Source prides itself on the idea that anyone can modify, anyone can help. But this, as Sulamita Garcia (the first LinuxChix speaker) pointed out, is a fiction - the reality is flame wars, shouting matches, and sexist comments. Getting patches accepted can often be as much a knowing who to talk to as what format to submit it in. A woman going along to a LUG meeting for the first time can be, as Sulamita described it, akin to the scene in the spaghetti western where the stranger walks into the bar and everything stops. This must change if we're to be anywhere as equal and egalitarian as we claim to be.
And certainly for men it's sometimes a huge struggle. I think of myself as a feminist and consciously support equality and fairness, yet I still make the same mistakes as all the other guys I personally shrink away from. And even after this example, when you'd think I should have put a cork in my mouth, I was still putting my foot in instead.
At the last session of the LinuxChix miniconf, where we went to the library lawn to sit in the dappled sunlight and talked about how difficult it is to get a fair rate of pay. This followed on from Val Henson's talk on negotiation and knowing how to get what you deserve, which was excellent and (I feel) applied to the wider community of computing workers. Mary Gardiner organised us into small groups and specifically cautioned the men in the groups to not talk too much (which would have been a good idea even if it wasn't a LinuxChix miniconf). So we start introducing ourselves, and what do I do?
Go into a long and tedious ramble about the pains of one of my previous jobs.
Mary, the lady organising our group, gently interrupted me and moved on, and I realised my error. Andre Pang, who was also in the group, was much better than I at keeping quiet and letting the women[1] talk. I silently made the motions of putting a cork in my mouth and managed, I think, to restrain myself.
Why must my urge to speak and be heard fight with my desire to be fair and equal?
[1] - Women?
Ladies? Girls? Females? Whatever term I choose, I hit the age-old
problem of them having social connotations.
posted at: 08:59 | path: /tech/lca | permanent link to this entry
The invisible macho danger
I worked out that there were 38 women and 12 men for the first session
of the LinuxChix miniconf. In the question time, it came out that
the FOSSPOS study (I've yet to find it on the intarweb) showed that
FOSS and Linux has an order of magnitude fewer women compared to
the rest of the IT industry. And yet, when I asked my question "why is
this?" Val Henson pointed out to us that, even with that
proportion of women in the room, all of the questions up to and
including mine had been asked by men.
Ouch.
posted at: 08:55 | path: /tech/lca | permanent link to this entry
Getting your hands on a child's laptop
Chris Blizzard's talk today about the OLPC covered the question that
everyone from the FOSS world (apparently) asks: can I have one. It's
very true that even if you got 50,000 people wanting an OLPC (or whatever
the actual thing is called), that's peanuts to delivering 20 times that
number to one nation alone. However, the 50,000 number is being bandied
around - what if there was a website for people to register their
interest? And they could say how many they wanted? The more that
people spread the word, the more people might find more uses for them.
Entire classes or schools in first-world countries could sign up,
whereas they would currently be denied. That's got to be good, right?
Things like PledgeBank make it
easy to get a good feel for how many people are interested in doing
something - why not do something like that for the OLPC and see what the
real interest from the people is?
posted at: 10:08 | path: /tech/lca | permanent link to this entry
Odd hackery across operating systems
So the next step in getting MixMeister working under WINE seems to be to
get a bunch of SELinux context problems sorted. The command to do this
is chcon -r textrel_shlib_t <file> - it allows
the file to be loaded as a shared object library.
I must remember that. This got MixMeister to show its front screen,
but it still complains that WMVCore.DLL is missing.
Aside: my fallback, if this WINE hackery wasn't going to work, was going to be starting up in Windows (I still have an XP Home license installed on a smallish partition, since I'm loath to throw away something that costs money when I'm given it and I can find a use for it.) Resigning myself to not using Linux, I restarted in Windows. And then discovered two problems. One is that I only have a demo version of MixMeister Studio 7 that I was trying out a while ago. I'd have to grab the install files and my registration key off my home server - not impossible despite its 34MB installer size.
The second problem was that my portable drive, which regular readers will recall I specifically formatted into FAT32 (yes, using the -F 32 switch to mkfs -t vfat, which otherwise will give you a 12 or 16 bit FAT) in order to make it accessible under Windows should I have to go to this fallback position, is not recognised under Windows. It sees the drive, and the partition, and can even determine that it's a 32-bit FAT partition and see how much free space there is. But it just remains greyed out, and there is no option active in the context menu apart from "Delete Partition". Strangely enough, I don't want to do that.
Of course, Windows won't bother the user with such useless information as why it won't allow me to see that partition. Or what I can do about it. Or why it sees my LVM partition and assigns it a drive letter without being able to read it in the slightest. That's totally useless information to the user. Oooh, sorry, I said too much: that's totally useless. That's all that I need to say.
So, it's back to Linux again to see what I can do. Using Windows has reminded me that I have a perfectly working copy of Windows on my hard disk, with MixMeister installed and working on it. This means that there's a fully working copy of WMVCore.DLL in there somewhere. And thanks to prescience, I have already loaded the kernel NTFS drivers and can mount NTFS partitions. A bit of finding later, I've copied the WMVCore.DLL and another one it seemed to need (wmasf.dll) over to my WINE \windows\system32 directory and given them the necessary permissions. And MixMeister is now no longer complaining about it missing DLL files, or producing SELinux audit messages in the system message log.
Instead, it's just crashing with the message "wineserver crashed, please report this."
*sigh*
Another thing to try and figure out. Another thing to wade into, blindly trying to find out any information I can about what's going wrong. Another thing to stab haphazardly at, pressing buttons at random just to see if anything changes. I'm sure at this point more clueful people just give up, knowing smiles on their faces, saying "only a true lunatic with far more time on their hands than is good for them would ever bother to try and work out what's going wrong at this point."
Maybe this would be a good Lightning Talk.
So, I find wineserver and find out how to run it in debug mode
(-d2 -f). That didn't actually really help - nothing in the
debug was any different between a good run (with the unpatched server)
and a bad run except the bad run just cuts out with the helpful message
(null)( ). Antti Roppola, looking over my shoulder at one
point, suggested running wineserver under strace, and this
revealed that wineserver is getting a segfault. Now to try and put a bit
of debugging in the things I've added to see if this can tell me why.
posted at: 06:38 | path: /tech/lca | permanent link to this entry
Conserving power
With my laptop on 32% charge (not quite a record for me) and my own
internal batteries needing a bit of charging, I looked at the programme
after afternoon tea. There wasn't anything that really stood out for
me as a must-see, and as Jeff said in the opening speech it's important
to conserve one's energy and pace oneself at LCA. So I enjoyed a quiet
walk back down the slope to Shalom College, to see if they have Wifi
here yet.
I have to say that I do like the UNSW campus. It has the same style as QUT in Brisbane - fairly closely packed, and a mixture of the old and the new with little nooks and lawns of greenery amongst it all to enjoy as one goes past. Passing the John Lions garden outside the Computing Science building is particularly poignant given last year's fundraiser. And, while some people might complain a bit about the walk uphill to the conference in the morning, and even I end up feeling unfit and slightly out of breath after tackling it, it's very pleasant to walk down in the afternoon.
After Jeff's talk was a talk on Conduit, a GNOME subsystem designed to make synchronising data between a source and one or more destinations easy. It looked absolutely awesome, because the guy who gave the talk understood the problem space well and had solved it in a way that allowed both 'headless' sync to happen behind the scecnes and fully GUI-enabled ad-hoc sync with conflict resolution all beautifully handled. This allows any application that uses DBus to facilitate syncing of data, without having to be an expert in asynchronous synchronisation (not, in this case, a contradiction in terms). Jeff's talk was about enabling social networking and putting GNOME on a phone (so to speak), and this talk was about making synchronising that data seamless and easy. Cool!
And now to my afternoon's entertainment: getting my WINE patch to work. I've got all the code working, including the two bits I'd commented out because I didn't quite understand where the data was coming from. It compiles with no errors and only one or two warnings, which as far as I can see aren't caused by my code. Now I have to go through and manually label my build directory so that it has the right SELinux contexts to have execmod permissions. Presumably Fedora's SELinux configuration assumes that any big bunch of libraries compiled quite recently in your home directory aren't guaranteed to be trustworthy to use as libraries. Fine by me.
Maybe I'll find out if Wifi is enabled in Shalom, so I can post this and Google for solutions to the execmod problem.
Update: Nope, Wifi is not working in Shalom. A quick call to my front
man Steve revealed that it hasn't worked today, will be ready when the
gods have been appeased and the troubleshooters have shaken their voodoo
sticks over it, and is only likely to be sporadic even then. I realise
that this is as much a question of getting bandwidth down here as
getting the time to set stuff up, and I least of all people want to
hassle the network guys with requests that they're already trying to
handle. But it's not a great way to end the day for everyone staying
on campus.
posted at: 17:59 | path: /tech/lca | permanent link to this entry
All posts licensed under the CC-BY-NC license. Author Paul Wayper.