New year

Ah, new years. A time of (sometimes planned) changes. Inge, I hope your hand gets better, or whatever it is. Me, I’ve resolved to quit being such a wuss with respect to git and actually use it a bit, and so after a long absence put something into the KDE source repositories again. I’ve contacted some maintainers for a little guidance. David’s post from two months back is going to help, too, since SVN fits in my brain (as do some distributed VCSses, but not git so far — not without violence).

Posted in Bla Bla, KDE | 2 Comments

KDE Testing

David Edmundson’s two little entries on the planet about KDE testing for 4.10 reminded me that there’s another release coming up, and that I could help out. Besides, it’ll be fun, futzing around with a bit of C++ code again and around with apps that I normally wouldn’t use. Last I tried this, it was to clean up the KDE 4.4 buglist, so it’s been a while. I shuffled some hardware around so I could set up some virtual machines.

For some reason I don’t understand, I  get completely bogged down in modern Linuxes when trying to do any kind of development. Maybe it’s the rabbit hole of OpenSUSE documentation that stops me. In any case, after spending some time trying to get the excellent build-tool working (I know it’s excellent, I’ve used it in the past) I gave up on that VM. It’ll be a test-machine for future upgrades or something.
I tried to get OpenSolaris (well, OpenIndiana) up again, but my existing virtual disks wouldn’t boot. I didn’t feel like re-starting entirely and then trying to figure out how to get a compiler again, since the KDE4-OpenSolaris stuff was written for the SunCC compiler which is no longer easily obtainable. So strike that off the list for now. At some point I’ll have to do some comparisons across VMs with a similar version of KDE, for kicks. A quad-core CPU ought to be able to run three VMs with single-core virtual processors at once, right?
So I end up back up with my old love, FreeBSD. By accident I downloaded the 9.1-RC3 disk, which installs just the barest of systems (for FreeBSD, anyway, so that means a complete set of development tools, ports and src if you want them). Since it is an -RC there are also no pre-built packages for it, so that meant compiling everything. Which isn’t that bad, you can (roughly) just start in kdebase-workspace and xorg, build and install those two (plus all their dependencies) and you’re good. I followed the area51 instructions, which (for me at least) do the right amount of explanation and I can follow along the compilation steps in the Makefiles. Some ports have been recently updated while area51 hasn’t been updated to match, but a little chat on the K-F channel cleared that right up (PCRE has a newer .so version, as does SASL, which also has a broken -ish header file — that kind of things). After a few other gotcha’s (system-configuration thingies, basically because I haven’t used FBSD much these past two years), I’ve now got a suitable KDE 4.9.3 system up and running. Time to update bits of that to 4.10 and commence testing!
Posted in FreeBSD, KDE | 2 Comments

Patching TRAC

At work-work, I maintain a Trac installation for our project management stuff. Well, PM is probably a too-big word for it, it’s mostly a list of tickets (bug reports) that get sorted through as and when we have time to do so, and a wiki for documentation. There’s a timeline in Trac, too, showing what has happened recently: wiki edits, commits, and ticket changes. This week we got a ticket asking for an improvement in the ticketing system — asking for a filter to suppress commits to trunk (in SVN) so that only the fixes to the released branches are visible. For an application administrator who want to see whether there are relevant fixes for their installation, that’s a useful feature.

So for the first time in ages, I’ve ended up sort-of being paid to work on some Free Software (Trac is BSD 3-clause licensed, with  no-endorsement). Well, since it was a fun kind of project, I did it on the train home. A downside to that is that I wrote a hack to add a specific filter to the timeline, with specific settings for our SVN. That makes the patch — only two dozen lines — unsuitable for publication. When I got home I went looking for existing implementations (one might say that this is backwards, but really, what else is there to do on the train between Utrecht and Nijmegen?), and found that timeline filters are much-requested and rather fiddly to get just right. There was a plugin for older versions of Trac, but it no longer works with Trac 0.12.2 and is unmaintained. And now I’ve got a replacement that works, but only works for one particular setup. This is unsatisfactory for me personally, but it’ll take a bunch more train trips to massage it to a point that it might work elsewhere.
So that was a brief, but fun, excursion into some other code base than our own, and I found it quite refreshing to be reading Python code done in a different style for once.
Posted in Bla Bla | Comments Off

Sharing bugs, fixing code

Bug sharing is sexy!Martin Graesslin has taught me much this week. Back in april I wasn’t paying attention, so I missed his series of blog posts on bugs.kde.org for developers, and in particular I missed the bit on saved and shared searches. It bears repeating: if you have an interesting search and are logged in, you can save it (with a name) right from the search results; then, go to Preferences (upper right) -> Saved Searches (middle tab) and you can share a search with others. 

