Public Service Announcement

Good afternoon, ladies and gentlemen. Hereafter follows a HappyAssassin Public Service Announcement:

If you are thinking of converting your Mandriva system's root partition to ext4: don't.

This information is brought to you by Adam's afternoon spent salvaging the consequences of said operation...

In other news, I spent yesterday tweaking my new system. It's now running 3.34GHz (8x416) at a lower voltage. Ran mprime without errors or throttling for 8 hours (overnight last night), maximum core temperature 71 on core 1, so it seems pretty solid. Uploaded a few benchmarks to Phoronix Global - sadly some bugger's already run an overclocked Core i7 through their suites, so I didn't set any records. Bah. Also ran a bootchart. Yes, Ubuntu 9.04 may very well boot in 21.4 seconds, but my system - running x86-64 Cooker with no tweaks - boots, according to bootchart, in 16. (I'd post the chart but there seems to be a bug in bootchart in Cooker which prevents it shutting down once gdm is up, so the chart goes on until I manually kill bootchartd, so it doesn't look very clean). I can get from grub to a fully functional GNOME desktop with Firefox running in 27. Which just goes to prove you can solve any problem by throwing enough hardware at it! The ext4 thing was based on me wondering if it'd make boot any faster, but that's not going to fly yet. My master plan is to buy a couple of the new OCZ Apex SSDs when they come out, and run 'em in RAID-0 on btrfs. If I can get Mandriva to accept that setup for a root partition (may involve some hacking...), I think I could get easily under 15...

Picked up Rock Band 2 last night, been playing it (and probably annoying the neighbours) today while the system reinstalled itself (le sigh). I am incredibly happy that they put in a high-speed scrolling mode. I can actually read the damn charts now. I'm about halfway through all the new songs, 5* on everything so far, a couple of full combos. Fun fun. (Again, I'm HappyAssassin on PlayStation Network for anyone who wants to look me up).

Luongo's back tonight. Maybe we can stop sucking now! Maybe? Please?

Taking it easy

Ahh, I'm enjoying this.

Still, I did a bit of packaging. Updated amsn in Cooker to current SVN, which fixes a problem with login mostly not working that was affecting Cooker users. And it's 100% more shiny.

Helped Anssi update NVIDIA driver to 180.22, and he backported it to 2009, since it's a stable release now. So I backported ldetect-lst. If you have a very new NVIDIA card that needs it to work, or you want to upgrade to see if it improves performance or try out the new VDPAU stuff, you can follow these instructions to get the new version. I also backported radeonhd 1.2.4 to go along with the updated ldetect-lst.

Updated springlobby to the latest release. Also mostly updated synce to 0.13, though there's a patch broken in sync-engine I have to sort out tomorrow. And updated webkit and midori and enabled HTML5 video support in webkit, though it doesn't seem to work 100% in Midori at least - might take a look into that later.

Sign

Watching the Canucks play San Jose in a great game on Hockey Night, saw a wonderfully Vancouver sign - slightly odd guy in the audience holding a pink sign which just says, in black marker, "Loud Noises". :)

End of project

Well, sorry I've been quiet for a couple of days. Allow me to explain!

Unfortunately, I'm canceling the donations project. A few days ago I started checking the numbers on it, and...it just isn't working out. In the interests of full disclosure, here's the breakdown.

I always expected there'd be an initial flurry of donations from people who were aware of my situation, then it would tail off. I was hoping the initial flurry would result in enough income to keep me going for, say, four or five months, while I developed the site to grow the audience, so there'd be more ad revenue and more donors.

Well, it won't :(. The initial flurry came to around $1,800. Eating a lot of ramen, that could possibly keep me going for a couple of months, but that's all. Since then, it's ramped down (as I expected) to about a single donation a day. Ad revenue is nothing special at the moment - it'll come to about $150-$200 a month at current rates. Adding it all up I'd be looking at an ongoing income in the hundreds of dollars a month range, which just isn't practical. Especially not working 16 hour days, which it rapidly became apparent I'd need to do to keep the project afloat.

I still think it'd work if I had the breathing room to spend several months building up the site content, but at that rate, I just don't, unfortunately. So as I initially planned it, it's not going to work.

