Yak shaving and other pursuits

So, I'm still shaving the ol' yaks on Unity packaging. It's coming!

The F15 Test Day schedule is shaping up nicely, should be a good active round of events. My other big current project, the package-specific test case framework, is coming along too, though I keep hitting little things I hadn't quite thought of; I want to hammer out to cover all the angles before I send out a call for people to start writing tests. I was going to do it today but hit a couple more 'hang on a minute!' moments. Should be tomorrow, though. Really tomorrow!

I helped interview someone for a job today, first time I've ever done that - was an interesting experience. I'll feel more confident the next time I have to do it now...

Annoying things #16,578: annoyingly over-clever location based pages

No, Wikimedia Foundation Donation Page, just because I am currently accessing you from the UK, I do not necessarily wish to donate to your UK arm in UK currency. You may be unfamiliar with the concept of 'travel' (or, for that matter, 'proxy servers' or 'tor'), but that doesn't mean it doesn't exist.

Moral: if you're going to design a clever-clever site which detects where people are and tailors the content on the basis that where they are is obviously the country they live in and care about, you suck. At least provide a menu system to override the clever-clever detection.

For the amusement and edification of the General Publick

Tip: if you ever think to yourself 'hey, I can save a bunch of money on international plug adapters by just buying one US to UK plug adapter, and plugging a US multi-socket extension cable into it!'...don't.

Well, if you're looking for a loud cracking noise, some exciting sparks, and a moderately-sized section of burnt carpet, go ahead. Otherwise...

Unity, hardware failures, and F15 QA

So, I bet everyone's just dying to hear what's going on with Unity, right?!

Well, I've been co-ordinating with various people both Fedora-side and Ubuntu-side to resolve the various roadblocks to getting it done. I'm happy to say that, tentatively, I think we've done that now. The major issues were problems with various probably-trademarked images in Nux; a patch to glib which is used by Bamf and has not been accepted by upstream; and Unity's reliance on Compiz 0.9 with some extra changes which aren't currently the main upstream branch.

All the Ubuntu / Canonical folks I've talked to about this have been super friendly, helpful and enthusiastic about the prospect of Unity running on Fedora, which is really awesome. They've genuinely been bending over backwards to help make it possible, so a big thanks to Neil Patel, Mikkel Erlandsen, Jason Smith, Sam Spilsbury and others. After I asked about the problematic files in Nux they worked very quickly to remove them (they're not needed anyway); they were also very helpful in discussing the glib/bamf issue, and Sam's been great with pointers on Compiz.

So, this is (roughly) the plan: the Nux issue is resolved upstream and a new release should be done soon (if not, I'll just package a snapshot). bamf doesn't actually need the glib patch; it can be built without it just by excluding one directory entirely from the build. I'll probably submit a patch to add a configure parameter to do this, to make it a bit cleaner and more discoverable. Then we can package bamf for Fedora without worrying about the glib patch. It'll result in slightly reduced accuracy in application matching, but apparently it still works pretty well even without the glib patch. Long term, upstream wants to take a different approach to solving the larger issue here (application matching), so they won't be taking the patch as submitted; Colin Walters will be working on implementing that, the Canonical developers may be able to help out, and once it gets done, bamf can be changed to use the new framework instead of the extension point implemented by the current patch. I'll be helping the Fedora compiz maintainer to package the upstream compiz 0.9 branch which includes the changes necessary for Unity; Sam says that this will be merged to master upstream in the medium term, it's just not quite ready for it yet, but it is definitely The Future, so we won't be diverging from upstream in the long term. We haven't totally decided yet whether to just do this as the main Fedora compiz package for F15+ or have it as a variant package used only by Unity, but one way or the other, we'll do it.

The remaining issue is likely to be support for the Ayatana indicators framework which Unity prefers to use; many apps require patches to support this, and most of those aren't upstreamed. I'll look at that when I get to it, but probably those will just be left out for now. If anyone can think of a better approach, do let me know. :)

The Unity stuff is fun but it does come after my Real Work stuff in my priority list; so help is greatly appreciated, if anyone wants to get involved and take one or more of the necessary packaging jobs, or help with the Compiz stuff, let me know.

And speaking of Real Work! I've got two interesting big projects for the F15 cycle. The first is implementing a framework for specific test cases for critical path package updates. It's been widely noted on devel and test lists that the critical path update testing process could be improved if we have specific test cases for some or all critical path packages, providing explicit testing steps to help ensure that the vital functionality of each package can actually be tested. I'm working to set up an overall framework for these tests so they can easily integrated with tools like Bodhi and fedora-easy-karma to keep the testing process nice and streamlined. Of course, once the framework is in place, we have to create as many tests as we can; I'm hoping that both QA and development group members can co-ordinate on that, with maintainers of critpath packages helping outline the testing that will be required for their packages.

The second is to help plan the Test Day calendar for Fedora 15; this will be a bit more involved with the landing of two major features, GNOME 3 and systemd. We need to ensure we have comprehensive test day coverage for these to make sure they're reasonably robust for the final release. I've been doing some preliminary planning with Matthias Clasen for the GNOME 3 Test Days, and we'll start pencilling in dates and developing test plans soon.

I would probably have got the Real Work stuff done earlier this week if all my hardware hadn't decided to go wonky on me at the same time. On Monday my TinyBook (that's what I call the Vaio P, these days) started behaving very weirdly, which I quickly traced back to some of the memory having gone bad. Unfortunately, the tinyness of the P is aided by the RAM being soldered directly onto the motherboard, rather than using any kind of DIMM, so it's not replaceable. Fortunately, this proved another great distraction-based education opportunity, and I learned about the memmap parameter, which allows you to tell the kernel to ignore certain areas of system memory - perfect for this case. So that got the system mostly up and running again at the cost of 100MB of RAM. I think the bad RAM may also be causing it not to suspend properly, but I'm not entirely sure.