Saved search list

On the consuming end, you can also check particular searches that have been shared (e.g. by Martin for KWin, or by the Amarok folks) and they will follow you around in the web interface to bugs.kde.org, ready for instant use. Probably at some point the list is going to get too long and we’ll have to think about whether “KDE 4.4.4 bugs in KWin on FreeBSD” is really a highly visible category of bug that needs to be in that list (it isn’t, relax).
By answering a few questions, Martin also helped me futz around with KWin, trying to patch up one bug that I spotted in the KWin list. I also found Dominik’s Compiling KDE4 notes useful – I remember using them as well when trying to scratch an itch in Kate.
It feels good to be writing (and reading) C++ again, I’ve been under a pile of Python WTF rocks for so long I’d almost lost the feeling for when code is beautiful. (O yeah, and where did the KDE Development book come from?)
Posted in KDE | Comments Off

Bug Triage

The KDE 4.4.4 buglist is, if not shrinking, then at least being confirmed that the bugs existed — and some still do. There’s cases where it’s unclear if the bug is actually a bug: when Firefox, Internet Explorer and Konqueror and Rekonq all display the same behavior (behavior which seems to be at odds with a W3C spec) then I’m inclined to call it “not a bug”. My goal is to at least check out and comment on all the bugs in the list (column “changed” shows where I’m at) and in particular check if they’re still present in KDE 4.7.2, which is the version I’ve got on another machine. At some point I’ll have to install the 4.9 beta and do the check again.

Now Martin is calling for KWin triagers. I took a look at #238119, since it’s about the settings / control panel for effects. The bug description is pretty straightforward and good to follow:
  1. Start system settings (either from command line, $ systemsettings, or Menu and search for “Personal Settings”, at least on OpenSuSE 12.1).
  2. In the overview pane, there’s an icon labeled “Desktop Effects”, or search for “Effects”. Click on it.
  3. You get three tabs, “General”, “All Effects” and “Advanced”. Click the “All Effects” tab, then check the box for the first effect (“Invert”, in my case and in the bug reporter’s case as well).
  4. Switch to the “Advanced” tab by clicking on it, then switch back to “All Effects”. Notice that the checkmark you just put in next to “Invert” is gone!

That’s the description the original bug reporter gave, and those are easy-to-reproduce steps (I’ve just written them out in more detail here). So that bug could be confirmed, at the very least (for 4.7.2 that is).

One thing the OP didn’t write out is that, when you go back to the overview from the “Desktop Effects” page, you still get the prompt that something has changed, even though the one change you did (namely, checking the box next to “Invert”) has gone away again. OK, I can live with that: I did change something (only the change subsequently went away!).
Then I did some more tests on this particular configuration dialog and found some more weirdness. Those I’ve left in the bug report.
So there you have it: triaging bugs can be a five minute thing-to-do-while-the-espresso-machine-heats-up, and can require a really straightforward process of just following the instructions the bug reporter provided, and confirming that the reported behavior actually exists. (Of course, this was a simple bug: no crash, just weird behavior).
Posted in KDE | Comments Off

Time Warp!

I was thinking of trying the PC-BSD version 9.1 beta. Digging through a pile of hard drives looking for space, I found a set of drives for the FreeBSD 7.3 setup that once was the EBN, and a single drive that turned out to boot into FreeBSD 8.1-PRE with KDE 4.4.4. I think it was a workstation setup I used for only a little while amidst experiments with ZFS and OpenSolaris compatibility. In any case, I ended up in a KDE from two years ago. Funny, thinks I, not a whole lot has changed in the set-up of my desktop (I still stick to the default panel at the bottom, desktop pager, taskbar, system tray thingie, no activities). Nor has much changed in the superficial appearance or behavior of the apps I tend to use, Blogilo, Konsole, KMail, Konqueror (although there are some systematic crashes, but those aren’t worth talking about before I’ve updated the system to FreeBSD 8.3 and KDE 4.8.4 — there’s a fairly short KDE 4.4.4 buglist available which I guess I’ll try to confirm before updating KDE, though).

So everything old is, if not new again, at least familiar.

Posted in FreeBSD, KDE | Comments Off

Time to join the debug crew

Went out to the kids ‘n billies festival yesterday, which is a child-friendly rock ‘n roll festival. Child-friendly in this context means that besiders the main stages, there was also face-painting and circus and candy and a lake with tadpoles. Also free ear protection — big green over-ear headsets to prevent hearing damage to the tots as they dance in front of the stage — and a lower default volume of “not painful or leaving your unprotected ears ringing for a week.”