So here's what I'm doing. I'll be contacting everyone who made a donation to offer a full refund. I will be able to get a full-time job - not ready to tell all about that yet, but at the right point, I will - so I really don't need the money any more. So unless you really REALLY want me to have it to spend on a) shiny geeky toys, b) tennis equipment or c) beer, please do take it back. I'm still incredibly grateful to everyone who donated.

For now I'm going to leave the ads up, because hey, a hundred bucks a month or so is nothing to be sniffed at. :) And they're easy enough to block. I might take 'em down in future, I really don't know.

So, after I had that sorted out in my mind a couple of days ago, I decided just to take a few days off to rest and take it easy. As I said, I'd been working 16 hour days on the project, so I could do with a break. So I haven't really done the forums or mailing list for a few days. I've been watching some TV and just relaxing. Went and saw Milk yesterday; really, really incredible film.

Since I've spent almost no money in the last couple of months since losing my job, now I know I'll be able to get another one, I actually had a bit of spare money. So I done bought me a new computer! Up till a couple of days ago I did all my work off a two-year old Lenovo laptop, which was just a bit slow on things - compilation, mainly - and couldn't drive both my monitors properly. Now, I have a beastly new setup:

Antec Sonata III case Asus P5Q Pro motherboard Intel Core 2 Quad Q6600 CPU, running overclocked at 3GHz Thermalright Ultima 90 heatsink with Scythe S-FLEX 120MM 1600RPM fan G.Skill F2-8000CL5D-4GB 2x2GB DDR1066 RAM Seagate Barracude 7200.11 500GB SATA hard disk Galaxy GeForce 9400GT graphics card Scythe S-FLEX 120MM 1200RPM front case fan

The whole thing came out to just over $900 after tax, which I find amazing - I remember it used to be pretty tough to build a decent system under $1,500, this thing is just screaming fast for under 2/3 of that. Intel has the new Core i7 architecture out, but that's really overpriced for what you get. And not needing a high-end video card saves money. But, still...

I'm pretty happy with the system. I've been building my own systems for a while now. The process is remarkably similar to how it was ten years ago, but the funniest change is in cooling. The first system I built had a little heatsink that was just a centimetre or so thick lump of aluminium which was held in by a couple of flimsy plastic clips on the side of the processor socket. No fan. Heck, no case fans. The only fan was in the PSU. The Ultima 90 on this system is still essentially a lump of aluminium, but it's several inches tall, consists of dozens of extremely thin fins, and installing it involves attaching a strengthening backplate through the back of the motherboard, attaching three mounting brackets to the backplate, then mounting the heatsink on the brackets using special spring-dampened screws. Then attaching a giant fan to the whole contraption with special wire clips. Yikes. And the Sonata comes with a rear fan and PSU fan, and I added a front fan too, so there's five fans in the system now (including the one on the graphics card). Does the job, though. Four cores overclocked to 3GHz in one processor package, idle at about 35 degrees and don't go past 55 or so under load. I've always liked Thermalright.