That took a lot of Monday to sort out (I had to reinstall as the bad RAM had caused a bunch of packages to get corrupted during a big update operation), and then on Tuesday my HTPC (which also serves as my NAS) went equally wiggy, the desktop suddenly crashing when I exited freevo, and any attempt to run anything via an ssh connection causing an input/output error. This one I'm pretty sure is down to the system hard disk (the NAS bit is a 1GB RAID-5 array of three 500GB disks), which was a 2004-vintage Seagate 7200.7 160GB antique. It had been throwing intermittent errors in the system logs for a while, so I figured this was my cue to replace it. Fortunately I had a spare 500GB on hand (when one of the disks in the RAID array goes bad I RMA it, but usually I buy another while waiting for the RMA swap disk to arrive, as running a degraded array for any length of time really ain't a great idea), so I could just do a straight swap. This also turned out to be another great distraction-based learning opportunity, as I found a very nice no-hassle way to completely perfectly clone the disk: ddrescue. I just ran about the simplest case - ddrescue -B -v /dev/sda dev/sdb /media/usb/ddrescue_logfile.log - and fortunately it managed to clone the ailing drive without hitting any errors. This results in an absolutely perfect clone on the new disk, with the partition table, boot sector, and even the UUID of each partition intact - so you can just take out the old drive and boot the machine without any kind of tinkering with the boot configure or fstab required. After the clone and reboot everything just worked, except for MythTV, which I eventually figured was due to the initial disk fail having resulted in the MythTV MySQL database being a bit messed up; a quick mysqlrepair solved that.

So both of those failures proved interesting and educational in their own ways, but I could really do with not having any more this week. Here's hoping!

Unity on Fedora? Possibly!

