Bobulate


Archive for the ‘KDE’ Category

A bit of Postfix and Darcs

Wednesday, July 14th, 2010

Somehow the official Postfix documentation continues to be intractable for me. The whole reason for getting Postfix up and running on my local machine was because of Darcs. Darcs — one of many distributed version control systems, but possibly the only one written in Haskell and intrusively interactive — likes to send patches by email. It just uses the local MTA for that, so I needed one. Setup is slightly complicated by the situation my home workstation is in: while I have a domain I’d like to use for email going out of my house, I’m on a DSL line with outgoing SMTP blocked except to the DSL provider, and my local usernames don’t match the email addresses I’ve created.

So, basically I want to send all locally submitted mail to my DSL provider’s SMTP server, with the right domain attached, without my hostname, and I want to re-map my usernames. I didn’t manage to distill this from the actual Postfix Standard Configuration Examples, but Ralf Hildebrandt’s configuration examples do have the right stuff. The only change I had to make was for the username re-writing; instead of virtual_maps (since superceded by virtual_alias_maps), I used canonical_maps = hash:/etc/postfix/canonical, which maps user and user@localhost and user@domain to email.address@domain (3 lines per user login).

Now darcs send does what it should. I can also point KMail to use local sendmail and that gets the job done, too. KMail is actually simpler, because it sets up the outgoing From and envelope addresses based on the identity in use, so it doesn’t need the rewriting at all.

I’m starting to find Darcs a little bit interesting; the idea that every patch is a branch based on what it actually needs is intriguing. Or to put it in other words: if I have one patch to file A and one patch to file B then I’ve created two branches; there’s no need to consider the two together. If I make another patch to B then that branch grows longer. My working copy displays all the changes from the branches I’m working with, that is the merge of all my branches. If I were to add a patch that changes both file A and B then the two branches merge there. Darcs uses tags to slam a line across all the files and all the patches and to merge all the open branches, which prevents a gigantic proliferation of possible branches.

The upshot is that when I do ‘darcs send’ I have the option of sending any branches I have open — and any sensible sequence of patches within the branch — so that I can very carefully upstream patches while keeping them all visible locally.

What I really miss in Darcs is some of the Mercurial workflow: seeing a graphical representation of the current branching structure (hg glog) and being able to quickly merge multiple commits into a single one for upstreaming (hg qfold). On the other hand, the darcs behavior on commit (darcs record) to ask you about every changed hunk is really nice (sometimes, at least) because it helps avoid accidentally committing debug bits or whitespace changes that you didn’t intend to do.

[[ ObKDE: and somewhere underlying this all is my need to get a Python application to talk to KWallet; why oh why didn’t I have enough lunches with Richard Dale in Finland? ]]

Home from Akademy

Sunday, July 11th, 2010

I snuck away from Akademy on Friday morning. My intention was to sign some legal documents (part of a resolution of the AGM of the KDE e.V.) and say good byes to all and sundry, but that got terribly sidetracked. The usual experience of walking into Demola is people saying “Hey, [ade], I need to talk to you.” I don’t imagine this is unique to me — there’s so much coordination that goes on at Akademy when you finally have every sub-project on hand to chat with. So I ended up with a long talk with Elias about truth in advertising, and then I tried to print and sign and scan the document at hand. Kaare, a guy I’d exhanged some banter during the day trip, wandered over. It turned out that Kaare is the Skanlite dude, so I took the opportunity to thank him for his work.

Then rushed goodbyes — I skipped the whole of floor 4 with the BoFs — and off to the bus. Milian, Niels, Richard and Lubos were on the same flight, and everyone who flew onwards from Helsinki to Amsterdam had their luggage left behind. So it was 9pm before I got home, sans backpack. Like Harri said, it’s not so bad on the way back. My luggage was finally delivered at home at quarter past eleven in the night (darkness!) in a violent thunderstorm.

So, yeah. Akademy rocked. The Mexican has pictures that give a good impression of the atmosphere there.

Making mistakes in my talks

Wednesday, July 7th, 2010

When I give a talk, I usually take people in the audience as examples. This is why people who know me usually sit two or three rows back if they possibly can help it, or all of a sudden they’re likely to be labeled the Evil Software Corp. or something worse. "You there, you’re BSD licensed, and over on this side we’re GPL, right?"