It's ridiculously fast - it can almost build OpenOffice.org in less than the time it takes to eat a three-course meal - and it's nice to have both my monitors working properly. And I'm running x86-64 for the first time! I'm planning to sell my old laptop on eBay, and probably buy a netbook to replace it. Currently tempted by a couple of the new arrivals at CES: the HP MiniNote 2140 (it definitely maxes out on usable screen and keyboard space in a small chassis) and the Sony Vaio P (which, as a former Picturebook owner, I'm just duty-bound to salivate over). I'll probably wind up not being able to resist the P. It is incredibly shiny, after all.

I also took the chance to upgrade my network infrastructure. My system sits out in the living room of our place, while the internet connection and router sit in the bedroom, so I'm on wireless, and dealing with the other systems on the network via 802.11g is just a bit sluggish. So I picked up a Linksys 310N router - basically I just picked the cheapest router I could buy locally which is a) 802.11n, b) gigabit Ethernet, and c) dd-wrt compatible. Slapped dd-wrt on it first thing then swapped it in for my old WRT54G. At first it wouldn't do DNS forwarding or static leases properly, couldn't figure out why, but it turned out that disabling DNSMasq fixed it. Shouldn't be necessary, but never mind. Picked up an off-brand 802.11n PCI card they had for $30 which claimed Linux support on the box: turns out to be an RaLink RT2760 which works with no trouble with the rt2860sta driver (RaLink's own driver) included in Mandriva.

Broadcom wireless driver update, Windows Mobile tethering...

This morning I noticed there's a new version of the Broadcom proprietary wireless driver available, so I updated the packages for that in Mandriva Cooker and 2009. That also provides a neat excuse to write about using the driver on 2009. I'm hoping it will be the default driver for these interfaces on 2009 Spring.

Aside from that, I've basically been twiddling with Windows Mobile tethering this morning. First I tried doing it via Bluetooth in the 'approved' way, via Bluetooth DUN, which effectively treats the phone as a modem and sends AT commands to it. drakconnect has a mode which will actually set this up completely graphically; it has presets for several European GSM providers and will work with a bit of manual configuration (you need to know your network's APN, and the username and password to use) on most GSM networks. However, it doesn't quite work on North American CDMA networks, which don't use the APN system, and dial #777 rather than 99**1# to initialize the data connection. I have a long-standing bug report on that issue.

Now, though, I have a new issue with that - my current data plan isn't supposed to allow tethering, so when the network picks up that I'm trying to use the phone as a modem I just get a NO CARRIER message and I'm SOL. So I had to get creative. Turns out the trick is to use an Internet Connection Sharing application on the phone itself. My phone (which is running a customized Windows Mobile build courtesy of PPCKitchen) has one on there already, and I think quite a lot of phones do come with the app. If not, you can download it. The one I have has modes for both USB tethering and Bluetooth tethering.

In USB mode, it's really easy, at least it was for me. You just plug the phone in to the PC, then run the Internet Connection Sharing app, set it to USB, and hit connect. It connects to the internet, and in a few seconds, Mandriva will pop up that a new network interface was connected, and that's it - you're online.

in Bluetooth mode, as I understand it, it sets the phone up as a Bluetooth PAN access node. So you just need to set the PC up as a PAN client and it should work. I've found a couple of HOWTOs on that and I'm going to try it later. The USB mode is neat enough, though, and saves on battery power.

Quiet day

Well, to be honest, I took it a bit easy today - just did the forums, cleaned up a bit on the Errata, and a bit of packaging too. Did come across one interesting issue as I was doing the Errata - this one. It seems that in 2009 there's quite a high chance of Splashy interfering with a successful resume from hibernation. Either disabling graphical boot (or just Splashy, but it's pretty much the same result) or pressing Esc early during resume from hibernation can avoid this problem.

Also came across an interesting issue with AMSN reported on the forums; apparently, it fails to launch when the SCIM input method (for Chinese / Japanese / Korean input) is chosen. So I'm working with the reporter on a workaround to launch it with XIM as the input method instead. Will probably have to add that to the Errata once we have it sorted.

But yep, I kinda ran into a wall around 6:30pm so I just gave up and watched the Leafs lose instead. Always quality entertainment!

Navit - route navigation system for Linux

I mentioned yesterday I was working on a package for Navit, a route navigation system for Linux. This morning I worked out the kinks in it with Adam Pigg, who requested the package, and one of the upstream developers. They integrated some of my patches into upstream and fixed some of the issues I'd noticed - see revisions 1902, 1901, and 1900, and I cleaned up a few other things and sent the package through. It will be in Cooker and 2009 /contrib/backports soon. It comes with a demonstration map of Munich, but you can get maps for most other places, and configure the display in quite a few different ways, so check out the Wiki for more information on it. Might be an interesting thing to use on a netbook in a car.

I also sent through the package for Kiax 2.1 beta 1 to Cooker, so now only wxhaskell is holding out with a wxGTK 2.6 dependency; I still haven't sorted out the strange bug I have with the wxGTK 2.8 build yet, hoping to find some time to look at that soon.

And, of course, I did the forums. But I took a couple of hours off to watch Canada win the world junior hockey championship. Hah - take that, Swedes.

Matthew Garrett on the latest absurd Google rumours

