September 2010



RSS Atom
Powered by LiveJournal.com

Previous 10

Sep. 29th, 2010


Well, it's been a long time, hasn't it? After a while, it just turned into a thing where I hadn't posted so was getting out of the habit, and Facebook seemed to fulfill my need to broadcast my innermost thoughts to the world ... also, I seem to have got completely out of the habit of contributing to Fedora, which I regret; now that F14 is around the corner, I'm definitely planning to change that.

Anyway, here's a short recap of the last several months:

  • Work suddenly exploded into extreme busy-ness in mid-April: first, I was helping to write a new grant proposal, and then we were setting up a user evaluation in a school of the stuff I'm currently working on that ran through mid-May
  • Work kind of ticked over through the summer -- continuing development of the current system, mostly, along with miscellaneous paper-writing
  • Various holidays and business trips, including a week spent walking along Hadrian's Wall (about 90 miles in six days -- weather was very cooperative!)
  • We found out that the project we submitted in April will be funded -- yay!! -- which involved a lot more writing to turn the proposal into a full description of work (hopefully now all submitted and done)
  • More "holidays" (which in practice included an annoying amount of proposal-writing while visiting various family members across eastern Canada), and more business trips, including one set of flights where I flew YYZ -> CDG -> EDI -> AMS -> LUX in less than 24 hours. My husband and I calculated that we each took 17 flights (nb: flights, not trips) over a 3.5-week period at the start of September. Argh!
  • In addition to the monster grant proposal, other publications that I've been involved in over the last months include:

Oh yes, and then there's this (which has also taken a surprising amount of time and energy over the last few months):

ETA: early February 2011 :)

Apr. 6th, 2010

More fun with the UK Border Agency

Ah, just when I thought I was done with all of the fun R and I had with the UK Border Agency when preparing to get married in the UK -- remember this? and this? -- they come back with more fun-filled ways to make our lives as foreigners annoying again.