Usually these things work out OK, but when people end up associated with companies, I do make mistakes. So the Fedora guy (not rrix, Jakub, I think) with a red hat on in the audience was my example for companies that might be concerned about the effect of the GPLv3 on their ability to ship KDE as part of their embedded products. That’s utter bollocks, though. Red Hat have been one of the bigger GPLv3 supporters throughout the process, and they ship plenty of GPLv3 products. So scratch that example, should you watch the video. Next time I’ll pick someone with a different-coloured hat. other than that, I think the talk went pretty well.

Akademy D+5

Wednesday, July 7th, 2010

Strange how things jump from D-2 to D+5 with possibly no time at all for blogging. The conference days were of course full to the brim of just watching talks and helping the program along. While I do visible things like the welcome address and introducing speakers and waving this year’s whip about, the organizing team is making it all possible and probably much more truly busy. Sanna, Matti, Ilkka, Karen, Taru and the others from COSS, the Finnish Open Source Centre. Kenny for the videos and Claudia — Claudia knows everything.

[[ OK, I have explained the whip thing a bunch of times, but let’s do it one more time for the record: at Akademy 2008 in Mechelen, I met Matthew Rosewarne for the first — and, sadly, last — time. He had spontaneously brought a bright pink riding crop which he presented to me as a gift just minutes before the opening of the conference. So I opened the conference with a whip in hand. Now, a riding crop — firm nylon core, braided outer covering and a leather loop at the end which does the "snap" when hitting things — is a useful device; you can point with it, herd people off the stage, and strike the table to attract everyone’s attention. Unfortunately, striking the table will also fracture the nylon core, so you end up with a limp whip. Matthew went to Brussels to get me a new one, which firmly cemented the whip in my repertoire of things-to-do-at-Akademy. Matthew passed away in 2009. His whips directed the very first Desktop Summit, GCDS in Gran Canaria. At legal conferences I get questions from lawyers who have seen me active during KDE events: "where’s your whip?" Well, whips are KDE things. I do try to keep that separate from my activities in the legal and licensing field, although I’ve since discovered that every lawyer harbours a deep dark secret talent. During the FOSS Nigeria conference in Kano this year, I bought a new whip in preparation for Akademy. It’s a strip of twisted goat hide. Very simple and straightforward; depending on how you twist you end up with a slightly thicker handle or a flexible whip part. Dried, the strip hardens until it’s functional. In Kano this kind of device is primarily used for driving donkeys and cows, not for directing conferences. Because it’s more flexible, it is harder to point with and harder to aim with, but I’ll practice. Shame Paul Adams (co-hosting the Masters of the Universe, well worth listening) isn’t here to bear the brunt of that practice. ]]

Monday the KDE e.V. meeting went through in record time which left unexpected hacking time, which became things like introducing people to each other, then being summoned to a sauna and then it was midnight and still light out.

Tuesday I mostly tried to write email, guarded Claudia’s bottle of raspberry liqueur (for girls only), sat in on Alex Neundorf multi-platform build-farm BoF with Ubuntu ARM, SUSE x86, Solaris SPARC and Windows x86 in attendance (among others). There was a KDE e.V. BoF at six. The purpose of that session was to give people the opportunity to ask the e.V. board members about the association, or to discuss purposes and activities of the e.V., or to make suggestions on the inner workings. We got a fair bit of all of those things done, with both e.V. members (old and new) and non-members in attendance. The KDE e.V. website says some things about the association, but it’s necessary to repeat regularly as well. So:

KDE e.V. is the association that supports the KDE community by doing what the community needs when the community cannot effectively do that in itself. That includes legal things, like (say) server ownership which isn’t something that can be effectively left to individuals. The members of the association are representative of the entire KDE community, (although we’re developer-heavy — once more I suggest you listen to the KDEMU interview with Anne Wilson to find out how to contribute to the community in other ways). The board of the e.V. can represent the community in contracts and the like. The members show additional commitment to KDE by doing the support work — let’s call it secondary contribution, because it doesn’t directly advance the software, but makes it possible for the software to advance.

Every member of the KDE community is welcome to join the association, though the admittance procedure as described on the e.V. webpage. If you want to support the KDE community as a whole not with time and effort, then the individual supporting membership programme might be something for you (it is for Vincent).