So, Jef Spaleta apparently has an unfortunately precise and quite possibly malicious memory. He remembered a post I allegedly made on some blog or other a few months back (though I will maintain in front of any court that it wasn't me, or if it was, I was probably drunk) volunteering to package Unity for Fedora. He reminded me of this yesterday, in the context that most of the non-upstreamed patches needed for Unity have now gone away, and maybe I should get started.

So since I woke up this morning at 5am and couldn't get back to sleep I thought I may as well do that very thing. It's quite a big project, but I'm just started at the bottom of the dependency pile and seeing how far I can get. So far, I have review requests in for libindicator and dee. I need to do nux, and after libindicator goes in, the actual indicators. The remaining dependencies are a bit trickier: right now Unity needs a patched Compiz, which will become the upstream Compiz eventually but isn't yet. I'm asking our Compiz maintainer if we can ship the 'experimental' branch for F15. bamf depends on a change to glib which hasn't made it upstream yet; I'm trying to poke the appropriate people to get consensus on getting the change upstream. If we can clear those two, I'm hopeful it should be possible to have Unity available in the Fedora repos. Hell, we could make a spin of it.

Why? Well, a few reasons. Mainly, Unity's an interesting project. I want to look at it and compare it to GNOME Shell and I think quite a few others do too, so it seems nice to package it so you can run both on Fedora. I don't really want to maintain an Ubuntu install just to test Unity (can't do it in a KVM VM as it requires compositing support). Also, though, I think it'll do a bit to help keep everyone honest: if other projects show interest in providing Unity as an option for people to use, it increases the motivation for Unity's developers to make sure it can be easily built without non-upstreamed changes. Hopefully it also increases the motivation for upstream projects to work with the Unity developers to get their changes merged. It's the same for any project, really - if you have a wide base of users of a project across many distributions, it gives everyone involved a reason to work to make sure it's easy to maintain the project across distributions.

I'm not promising anything and I'm not proposing this as a Fedora feature or anything, but it'd be cool if it works out. If anyone would like to help out, please let me know. I know Bochecha started on the same project several months ago, but as far as I can tell he didn't get very far with it - Mathieu, if you're still interested, let me know and we can try to combine efforts :)

More n900 sync pain

So, I finally found an open source groupware server setup I can manage to sync successfully OTA with the n900. Zarafa, plus Z-Push (which provides ActiveSync connectivity for Zarafa), does the job. I can then use the n900's Mail for Exchange thingy to sync with the server.

The hilarious catch? You can't actually sync Evolution with Zarafa. Zarafa is designed to be an Exchange replacement. Evolution has two Exchange plugins...but because of arcane details about protocols, neither of them works with Zarafa. Zarafa does have CalDAV support for the calendar, but not apparently for contacts. So I guess I can sync my calendar between my phone and my PCs, but not contacts.

Really. Please. Someone. Just shoot me now. Why does this have to be so fricking hard? We have about sixty zillion groupware solutions, and a cornucopia of protocols, but somehow no one can line things up right so you can set up an open source server to sync open source desktop and mobile clients. REALLY?

edit: seems Zarafa is working on carddav support. Please, let it be soon...

More n900 stuff

So I'm a week or so in on the n900 now and still liking it. I'm still fighting with sync: the Google sync via Exchange is very very flaky and seems to fall over as soon as it actually has some changed data to sync, so right now I have no good sync methods (how is everyone else doing OTA sync with n900? Please don't tell me to install Funambol, I really do not trust gigantic blobs of Java on my servers.)

Aside from that, though, I'm enjoying it. It really does seem to work well to treat it as a tiny laptop in many ways; I've got it set up with an ssh server and client, now, so I can ssh in and out of it to my other systems. It's nice to just flip between IRC, a browser, email and my password app, just like I do on my main systems. xchat runs very smoothly on it even though the interface isn't perfect; I find myself jumping on IRC on train rides just to see if anyone's waiting on a reply from me for anything. Wouldn't ever have bothered doing that with my WinMo phone as its IRC client was just too slow and clunky.

One really cool thing is the excellent VOIP integration. It's very easy to set the phone up to log in to SIP accounts - like Fedora Talk - and the functionality is very well worked in to the phone app: you can enter SIP addresses for your contacts and call them from the phone book, you can route PSTN calls over one of your SIP accounts, and when someone calls you via SIP it works exactly like a regular phone call. I tested it with Jared Smith and it worked great. So I'll plan to leave my phone signed into Fedora Talk pretty much all the time. So if you want to call me, get a Fedora Talk account, it's all free 'n' stuff!

It also has similarly awesome integration for Skype, though I'm not planning to leave that logged in much due to Skype's evil P2P system eating your bandwidth if it nominates you as a super-node or whatever they call it.

I found the Community SSU, which is a sorta service pack containing updated and patched versions of a few components, including the desktop but more importantly (for me) a newer Modest package with the patch for proper replying (i.e. with a proper attribution line, quoted original message, and THEN your signature) incorporated. Finally, the email is actually useful for something. I wish they'd patch for multiple sender identities too, but can't have everything.

I also found that using Google Maps Mobile through the browser works as a pretty decent Maps application replacement - it has GPS and transit routing and everything. Zooming out is the only thing you can't really do (well, you can do it by editing the URL). But it's definitely usable.

So, aside from the syncing issue, I'm definitely liking it so far, not feeling any inclination to switch back to the old phone.

Things That Make Adam Want To Stab Himself In The Face, pt. 1

eGroupware synchronization. It has this trick of getting so frustratingly close to working. Using syncevolution with my n900, I can get to the point that the sync operation from the phone happily reports success and shows 89 contacts transferred to the server...where they apparently wind up in /dev/null, because when I log in to the web front end with the same user, those 89 contacts sure don't show up in the contacts view. Where did they go? Nooooobody knows...

N900 - getto!

So, I finally gave up waiting for the next generation of Meego phones, but happily I didn't have to settle for an Android or WebOS phone: I got me a used N900, for a decent price, and I'll be setting it up on the Mobilicity network tomorrow. That's a new network that's just started up in Vancouver; their coverage isn't awesome but should serve my purposes, and they have some extremely good introductory pricing. Most importantly, they use the 1700MHz band that the N900 supports.

I've been having fun playing with the phone so far. I can imagine it's a nightmare for anyone used to using, well, phones, but it does indeed feel weirdly natural if you've been using a Linux desktop for any length of time; there are repositories, and they're stuffed with rebuilt Linux desktop apps, and there's lots of little tweaky things you can do. And there's a console right there in the apps list. And there's an ssh client. I'm feeling at home.

The biggest nasty surprise so far - Modest is a pleasantly fast email client, and from what I've read about it and tinymail it seems to be well engineered, but it has some major usability issues. You can't restrict the folders it lists. There doesn't seem to be a way to restrict it to only loading the last few days worth of messages - no matter how well engineered it is it's going to have trouble with my fedora-devel folder, unless I can tell it not to worry about the old mails. It's missing a lot of the neat functionality of something like Android's K9 Mail, which makes for a really usable portable email client - you can't set up a combined inbox of the folders you really care about on a phone and ignore all the others. The biggest feature it's missing, which seems pretty unforgivable in the main mail client on a platform used mainly by F/OSS geeks, is multiple sending identities. I mean, really? Surely just about everyone who uses the N900 has more From: addresses than they having incoming servers? Someone's come up with a rather clever workaround for this, but it really really shouldn't be necessary.

I was also slightly disappointed by Firefox Mobile; it looks pretty good but very, very slow, and the second time I tried to launch it it just died at a white screen. I'd love to have this (with Firefox Sync! Firefox fricking Sync!) on my phone, but if it's going to be so slow as to be basically unusable, it's a no go. There also didn't seem to be a functional way to make it the default browser; I found Browser Switchboard but it doesn't seem to actually work, after I set Firefox Mobile to be the default browser, whenever I clicked one of the shortcut links on the home screen which previously opened some website in the built-in browser, they now just did nothing at all. There's also no AdBlock or NoScript yet, apparently. So for now I just set the default back to the built-in browser.

Other than that I'm mostly hitting just pleasant surprises. Even without Firefox Mobile, the default browser is actually really good: it's fast, it's great at rendering complex pages (not surprising since it uses Webkit). It can do really cool stuff like use the desktop (non-mobile) interface for tt-rss really well - even the arrow keys work. Syncing with my Google contacts/calendar was surprisingly easy. The media player seems good and (not surprisingly) it popped right up in Rhythmbox ready to have files transferred to it when I connected via USB. Xchat works great, as does Password Safe for managing passwords (happily, Revelation, which I use on the desktop, can export in Password Safe format). The interface actually feels pretty nice, smooth and responsive - especially for a phone that's over a year old - and the screen is awesome. I can see why people say the old 'personal computer' tag of the previous, non-phone models hangs around: it does feel like something between a phone and a tablet.

So far I'm feeling pretty pleased with it, especially for the price (I paid $250). Any seasoned N900 users out there have any good tips?

Good news time

In more good news, Canonical appears to be hiring two kernel hackers to work on sound and graphics stuff - this is awesome. I wish I could say I received an email from Mark Shuttleworth saying "please! please! no more of your cutting and highly influential blog posts! I'll hire some kernel engineers!" but no, sadly, my coruscating prose appears to have nothing to do with it ;). Seriously, though, this is a great move and it's nice to see Canonical continuing to move in the right direction.