This time, it has to do with R's visa situation (I'm fine for the next year and a half at the moment). His current contract and visa run out in a month, so he needs to do something to be able to stay over here. We thought it would be easiest to get a Tier 1 points-based visa which allows "highly skilled workers" to immigrate to the UK without a job offer (under the assumption that they're so highly skilled that they will get a job and not be a drain on society, I guess). It took a bit of time to agree with his boss and so on that this was the way to go, so he could only really start seriously working on the application process this week.

And, guess, what: as of today (6 April), the Border Agency has changed the rules for how you earn "points" to qualify as highly skilled. Now, you get fewer points than before for having a Ph.D., and the method of converting recent earnings to points has also been changed somewhat. The upshot is that, while he qualified as highly skilled before, under these new rules he no longer qualifies. Argh. (As an aside, I do actually still technically just squeak over the threshold, but only because I'm slightly younger than him.)

All is not lost, though -- he can still get a Tier 2 visa, which is only for regular "skilled" workers (not "highly") but requires that you have an employer in the UK to sponsor you. (This is the visa that I currently have, for what it's worth.) The university is apparently able to sponsor him for that without too much difficulty, so that's good.

Another annoying factor is that, while in theory you could go to Glasgow (and other public enquiry offices around the UK) to do the whole application in one day, in practice there don't seem to be any appointments available until mid-May (after his current visa expires). While the set of appointments does seem to be in flux, there's still no guarantee that he will be able to do that in time, so he may just have to do it all in the post (as long as it gets into the system before his current leave is up, that's okay).

This does mean, though, that he won't be able to do various travel things that were scheduled around the end of the month that we'd thought he'd have a visa for. In particular, it looks like we may well not be going to Toronto for ICAPS 2010, which in turn means I will probably have to miss the AutoQA Packaging Fedora Activity Day. :( :(

Tags: ,

Nov. 30th, 2009

Maven (POMs and) depmap fragments in Fedora packages

A public-information message for anyone thinking of trying to package a Java application or library, or anyone who's a maintainer of such a library -- PLEASE add the necessary Maven depmap fragments (and, ideally, also the POM, but that's not so urgent) as described here. You will make the life of subsequent packagers who want to build things using Maven MUCH easier! Let me explain why.

If a Java package is developed using Maven, the developer will specify all of the libraries that the package depends on in the pom.xml. For example, if your library depends on jakarta-commons-io, you might put the following into your pom.xml:

NB: the groupId and artifactId are not always identical, and not always predictable either (sometimes groupId is the Java package name, sometimes -- as above -- it's the library name). The easiest thing to do is either find a POM for the package and copy them from there, or find the POM for a package that needs the same library and copy from there.

In the normal case, when you want to build such a package, you just use mvn, which will head off to the central Maven repository (or, optionally, some secondary repository) and download the appropriate Jar file and metadata and add it to the CLASSPATH of your build.

Of course, if you're building a Fedora package, you can't just have your build process go off and randomly download files from the Internet -- you've got to build against everything locally. Fortunately, there's a special offline version of Maven (mvn-jpp) that you can use when building RPMs.

mvn-jpp uses your /usr/share/java/ directory as a special repository that it can "download" things from. However, to find a jar file in there, the package providing the jar file MUST add a line to the /etc/maven/maven2-depmap.xml file that maps from the groupId and artifactId to the actual path to the jar file. Here's how it works:

  • The packager calls %add_to_maven_depmap groupId artifactId %{version} JPP[/path] jarName in the .spec file for each Jar file that the package installs. jarName is the name of the actual file in the /usr/share/java/ directory -- e.g., for jakarta-commons-io, the jarName is also commons-io. If the jar file is in a subdirectory, then you also need to put the path part after JPP -- e.g., for the Ant libraries (which are all in /usr/share/java/ant/), you would put JPP/ant for the second-last argument.
  • The packager also needs to call %update_maven_depmap in the "post" and "postun" parts of the .spec file (also documented here) so that the depmap fragment created by the above step gets added to the master depmap.

So if there are no depmap fragments, then there's no way for any other Fedora package to build against the library using Maven. This is the situation I keep hitting, and it's starting to drive me a bit crazy ... I wish there were an easy way to mass-change affected packages or something -- in the minimal case, it's just adding less than 10 lines to the spec file. Even if the package itself doesn't use Maven to build, it's still possible to add the metadata for other people.

Note that if the package also ships a pom file, it's good to copy it to /usr/share/maven2/poms, but that's not as vital as the above steps.


Nov. 27th, 2009

It builds! :)

Thanks to a bit of spare time, I've managed to create an SRPM of sesame that builds on Fedora, and also a modified version of the soprano-backend-sesame2 SRPM from kde-redhat that uses the system sesame instead of the prebuilt all-things-in-one-jar version. I've been running this locally on my computer for the last few days and it seems to be going fine.

The bad news: there are still a number of dependencies that need to get into Fedora before this new sesame package can actually be included. I used Graphviz to make a graph of the dependencies (click for the big version):

The majority of required packages are from "aduna-commons" and "aduna-appbase", both from Aduna Software (which is also involved in Sesame). These packages all depend on parent POMs (Maven metadata). So the first step there is to get the parent POMs into Fedora (e.g., bug 540984 -- a very simple, practically trivial package), and then the packages can follow. The individual packages are all very simple, and in fact I created them by copy-and-paste, so hopefully the review process on those won't be a big deal either once I can file them.

In addition to the Aduna stuff, there are also a couple of other dependencies: logback and xml-security (both currently up for review -- bugs 540986 and 532535, respectively), and janino (just built today; updates-testing requested). In addition, there are a few existing Fedora packages that need minor updates so that they can be used in a Maven build -- mysql-connector-java, jakarta-commons-fileupload, and jakarta-commons-pool (the necessary update to postgresql-jdbc is already pending in F12 updates-testing). I patched out the requirements for Spring and Aperture for now; I don't think either of those is actually needed for the Soprano/Sesame use case, and they both have GIANT dependency chains.

Anyone who wants to follow my progress can check http://fedoraproject.org/wiki/MaryEllenFoster/SopranoSesame; you can download the necessary SRPMs from http://www.macs.hw.ac.uk/~mef3/soprano-sesame/. You can contact me at mef@fedoraproject.org or on #fedora-kde if you have any issues.

Back to $DAYJOB now ...


Nov. 15th, 2009

Restarting Soprano/Sesame process

Unfortunately, after discovering that much of my previous effort was mostly in vain (see my previous post), I've had two extremely busy weeks at work (two business trips, preparing for a user evaluation and a demo). Also, frankly, I was feeling kind of depressed and stupid that I'd failed to check for existing review requests before filing mine, so I did a bit of head-in-the-sand hiding from the situation.

But now the user study is done, so is the demo, and I shouldn't have to travel again until early December, so the time seems to be ripe to restart this whole process. First step: read and deal with all of the various responses to my initial batch of review requests -- I really must apologise to Jason Tibbitts who did a great job of doing the searches that I should have done myself and duplicating bugs and so on. Then I need to go back to the Sesame source code and figure out what else it really needs to build.

And yes, I'll check very carefully for existing bug reports and packages with slightly different names this time. :)

Nov. 2nd, 2009

Well, oops

So, after a lot of playing around with Java packages -- and not a few woods-for-the-trees moments -- I finally had a bunch of Java packages that I figured were ready to put up for review. So I did ... and almost instantly realised two things:

  1. Most of these packages are dependencies of the Spring framework, which upon further investigation turns out possibly not to be so necessary after all (it's only a dependency of one sub-package, which is probably not central); and
  2. Many of the packages that I put up for review either (a) had existing review requests (how did I not check that?!?!) or (b) are packages that used to be in Fedora and got retired. Thanks to Jason Tibbetts for his efforts in finding these.

So, back to the drawing board ... I don't really feel like doing too much more investigation tonight, but tomorrow I've got to go back to basics and figure out which packages are REALLY needed and start working on those. At least there should (probably) be fewer of them. :P


Oct. 21st, 2009

An interesting new challenge ...

In a fit of optimism, I responded today to rdieter 's request for a victim volunteer to get the (java-based) Sesame backend for Soprano building from source. Since I'm interested in both KDE and Java, I decided to give it a go. Looks like it's going to be quite a challenge, although hopefully I can piggyback on some of the work the Debian maintainers recently did to get things working over there.

Unfortunately, it builds using Maven, which is cool if you're a standalone Java developer but a HUGE pain if you're trying to build a distribution package: Maven likes to download all of its dependencies on the fly, but for Fedora at least, you need to get all of the dependencies locally, which means I'll need to get all of the dependent libraries also packaged for Fedora -- or at least get appropriate Maven fragments added to existing packages so that Maven is able to find them when building.

Progress so far:

  • Determined that slf4j is already packaged in Fedora -- yay!
  • Got somewhat bogged down trying to get LogBack to build, in the process discovering bugs/enhancement requirements in two existing Fedora packages (easymock and geronimo-specs). It now builds its first jar file (although it fails one of its own tests, urgh), but now I've discovered some other dependencies so I may need to check whether it's really desperately needed at all ...

I can't let this take over my life -- I do have to work on $DAYJOB too! -- but it should be an interesting challenge to get this working

Edit: I've just tested to see the scale of the problem, and here are some initial findings. Looks like lots of fun ...


Apr. 17th, 2009

Installing Fedora 11 (snapshot) on a Dell Latitude E6500

My new project has just kindly bought me a new laptop -- a Dell Latitude E6500. I decided that rather than installilng Fedora 10 on it, I'd try out the (upcoming) Fedora 11 instead: (a) because it's more likely to support the newest hardware, and (b) because I just wanted to. :) After a bit of fun upgrading the version of Vista (and reinstalling all of the Dell hardward drivers) -- for work reasons, I'll pretty much have to dual boot -- I downloaded Fedora 11 Snapshot 1 (KDE version) and did the install.


The install went smoothly for the most part. I did get a backtrace from the installer when I tried modifying my Vista (NTFS) partition so that it got a mount point by default, which looks like this (now-fixed) bug. Also, since it was an install from a live image, this made the custom partitioning process a bit more complex (I prefer to set up my own partitions rather than trust the automated version):

  • The root partition has to be ext4 because that's what the partition on the live image is
  • HOWEVER, you apparently can't boot from ext4 yet, so you also need to have an extra, separate ext3 /boot partition
  • I finally took a look at what the automated partitioning wanted to do -- a 200M /boot partition -- and did that, and let the rest of things be ext4

After all that (and after I finally remembered to create a swap partition), the install went quickly, and rebooting to the newly-installed OS worked fine, as did all of the firstboot stuff and the initial (large) package update.

First impressions

From a desktop standpoint, there's actually not that much of an obvious difference between Fedora 10 and 11, especially as I've been using the packages from kde-redhat's "unstable" repository for a while now so I'm already on the latest KDE and Qt versions.


The first thing that I noticed on booting -- and I saw this also on my netbook previously -- is that KDE doesn't seem to look very nice on high-DPI screens. This computer has a 15.4" screen with a resolution of 1920x1200, resulting in a DPI of 147x147. When I set font sizes for KDE, the fonts inside the windows don't seem to agree with the fonts outside the windows (title bar, task bar, etc.). I filed a bug about this at KDE a while ago, but nobody ever replied. The best workaround I can find is to force the fonts DPI to 120 in the system-settings module, but even that's only an approximation. Surely other people have noticed this?

Once I set the fonts to be readable, most of the other graphics things seem to "just work" well, especially with the very newest graphic drivers. The graphics card is the Intel X4500HD, which seems to be plenty powerful enough -- this is the smoothest I've seen the KDE desktop effects (cube, shadows, etc) work on any computer I've personally used. It's a bit odd that xrandr only shows the native resolution of the screen (1920x1200) as an option; that seems from the log files to be because the LCD display itself says that's the only resolution it supports. It would be nice to be able to switch to a lower resolution for giving a presentation in "clone mode" and so on. I suppose I should try to track this down further ...


Funny things going on here, and I need to do some more investigation. With the initial install, pulseaudio never played any sounds; it did periodically make the speakers make an annoying popping sound, though. But oddly, when I went to YouTube, I did get sound from the flash player -- that's using pulseaudio too, isn't it? I briefly tried uninstalling pulseaudio, and then things seemed to work, but I reinstalled it because I really want to understand what's going on. I wish it were easier to set the KDE multimedia properties back to the defaults (why are there two "pulseaudio" devices in the list? which is the good one? why doesn't the "Defaults" button do anything?) ... I will probably file a bug about this, but first I need to understand better exactly what's happening.

[Edit: it looks like this is this bug, and there seems to be no known solution yet ... ]

Other hardware

All of the networking and other hardware "just worked" as far as I can tell; there were no issues with wired or wireless networking, the touchpad and volume keys worked as expected, as does the webcam, and so on. I was surprised that the default for the touchpad is to disable tap-to-click (i.e., tapping on the touchpad to emulate a left click), but I'm going to see if I can get used to that because I have had some annoying moments before where a click was interpreted as a drag or vice versa. So this may be the opportunity I need to train myself out of using that. Or I may just miss it too much and want to put it back (I guess I'll need to create an xorg.conf at that point? Must investigate.) I haven't yet tested the fingerprint reader, and I haven't tried suspending or hibernating yet, so there may yet be surprises waiting in store. :)