After the BoF it was dinner, football, drinking and dancing and then it was a quarter to five and still light out.

As a consequence, I’ve chosen to stay at my hotel for a bit today in an effort to actually get some writing and hacking done. It’s almost four in the afternoon, so I should head out for breakfast and then over to Demola any time now.

Free(BSD) Graphics

Wednesday, June 23rd, 2010

Sebas wrote about Free and fast graphics a while back, which has led me to try the same on FreeBSD. I have a similar setup, with two monitors attached to a Radeon 4350. I’ve written about the 4350 on FreeBSD before. The minor challenge this time around was to get compositing working with a dual-head setup and to get the dual-head setup to show up on startup. Perhaps there’s a KDE-ish way of doing this, but I ended up setting up a xorg.conf with the desired layout. Without an xorg.conf, I’d get nicely mirrored displays, which I could manipulate sensibly with xrandr, but I couldn’t properly place the one monitor beside the other — xrandr kept complaining that my maximum screen size was 1650×1650.

So, manual configuration it is. I’m using X.Org X Server 1.7.5, Release Date: 2010-02-16, built on FreeBSD 8-STABLE, amd64, using the radeon driver v.6.13.0.

Thanks to the much improved auto-configuration in Xorg, the configuration file doesn’t have to be very long. The bits needed were a Device section, two Monitor sections, and a Screen section, like so:

Section "Device"
Driver "radeon"
Option "Monitor-DVI-0" "Monitor206"
Option "Monitor-VGA-0" "Monitor430"
EndSection

(I’ve left out the Identifier and BusID lines, among others — they’re not relevant; I tried the radeonhd driver, but that didn’t yield quick results). The important thing here is the explicit identification of monitor identifiers with XRandR outputs — I have a Samsung 206S monitor connected to the DVI output, for instance. From here, we go to the two monitor sections. I’ve set preferred modes on both for their native resolution. When I didn’t, I got them both at the lowest common resolution, 1280×1024, which was ugly as sin.

Section "Monitor"
Identifier "Monitor206"
Option "Primary" "true"
Option "PreferredMode" "1680x1050"
EndSection
Section "Monitor"
Identifier "Monitor430"
Option "RightOf" "Monitor206"
Option "PreferredMode" "1280x1024"
EndSection

You can see that the 206S is my preferred monitor — this sets it up as the main monitor, which means that the KDE startup thing shows up there and most notifications do as well. The other monitor — a six year old Iiyama E430 — is off to the right, and houses Konversation and Akregator and other non-essential attention-grabbers. The difference in color reproduction between the two is striking, so much so that I give the second monitor a very different background just so I notice the color difference less.

The last bit is setting up the Screen for X. Here I’ve left out Identifier, Device, Default depth; the important bits seem to be the monitor and the Display, which define a primary monitor (again?) and the side of the desktop. In this case, the desktop size is the sum of the horizontal widths and the greater of the heights.

Section "Screen"
Monitor "Monitor206"
SubSection "Display"
Depth 24
Virtual 2960 1050
EndSubSection
EndSection

Unlike Sebas, I don’t seem to have OpenGL compositing in this setup. That could be because of the card, the software — Sebas points out that it’s a little finicky with versions of kernel and video drivers — or something else. Switching to XRender gets me something that’s good enough.

Looking at Konversation

Tuesday, June 22nd, 2010

Hunh, so I fired up Konversation on FreeBSD this weekend (after deciding that hanging around via irssi in screen was no longer something I wanted to do) and after three minutes had a list of usage questions a mile long. Jos Poortvliet wrote a little about the last mile and polish last week. That kind of polish applies to Konvi as well. Keep in mind that comments coming from a new user (like me) may not be applicable to old-time users. This applies in particular with regard to moving UI elements around: for new users it might make them easier to find, for old users it means horrifying surprise when something isn’t in the old, learned, location. Anyway, here’s a list:

  • Why is server list under File, while identities is under Settings? Why are neither of these configurable through the "Configure Konversation" menu item under Settings?
  • Why are channel settings under the Window menu?
  • In the server list dialog, double-clicking a network or server connects to it; in the identities dialog it edits the identity. My comparison here is KMail, where identities and servers are both edited by double click.
  • In the server list, when I edit a server within a network (as opposed to editing the network itself) why does the network editing dialog pop up and then the server edit dialog on top of that? Why does only the server edit dialog go away when I click OK in that case?
  • In the network editing dialog, if I double-click a server, nothing happens. Inconsistent again. In this dialog, too, the "Add" button is text and the "Delete" button is a big red minus sign; I would expect either add and delete, or + and -.
  • The "duplicate identity" button in the identities management dialog looks disabled, even when it isn’t, because the graphic is so grey-on-grey.
  • Although on first startup the server selection dialog comes up so you can pick or configure an IRC connection, it’s not all that clear that you can also configure the user identity — that goes through edting a network, then clicking "edit" next to the identity selection dropdown. On the whole I think I’d prefer a tiny wizard (two steps: pick an IRC network, and pick a username and nick — possibly integrated with the addressbook so ideally you just click "next" twice to connect to the default network with the default addressbook identity).