Saw the Reverend Deadeye, too, for a no-man-band gospel revival and demonstration of home-made instrumental ingenuity. But he was drinking Glen Grant malt Scotch, where I did truly expect a Bourbon man.
Anyhow, trying to segue from here into KDE-related things is tough. I was thinking of something along the lines of “sane default settings” or “know your audience”, but given my current level of involvement with KDE, that would probably come across as whinging.
Then it hit me: what have I done lately for KDE? Hunh, not a lot, ‘cept maybe downgrading my OpenSUSE 12.1 installation to the release version 4.7.2 of KDE, since the 4.8 repo had become terribly unstable for me, botching upgrades so badly I ended up making a .xinitrc again. I’m glad sometimes the sordid underbelly is available, still. It made me think of Jos Poortvliet’s bit on the OpenSUSE 12.2 release process, and from there into the KDE 4.9 testing approach, which is probably where I should be focusing my thoughts.
So, as a bit of a resolution: actually send those crash dumps and bug reports instead of taking the route of least resistance (which is usually “I still have another machine that does work”).
Posted in KDE | Comments Off

An Itch is Scratched

Most of my day is spent editing code. I don’t use just one editor, though. While Kate is my favorite, some editing tasks are faster in vim, some in Netbeans. It depends a little on what I’m doing. And in the course of the day changes to files come in through source-repository updates (hg pull in my case). For files that I work on for a while it means it’s likely that they change while they are still open in some editor or another.

Netbeans auto-reloads changed files, silently. vim asks about it — but I don’t tend to leave vim open for long, it’s for specialized editing needs. Kate pops up a confirmation dialog saying the file is changed on disk and asking what to do about it.
So far so good.
Two activities in my daily routine trigger a lot of reloading: updating my checkout after lunch to catch up with what others have done, and popping and pushing patches as I navigate source history to improve individual patches or search for a bug. Especially when looking for a bug, I’ll have five or six source files open in Kate, run a test, switch to another revision, run a test, then want to see the files in that revision.
Kate has (or had) a useful menu item File -> Reload all. It comes with a DBus binding, so I have even  made a shell alias that does hg up ; qdbus `qdbus org.kde.kate-*` /kate/__KateMainWindow_1/actions/file_reload_all trigger. This makes it easy to sync the loaded files in Kate with what’s on disk as I flip through revisions.
I had not realised how much I used this particular workflow (under OpenSUSE 11.4 with whatever KDE was default there) until I updated to OpenSUSE 12.1 and it broke.
There’s lots to like in the newest Kate (line modification markers foremost!), but all of a suddent “Reload All” means “Reload all the files, asking about each one in turn” instead of “Reload all the files and damn the torpedoes.” This had been annoying me for a while now, and I finally decided to scratch that itch.
The Kate site has good, straightforward Join Us information, and the quick HOWTO did what it said on the box for me: got me a newly built-from-source Kate to replace the one already installed. I hacked the run.sh script a little so I could hard-link it to an executable’s name and it would run properly, so now I have a ~/kde/bin/kate that starts newer-Kate.
What I like about the quick HOWTO is that it focuses on just the one purpose: building Kate. Dot this, do that. Thanks to the instructions with specifics for different distro’s, it took maybe ten minutes total to get a new Kate built. Figuring out how to make subsequent changes is left as an exercise for the reader. No excursions about git configuration, which I still think is one of the most pointlessly obtuse version control systems around. 
Now, about the “exercise for the reader”, which was modifying the Kate code: it took me longer than I expected. My C++ has been idle for about six months as I’ve been living in Python-land (with wx widgets). So there were plenty of missing semicolons and “no, #include doesn’t go in the middle of a function where you need an external symbol”. Static typing, right. I ended up with a three-line addition  to the reloadAll() method to mark files as unmodified (thus bypassing the dialog prompt) before reloading them. Looking at the code I see that the same signals are emitted as when you would individually select “Reload” in each dialog, so that’s what I wanted. The code ends up looking like this:
void KateDocManager::reloadAll()
{
 foreach ( KTextEditor::Document *doc, m_docList )
 {
   KTextEditor::ModificationInterface *d = qobject_cast<KTextEditor::ModificationInterface *>(doc);
   if (d)
     d->setModifiedOnDisk(KTextEditor::ModificationInterface::OnDiskUnmodified);
   doc->documentReload();
 }
}
I’m not entirely happy with this code, since it just wipes out the modification state of the file before reloading. If anything more complicated needs to happen before reloading a modified file, then that’s not going to happen. I would much rather suppress the dialog in documentReload() instead. There’s even a method ModificationInterface::setModifiedOnDiskWarning() that can be used to suppress the dialog, but there’s no accessor for the previous setting, so I can’t switch the dialog off briefly and then restore the value.
Anyway, now Kate is better for me, and I’d like to say thanks to the Kate folk like Dominik for making a great editor and good instructions for getting started.
Posted in KDE | 5 Comments