Fedora has changed the selection of kernels as of Fedora 11. Because I installed from the live image, my initial kernel was the i586 one. I decided to install the i686-PAE one instead because as far as I can tell, all modern Pentium-class processors should support it and it will give some performance advantages. Not much luck yet -- so far, it seems to hang at boot where the i586 version works fine. Hopefully it's something simple but I just filed the above bug so we'll have to see.


Occasionally you can still tell that Fedora 11 is still pre-release -- e.g., I got a traceback from NetworkManager earlier today. But for the most part I'm pleased with how it works on this laptop and I don't regret at all choosing the Intel graphics card over the nVidia alternative.


Mar. 14th, 2009

Countdown ...

So in just over two weeks I'm going to be leaving Munich and starting a new job back in Edinburgh. I have my visa already (so no worries about rebooking plane tickets like back in August). R is going to come over and help me move back. We're going to splurge and fly KLM because my gold frequent-flier status expires at the end of March so we want one more time in the fancy lounge at Schiphol.

The system is getting closer to working, but there's still some way to go. I was getting a bit frustrated at needing to wait for other people to write things, so yesterday I took the day and did some hacking on one of the modules to fix some stuff that was being annoying in the system. It's always an interesting challenge working on someone else's code, but I managed to figure out how things fit together and -- I hope! -- have eliminated all cases where it was waiting forever for a message that was never going to come. That's never helpful in a system that's supposed to be interactive. :)