These are issues that you really only run into the first time you run Konvi — after that, you rarely see these windows anyway. From there on it’s a wonderful IRC client.

Of course, since it’s in git (on git.kde.org now!) I may as well see if I can write some patches for these issues, if only as practice in using git.

Akademy bits and pieces

Tuesday, June 22nd, 2010

igta2010

As Paul and Aaron and Lydia have pointed out, Akademy is approaching. I’ll be flying out to Tampere next week. Gotta remember to pick up some good souvenirs for the kids this time around. My previous visit I ended up browsing the selection at Helsinki airport and thinking "karhu sausages? let’s not."

So, Akademy. It’s the yearly conference of the KDE community, including translators, users, enthusiasts, coders, documentors, tormentors (e.g. bug reporters) and fluffy bunnies. Everyone is welcome to talk about, plan and work on the future of KDE software. The conference lasts a week, which can be divided roughly into three phases:

Conference Proper: the first two days of the whole affair are the conference proper, with an organized set of talks arranged in two tracks. Here KDE contributors and technologists present 45-minute talks on various topics. 45 minutes gives us the time to delve fairly deep; it’s also an opportunity to present that state of the art in a format that’s different from blogging, mailing, and whatnot. The conference gives you the opportunity to catch up on everything in the KDE world in just a short time. There’s actually surprisingly many community and social topics, too, showing how our world is expanding. We hope that the conference programme inspires productivity the rest of the week and brings unlikely people together.

Annual General Meeting: This is the bit that we love to snicker about, but you might claim that this is the most important part. It is, unfortunately, also the part that isn’t open to the public because it is the AGM of KDE e.V. The e.V. is the association that supports KDE development — it is the entity that does the kind of stuff for which you need an entity (such as owning servers and organizing things) which don’t fit well with individual contributors to the project. In the past couple of years we’ve gotten much better at running the AGM, so it is no longer the kind of epic meeting that we snicker about. Instead, it’s a fairly streamlined session, although German law requires us to do a bunch of administration that eats up plenty of time. By contrast, the NLUUG AGM was done in 45 minutes this year (but it was rather rushed, at that). This year we’re continuing to experiment with mechanisms to streamline the meeting: two entrances for attendee registration, a seating plan in rows of ten, clear scheduling.

Hackweek: After the two main scheduled parts, there’s a whole week of variegated events. Aaron has blogged about Plasma events. There’s sure to be UPnP and Edu and all kinds of stuff going on. This part of the schedule is in a Wiki, so you can still add events there. I’ll be looking in at the dashboard and closs-platform building, the e.V. BoF, translations, Symbian, maybe some git bits. In between, hacking with whomever I run into. For me the hackweek combines hectic talking with people and sitting still and getting some of the hacking done that I always want to get done but never have time for at home. I’ll probably be spending quite some time on api.kde.org and the OpenSolaris packages again.

Special Events: There’s a special day trip on Thursday and there may be more special theme days introduced into the schedule as we get closer to the conference launch date.

So all in all, plenty to do. Having everyone there in one place (well, presumably scattered across the city on lawns and at bars but still hard at work) means that it’s the most efficient time of the year for hashing out plans for the next.

Chairing at Akademy

Monday, June 21st, 2010