I just wanted to highlight Matthew Garrett's post on the latest more absurd Google rumours to hit the online press, because the man speaks the truth. However, I'd add that it's not as easy as he thinks to be an analyst. Sure, all you have to do is generate random combinations of the latest hot buzzwords (netbook, MID, Android...) and then invent a story based on them, but you have to compete with the thousands of other 'analysts' doing the same thing! To climb to the top of that tough pile you need a longstanding reputation consisting of years of vaguely plausible yet spurious articles, containing just the right level of nuttiness to produce lots of lovely pingbacks and comments. It's a tough world for the technology analyst, y'know.

PolicyKit (and KDE), Navit and more

Well, I woke up this morning and the site wasn't working, which isn't good! So I did a quick fix (gave it an extra 128MB of RAM in VMware and turned on wp-super-cache) and started looking into hosting options. That's going to be a fun area to get into. Sigh. Still, seems to be holding up so far.

After that I did the forums, and took care of things arising from there. I backported the latest x11-driver-video-intel to 2008 Spring as well (after doing it for 2009, see yesterday). Prompted by this thread, I took a deeper look at what the heck PolicyKit does, exactly, and what's going wrong in this case, which has been reported by several people.

The symptom is that, if you have a partition on an internal drive that isn't automatically mounted at boot, it will be shown in Dolphin's sidebar, but trying to click on it will give you an error message at the bottom of the Dolphin window, saying: "An error occurred while accessing '(thepartition)'. the system responded: org.freedesktop.Hal.Device.PermissionDeniedByPolicy: org.freedesktop.hal.storage.mount-fixed auth_admin_keep_always PermissionDeniedByPolicy is why it won't mount: it's telling us PolicyKit isn't letting us. What ultimately happened is Dolphin asked HAL to mount the device, and it refused, because HAL is now integrated with PolicyKit. Why doesn't it let us? Well, org.freedesktop.hal.storage.mount-fixed is the specific PolicyKit 'action' that's failing here. That's the action for mounting a fixed storage device - that is, a permanent storage device, like an internal hard disk partition. The counterpart is a removable storage device, like a USB key. And, finally, auth_admin_keep_always is the access policy granted to the current user. What auth_admin_keep_always means is 'allow this user to perform the action, but only after authenticating for admin privileges. But once the user has authenticated once, remember that authentication for the rest of this session.'

So, PolicyKit is set to allow regular users to mount fixed partitions, but only if they give the root password first. Why does Dolphin just fall over, instead of asking for the root password? That would be because Dolphin does not, yet, have PolicyKit integration - so it doesn't know that, in this case, it should call the helper provided by PolicyKit-kde to ask the user to authenticate as root. Since it doesn't do that, PolicyKit knows the root authentication wasn't performed, and refuses permission to mount the partition.

So THAT is why you can't mount an internal drive partition via Dolphin in KDE 4 on Mandriva 2009 (and any other distribution where this is PolicyKit's default configuration). Whew. What's to be done?

I filed a bug with KDE about this issue. It has been accepted by one of the lead Dolphin developers, Peter Penz, so hopefully it will be worked on and we'll be able to integrate this into Dolphin before 2009 Spring comes out. I let our KDE team know about the issue, so they can monitor it. If integration for Dolphin is not forthcoming, we could adjust the default policy in KDE to allow users to mount partitions without authentication, but of course that would be rather less secure.

What can you do if you're annoyed by this bug (or a similar one) and can't wait for a fix (or a new distribution release) to show up? Change the policy, of course! There are two GUI frontends for PolicyKit: policykit-gnome and policykit-kde. The policykit-kde shipped in 2009 was rather broken. However, as part of my investigation of this issue, I realized that problem, and updated the Cooker package to the latest SVN revision, which works a lot better. So I've also sent that package to 2009 /contrib/backports. I haven't tested it on 2009, but it ought to work okay, the PolicyKit API is quite stable. So, install that package, and run the KDE Control Center. Go to the Advanced tab, and click on PolicyKit Authorization. Here, you can see all the different sets of actions which PolicyKit controls access to. The one we're interested in is org.freedesktop.hal, so expand that entry.