NLUUG Spring Conference 2012

This year’s NLUUG Spring Conference is on Operating Systems — a “good ole’” topic for an association for professional UNIX administrators, now broadend to include Open Systems and Open Standards. This edition is special because it’s in cooperation with the NGN, and it’s bigger and broader than other recent NLUUG conferences. You can catch folks from Red Hat, Canonical and OpenSUSE there, as well as plenty of Sun Oracle people. There’s also a Windows 8 track. I don’t suppose repeating the Kubuntu-is-Windows trick would work there.

Posted in NLUUG | Comments Off

New Laptop

I picked up a new laptop recently, and I think there’s both a hardware and a software tale to tell.

My big fat MSI GX620 laptop — P8400, GF9800, full HD 17" screen — had given up the ghost somewhere between my desk and the train I got into 5 minutes later. It was a nice laptop, but rather heavy and wide. My requirements have changed over the past two years as well. Last time I wanted a luggable desktop replacement that would be a fine development box at conferences. Now I have a twice-a-day train commute of an hour to my place of work-work (doing wxPython stuff). The big fat box with poor battery life isn’t good for that. It’s also a little too wide to fit comfortably on the tables in the train.

So time for something that meets my current needs. I had settled on 11" — the 10" netbooks are too cramped for my fat fingers while typing while 13" is starting to push into too-big-for-the-train size. Needs good battery life, though not a whole day. Must run Linux well. Must have enough oomph to run Netbeans with a big Python project (this too disqualifies nearly all 10" machines). Less than 500 EUR.

I ended up buying at Hettes, which is a Dutch webshop specialised in Linux-preinstalled machines. That seemed like a good ideological choice. I hadn’t heard of a store like that in the Netherlands before. They advertise shipping with Ubuntu pre-installed, but when I mentioned I was a KDE guy they offered to put OpenSUSE on it instead. Ordered machine, got a personal message a few days later saying there would be a delay along with a good explanation why and what the consequences were. Great customer service, I thought.

Only two days later than originally planned I got my machine, complete with OpenSUSE 11.4, complete with a custom kernel (3.0.3-2-default) to support all of the hardware. The usual stuff works (sound, wifi), slightly exotic stuff too (webcam, repeated suspend and resume with just the lid) and the edge cases too (mobile 3G broadband). I’ve passed Lamarque’s comments about OpenSUSE Networkmanager packages on to them and they’ll update the image for another time.

For me, this is a great experience: purchase laptop and it arrives with the software you want (and only that) and it just works. Good support from the vendor.

What hardware, you might ask? I had picked the AMD E350 platform early on. It’s a nice balance. I believe that an Intel i3 based laptop will get me an hour more battery and possibly a little more processing power, but those models are EUR 200 more expensive than the AMD E350 laptops I looked at. At 40% of my budget, I figured I’d hold on to that cash and spend it two to three years down the road on whatever makes sense for me then.

With this platform and form factor, in the Netherlands there’s the Asus Eee 1215B, an HP model (DM1 something), and the Lenovo X121e. There’s a very lengthy purchasing discussion on Tweakers.net — in .nl a pretty good resource for reviews and also Linux compatibility information.

Anyway, I settled on the Lenovo. I’ve called it "Tomato", for the red lid and in keeping with my tradition of naming machines for parts of an english breakfast. I have approximately this model. Everything works, the keyboard is the nice ThinkPad kind, and there’s a TrackPoint (that red knobby thing; I prefer that over a trackpad). I can use this all day as a programming machine, although it would be nice to have move vertical space than 1366×768 @ 96dpi. For display oomph I hooked it up to a 23" full HD LED monitor and ran dual displays. Now that’s cooking with gas! The Radeon 6310 onboard will give me all the wobbly windows I want. It also gets five and a half hours of battery under normal use (e.g. coding in vi and kate, running MySQL queries and using ogg123 as a music player).

This particular machine came with a 3G modem on-board, which is something extra useful for train commutes (or when I’m visiting customers in remote corners of the country like Amsterdam). Like I mentioned elsewhere, the OpenSUSE packages need a little work, but then it seems to work just fine. It did take me ages to find out where the SIM slot was. Well-hidden on page 94 of the user guide. Well, actually it was behind the battery, one of two nondescript slots in there, and it’s just about possible to insert and remove the SIM card without tweezers.

To sum up: enthusiasm! You can get a Linux laptop in the Netherlands with good hardware that also just works.

Posted in Bla Bla | Tagged , | Comments Off