So Lydia has posted a call for chairs. This, of course, allows me to launch the "I’m chairing at Akademy" button which is done in the style of Paul Adams. Also, an image search turned up a creepy sheep chair — perhaps we should get one to use for interviews? i is a chair at AkademyChairs do some of the footwork — ensuring that the switch to the speaker’s laptop goes smoothly, optional introductions, managing the time allotted for the talk and dealing with questions. And, if need be, you ask a question yourself. And then you thank the speaker.

When I chair a session, there are certain, shall we say, additional attributes in use. Those fall under "speaker motivational items" or incentives. I’m sure you’ll run into them at the conference.

My own talk is saturday at the end of the day, so if you want to motivate me then here’s your chance (although you will miss Henri’s talk in the process). Don’t hesitate to contact the Akademy folks, Lydia in particular, if you need more details on what a session chair needs to do.

Installing the EBN on OpenSUSE 11.2

Saturday, June 5th, 2010

The EBN in moving. Not physically, since it’s going to be on the same hardware, but conceptually, from FreeBSD 8-STABLE to OpenSUSE 11.2.

There’s a pretty simple reason why I’m trying to do this on OpenSUSE: KDE’s sysadmin team will support either OpenSUSE or Debian, and I happened to have a SUSE install CD lying around. The end goal is to turn over administration of the EBN machine to KDE’s sysadmin team. The recent stability issues suggest that there’s some subtle problem between FreeBSD 8-STABLE and the hardware. Combine that with my lack of time to actually fix stuff when the panic hits the screen, and you have a bad situation. Hence the move.

Before the move, though, I do need to set up enough of a machine to be able to test that it’s going to work.

I’m a total Linux n00b (in a way: the skills I had in RedHat Linux 4.2 administration no longer apply) so things like installing a database server are once again a challenge for me. On FreeBSD or OpenSolaris I know where the documentation is and which knobs to twiddle. It’s either in /etc/rc.conf or using svcadm(8), and I can deal with both. I’m taking notes while I get the same bits done on OpenSUSE.

The installation notes and prerequisites will end up in KDE SVN where the rest of the EBN code and material is hosted, as part of the instructions on setting up your own instance; I won’t bother blogging about which users to add and how to set up groups. That’s boring.

I had a bit of a rant (along the lines of “OpenSUSE is just terrible“) written up, too, about inconsistencies in the interface, difficulty of finding the applications I need, finicky web searches needed to weed out the useless results for ancient versions of the distro when trying to find out how to set up RAID1 — that kind of stuff. But it’s not terrible. It just takes a few days getting used to, like any tool. Gut-level and immediate responses shouldn’t color my use of a tool that is eminently successful. Heck, I tell my kids the same thing when they need to eat their vegetables. So no rant (except maybe that the Search bars in YaST are wildly inconsistent).

There was some good stuff, too: I liked the installer, and the disk setup tool, once you find the right documentation (er .. where did I put it?), is quite nice to use. So in the end I’ve got a test machine at home booting OpenSUSE off of one disk and storing data for the EBN on a RAID1 pair of 500GB drives; PostgreSQL, Apache, Mercurial, Git, Subversion is all up and running, and next up is getting the regular tools to go.

And then hopefully the EBN will be up and running again once the disks move to the server.

Done in Berlin

Sunday, May 30th, 2010

We need a couch in the office, for sunday-afternoon naps after long, long meetings of the KDE e.V. board. Since we need some more furniture for the office anyway — shelving for storing schwag, some organizing cabinets and things to keep down clutter and a better monitor stand for Thorsten — we just might end up ordering a cheap one. It might improve efficiency in the long run. Some complicated discussions today about interacting with the KDE community and the membership of KDE e.V., since the board has a formal role in the association but is also composed of KDE contributors. Planned some bits and pieces for Akademy. I finally got around to booking a hotel — far away from Team Humongous, so bedtime stories are going to be an issue. And I was just finishing up an ecological fairytale for sharing, too.

A board meeting wobbles between abstract, long-term thinking (for instance) about financing developer sprints and procedures around those sprints and really concrete things like (for instance) ensuring that we have a stable document storage facility or brainstorming potential KDE SC release codenames. It’s a fun kind of meeting, but it really takes it out of you. I’ll be glad to take an extra nap on the train back home tomorrow. Given that the train leaves Berlin at 6:37am, that shouldn’t be all that difficult. I’d like to thank Claudia and Thorsten for taking time out of their weekend to facilitate the meeting, and applaud Celeste for doing crazy stuff.