Click on "Mount file systems from internal drives." You'll see, underneath, the real action name, which we saw in the error message earlier: org.freedesktop.hal.storage.mount-fixed. In theory you should be able to just set the Anyone: drop-down box to Yes, but that didn't work for me: I think there's an issue with the resolution of user names. So, instead, create an explicit authorization. Click the 'Grant' button, next to Explicit Authorizations. Check the 'Show system users' box (this shouldn't be necessary, and I think it's related to the 'Anyone' bug), and then select your username from the drop-down box (mine was right at the bottom). You can set a constraint, or not, as you choose (it's probably safest to set 'Must be in active session on local console'). Then click 'Grant'. Now you can quit the Control Center, run Dolphin, and click on your partition - and it should mount. There, wasn't that simple?!

PolicyKit is actually developing into a very powerful framework and will likely be used extensively by many applications in future, and you will be able to use it as a very sophisticated lockdown tool to control how much access users have to different actions on your system.

After that, I also bumped the kde4-extragear-sysadmin package I maintain (which provides the kiosktool and partitionmanager apps, for KDE 4) to the latest SVN, since this whole PolicyKit thing reminded me about it. I also sent Isomaster 1.3.5 to /contrib/backports for 2008 Spring and 2009; thanks to Jerome Soyer for doing the version bump.

Finally, I worked on packaging Navit, a driving navigation application, which was requested by Adam Pigg. With a few patches here and there I've got it properly built, but it's got a bit of an ugly system for configuration (you have to hand-edit a .xml file) and, despite downloading and plugging in a Canadian map file, I couldn't get it to display anything but a blank orange screen. I'm not sure if this is related to my lack of a GPS device, or just Cooker weirdness, or something else. So I sent the current package to Adam to see whether he can get the app going, since he really has a GPS system. If we can get it going, it'll be uploaded to Cooker, 2009 and 2008 Spring.

Activity, and Blackberry tethering article

Well, today was the first day of the NFL playoffs and also the semi-final round of the hockey world juniors, but I still managed to get quite a bit of stuff done!

I just finished up writing an article on tethering a Blackberry on Linux (using it as a modem, to get an Internet connection). This is the first article in my general plan to write useful and informative content on here to grow traffic and hence make me rich, so if anyone has any comments on it, that'd be great, and if you want to help out by submitting it your favourite news sites, that'd be even better!

This morning I finished up another new package requested on the forums: Aegisub. Package name is aegisub, and it's available in Cooker and 2009 /contrib/backports. It's a program for creating subtitles, mainly aimed at the anime fansubbing community, so I was quite curious about it myself, just to see how such tools worked. It required a few modifications to build correctly: I reported the problems to their IRC channel, but their bug tracking system doesn't appear to be able to send confirmation mails, so I wasn't able to report bugs. I had to add a patch to make it actually possible to disable the ffmpegsource backend (the option doesn't actually disable it, in the upstream code), another to stop it trying to find out what SVN revision it is when building (instead, the package build just feeds in the correct revision), and another to fix underlinking.

After that I did the forums for today, then did some more packages resulting from issues arising there. I backported version 2.4.3 of the intel video driver to 2009, to see if it would help a user who's having trouble with 3D applications. So that's now available in /main/backports for anyone else who wants it. Then I fixed a bug in gadmin-proftpd, a graphical configuration tool for the ProFTPd FTP server, reported by Per Nelvig: it didn't run correctly from the menus because the executable was in the wrong place. I updated it to 0.3.5 for Cooker and /contrib/backports, and fixed a few other issues in the package, and fixed just that issue in 0.3.0 for /contrib/updates. Then I noticed all the other tools we have packaged in the Gadmintools suite (there's a bunch of them) had the same problems, so I fixed all of those too: gadmin-bind, gadmin-dhcpd, gadmin-httpd and gadmin-samba. Finally I saw that there's a few extra apps now available in the suite that we did not have packaged, so I added packages for all of those, to Cooker and 2009 /contrib/backports: gadmin-squid, gadmin-rsync, gadmin-openvpn-client and gadmin-openvpn-server.

I also fixed up a little problem on the site: when you weren't logged in, and viewing a page for which comments would usually be allowed, the sidebar got displayed down at the bottom. Turned out to be a missing div closing tag in the theme's comments.php file. Strange.

In the end, didn't get around to doing any Python 2.6 rebuilds today. Funda Wang looks to be doing a great job on that in any case.