So I now have exactly two weeks more at work. I REALLY want to get this thing done and the evaluation started before I leave -- it'll be very unsatisfying to get most of the way there and then have to leave. I trust my colleagues to finish things off in my absence, and obviously I'm not going to fall off the planet so I can still be involved even after I'm not physically here any more, but still I'd really rather see it through. Hopefully the coming week will be productive.

Today I went out on my bike for the first time since November: I rode into town to watch the rugby at an ex-pat pub in Schwabing (probably about 25 minutes). Now that the snow seems to be gone for good, I'd like to start trying to bike to work for the next two weeks ... Incidentally, while watching the rugby, this EXTREMELY drunk Irish guy decided to start chatting to me (I think he had been celebrating St. Patrick's Day a bit early). Turns out that "Sorry, I'm married" is a very effective way to discourage unwanted flirting. :)

Two weeks! Agh! I've made a list of things I need to do, addresses I need to change, and so on, and as long as I work through that list it should work out okay.

Tags: , ,

Feb. 13th, 2009

Small success at work, but still a way to go

At our project meeting a few weeks ago, I made a somewhat rash promise that we'd send around a video of the new system that we're building, on or before 15 February. I was detecting some scepticism from some colleagues that we'd be able to build this thing at all, and this seemed to be the best way.

So today, a colleague and I spent most of the day recording and then editing a video. The recording actually went well -- the system doesn't do all that much, but what it can do it does pretty reliably (at least if we set up the objects on the table properly beforehand ...). What took longer was editing everything together, because we had the video of me interacting with the system plus two separate recordings of what was happening on the computers running the system, and it took a bit of fiddling to get everything put together in a way that made sense. Eventually, the video was done around 4:30 today, and we sent a link to the mailing list. No response yet, but we weren't really expecting much.

So, on the one hand, yay that we managed to get this much working and live up to my promise from the meeting last month. But on the other hand, having something that you can demonstrate successfully in a video is very different from having something that random undergrads can interact with, and we don't have all that much time to get from the former to the latter. We're going to have to make a very concrete plan of action on Monday to get where we need to be -- we'll make it, I'm confident, but we'll have to be quite pragmatic about how to go forward.

Oh yes, and to add to the fun, one of the robot arms is currently being a bit flaky. But I choose to ignore that and hope it goes away. :)

For this weekend, though, I plan not to think about robots, object recognition, or anything to do with constructing things out of wooden construction toys. I'll probably go watch some Six Nations rugby in an expat pub tomorrow, and also I should clean up the flat a bit. If it keeps snowing like it has this week, it would also be nice to go walking and/or running -- it was very pretty outside the office window this afternoon. Although I can't understand how it's snowed just about every day this week and there's hardly any accumulation on the ground ... weird.


Previous 10