c133.org/blog : tech/KDE
Sun, 16 Oct 2005
.: planet update ::

For those of you who are syndicated on Planet KDE and also care about your bandwidth: Please pay attention to this message.

By default, Planet KDE will now show any images that you include in your blog. If you do not wish for images from your blog to show up on the Planet (which I can understand, since we do use up quite a bit of bandwidth), now you just have to do:

<img class="hidefromplanet" src="foo.png" />

The old class="showonplanet" is still around, but it's irrelevant now and may be removed in the future.

[00:03] | [] | # | G
Wed, 21 Sep 2005
.: NetworkManager and KDE ::

Fab: NetworkManager actually has a pretty well-designed separation between the front-end and the back-end; the only problem stalling us from being able to do cool things with it right now is that we have no working DBUS bindings for KDE3 (so nobody can easily write a Kicker applet to interface with NetworkManager to use on their desktop today), and KDE4 doesn't actually have anything usable at this point, whatsoever.

I brought this up at aKademy - aseigo and I were basically ready to go ahead with it but we got sidetracked with window icon previews in the window list on the desktop pager hover tooltip. (Try saying that five times fast.)

In theory, somebody could write the applet using the DBUS API from C, but the current Qt bindings in the DBUS tree are pretty much worthless, so it's not going to be pretty either way.

[17:14] | [] | # | G
Wed, 07 Sep 2005
.: thanks, Antonio ::

Everybody else has been saying this on mailing-lists and whatnot, but I figured that it deserved saying on the Planet, too.

Antonio, aKademy 2005 rocked hardcore thanks to you and the LiMa guys. You guys kick ass. I didn't think it'd be possible to top Kastle, but you guys did it.

To next year! Helio, you ready for aKademy in Brazil? ;)

[01:06] | [] | # | G
Tue, 12 Jul 2005
.: more cowbell ::

I may be abusing my 'tech/KDE' category with this entry, but so be it.

A new tagging application called 'cowbell' is out and it looks pretty boring. Reading through it I was mostly uninterested until I hit this part:

It requires the Mono runtime, Gtk#, and TagLib to install and run.

Holy crap! GTK/GNOME apps using evil KDE technology! THE SKIES THEY ARE FALLING I TELL YOU.

Seriously though, good on them. TagLib is good stuff, and I'm glad to see that they're not reinventing the wheel. More projects need to use it.

[04:46] | [] | # | G
Sun, 12 Jun 2005
.: build system notes ::

We had a discussion in #kde-devel earlier about what KDE's requirements for a build system are. What are the current problems we have with autoconf/automake/libtool? What features do they provide that we really care about? How hard would it be to replace any/all of them with things that suck less?

I took notes of the discussion. They're below; I'd like to get more feedback on this.

(One of the first points that I'm sure someone will make is "auto* is cross-platform! We need to support KDE on platforms that aren't Linux!" etc. Look, we realize this. However, auto* provides lots of problems for us on platforms we do care about, including MacOS X and Windows. (Ask RangerRick or js about them on IRC, or email them.)

Just because we're using auto* and friends doesn't mean that our code works; as a matter of fact, RangerRick noted that so far, all of his issues with the Mac port of the work-in-progress KDE4 have been build issues, and none of them have been code-related yet.

This is clearly a problem and since KDE4 is an aggressive new major release, we should solve it in the KDE4 timeframe. We don't want to have to wait until KDE5 for a build system that doesn't suck, do we?

Without further ado, the notes from the discussion.

Must support:

  • generating binaries (duh)

  • generating shared libs (on all ELF platforms + MacOS X; Windows?)

  • icon installation

  • uic, moc, KConfigXT, etc

  • GCC visibility

  • automatic dependency resolution

  • manual hints for dependency resolution

  • flex/bison

  • non-recursive (flat) builds

  • --enable-final

  • builddir != srcdir

  • simple to the point of being learnable within 5 minutes

  • kdeinit support (?)

  • multiple build targets (libfoo, libbar, libbaz) in one file

  • --compile-slots, like in unsermake

  • pkg-config support

  • support rpath sanely

  • ability to link & run uninstalled binaries

  • easily integrated into KDevelop

  • 'admin' needs to be shipped in KDE instead of in src of each app (if we keep the 'admin' dir, that is)

Would be nice, but not necessary:

  • having a standard and distributed build system and test suite

  • ability to build from svn:/trunk/KDE


[22:34] | [] | # | G
Wed, 08 Jun 2005
.: cool interview ::

Matt Harrison sent me a link to a cool interview with Ivor Hewitt, one of the guys working on KHTML lately.

Looks like the interview has been taken down. Maybe it'll come back up soon.

Ivor, do you have a blog? Because you should. Planet KDE could use some KHTML blogging love...

[15:46] | [] | # | G
Thu, 24 Mar 2005
.: congratulations, zack ::

Major kudos to Zack Rusin for getting hired at Trolltech.

(Not like it should be a surprise to anyone, since Zack kicks ass and Trolltech also kicks ass.)

This bodes extremely well for KDE4. World domination!

[17:07] | [] | # | G
Sat, 19 Feb 2005
.: subversion migration ::

One of the things I keep thinking about with KDE's much-vaunted CVS->SVN migration is... why don't we just leave the CVS server up as it is, and screw the whole "import the entire history of our repository into SVN" idea?

Think about it.

The cvs2svn script is good. Don't get me wrong - it's pretty impressive. But we've done some evil to our CVS repository - manually moved files, etc, and cvs2svn is not perfect; why don't we just leave the CVS server up and running read-only and import a snapshot (say, 3.4) into SVN without trying to drag all of the history along?

People who want to pull absolutely 100% accurate checkouts of a given revision can do it with the old tools and we can evaluate subversion without having to deal with any possible issues brought up by weirdness caused by cvs2svn.

I personally think this may be the smartest way to move forward, but I'm sure that others have differing opinions. Care to share them with me?

[02:54] | [] | # | G
Fri, 03 Dec 2004
.: Short post ::

The only point of this post is to point out to everyone that aseigo fucking rules.

That is all.

[23:44] | [] | # | G
Sat, 27 Nov 2004
.: you're not gonna do it, are you? ::

I finally relented. People have been asking me for weeks to add/change the current class name for images which will show up in blog entries on Planet KDE, and I've finally made it possible for those of you who do want to have images show here without using the word "rape" in your image classes.

(Man, people get upset over the strangest things.)

So, if you want to embed an image and have it also show on the Planet you can still add 'class="rapemewithachainsawthanks"' but you can also add the less-risque and more boring 'class="showonplanet"' tag as well. Your choice.

For the general readership out there, this makes absolutely no difference whatsoever, incidentally. Images will continue to show or not show depending on whether or not the blog authors decide to put the images here.

[03:35] | [] | # | G
Thu, 04 Nov 2004
.: hackfest ::

So geiseri hosted a hackfest at his place in PA last weekend. I showed up and brought manyoso with me; Nadeem Hasan came down, as did Mirko Boehm. Zack Rusin was already there, and it was fairly awesome. My only regret is that, despite the awesome time I had, I didn't get any hacking done since I don't have a laptop anymore.

Oh, yeah.

Somebody broke into my car a couple of weeks ago. Shattered the quarter glass behind the passenger window, and stole my IBM Thinkpad T41 out of the back seat. (Well, the footspace behind the passenger seat. Close enough.) I have no idea where the laptop is, and, while the police have been informed, they haven't really proven to be that useful.

End result: I have no laptop. So I was fairly useless at the hackfest as far as actual hacking goes. And my workstation at home is set up in a rather decidedly non-ergonomic fashion, which means that I can't really use the computer for extended periods of time without standing up and stretching out my knees.

I do have plans for stuff to hack on and plenty of things to keep me busy though. So don't worry about that, guys. Just need my replacement laptop to come in from work, and maybe I can pick up a computer desk with my next paycheck somehow.

Realized that I haven't blogged in a while, so these entries are a bit longer than the usual length. I doubt anybody will really care that much, but yeah. Maybe I can kick myself into blogging more frequently once I get some Tack hacking done again.

[23:49] | [] | # | G
Wed, 13 Oct 2004
.: showdown ::

I blogged earlier about KDE potentially moving our repositories from the ancient and archaic CVS system to the new hotness known as Subversion.

This time around, I've got more ammunition for discussion and a lot of thoughts about the relative strengths and weaknesses of each system as they apply to KDE. Hopefully other KDE developers will read these notes and at least take them into consideration when discussing our eventual move away from CVS.

So - first off, a few words about CVS. CVS has served KDE faithfully for years, and has been (for us) fairly stable and reliable. It doesn't change much. And, believe it or not, CVS does have some strengths.

  • Ubiquitous (practically every operating system on every platform can run CVS)
  • Relatively light on resource usage
  • Comparitively light on disk usage
  • It actually works
  • Branching is painful
  • Lacking in certain very basic features
  • Lack of atomicity with commits; no transactions
  • Not very well-optimized for low-bandwidth
  • Difficulty handling binary files properly

Now, Subversion fixes a few of these issues, but at the core Subversion's goal is to be a better CVS than CVS. It doesn't implement wire compatibility, nor can it natively use the old CVS repository format; instead, it maintains the same ideas as CVS (namely the same centralized development model), as well as a compatible command-set except for areas where changes are needed to deal with Subversion having features that CVS doesn't.

  • Little to no learning curve if you already know CVS
  • Atomic commits, with transactions
  • File renames
  • More efficient wire protocol for low-bandwidth
  • Disk usage is significantly higher than CVS for a converted repository
  • Subversion seems slower than CVS, quite a bit so in some cases
  • Not nearly as ubiquitous as CVS (yet)
  • Resource usage is relatively higher than CVS

And, just for good measure (basically, because I like it) I'll throw in a little bit about Arch, also known as 'tla'.

  • Super intelligent merging support
  • GPG signing support
  • Seamless inter-archive branching support
  • Very easy on server-side resources
  • Offline commits
  • Relatively high learning curve
  • Nowhere near as ubiquitous as even Subversion
  • Rather difficult and verbose user-interface
  • Disk usage is also higher than CVS
  • Speed is not very impressive

What does this mean for KDE?

I think that Subversion is a much more natural fit for KDE than Arch. We have a very centralized development model; however, the disk usage issue is depressing to think about. I ran a test conversion of our kdelibs repository from CVS to Subversion, once using the Berkeley database backend and once using the new fsfs backend; the bdb backend takes up 1194M of space, and the fsfs backend takes 1130M of space on my system. In comparison, the CVS repository takes up 281M of space for the same revisions. Some of the Subversion developers have offered me a few hints, but I cringe to think about how difficult the migration will be for a large module such as kde-i18n.

[00:59] | [] | # | G
Sun, 10 Oct 2004
.: hooray for migration! ::

So there's some pretty heavy discussion on the kde-core-devel list about migrating from CVS to Subversion for the entire KDE project.

All I can say is, the sooner, the better.

Of course, I'm very much of the mind that tla > svn > cvs, but as long as we're moving up the stack, even if marginally, it's still progress. Plus, svn has the feature that it is much more like tla than CVS is, and the cvs2svn guys have already written an impressive script to convert the ancient RCS files into changesets. And since both Subversion and Arch are changeset-oriented... I'm very excited. In my mind at least, it shouldn't be too insanely difficult to migrate from svn to tla in the future...

[23:43] | [] | # | G
Fri, 17 Sep 2004
.: what kind of madman are you?!?! ::

mattr just asked me on IRC why exactly it is that I want to write YAIMC (Yet Another Instant Messenger Client) and this is my response, for those of you who aren't really paying attention.

09:55 [mattr] clee: then why don't you spend time to either suggest improvements or improve the other existing ones?
09:55 [clee] mattr: Because the kinds of "improvements" that I'm going to suggest for kopete and for gaim and for every other client out there will get A) Laughed at or B) Ignored
09:55 [mattr] clee: and you know this how?
09:55 [clee] mattr: Ok, let's see your reaction to these suggestions.
09:56 [clee] 1) Drop every protocol except OSCAR.
09:56 [clee] 2) Strip out most of the 'plugin-based' API for everything.
09:56 [clee] 3) Redesign the UI to not suck.
09:56 [ShawnLaptop] clee: what kind of IM protocols will it support than?
09:56 [clee] ShawnLaptop: ICQ and AIM.
09:56 [clee] Which are the only ones that I give a flying fuck about.
09:56 [ShawnLaptop] MSN, Jabber, Yahoo?
09:56 [clee] Fucke'm.
09:57 [clee] er, Fuck'em.

There was a lull while mattr went to go get lunch, and then the discussion started back up again.

10:36 [mattr] clee: you better hope your IM client isn't any good, because then people will want you to have plugins, and support other protocols. :P
10:36 [clee] mattr: Oh, it won't be.
10:36 [clee] mattr: As a matter of fact, I'm going to hardcode my username and password into it.
10:37 [clee] mattr: There will be zero preferences, because all behavior will be hardcoded to exactly the way that *I* like it
10:37 [clee] mattr: And if anybody doesn't like it, they can go fuck themselves and/or fork it themselves
10:37 [mattr] heh
10:38 * mattr notes that he neither laughed nor ignored clee's suggestions. :P
10:38 [clee] mattr: But you won't implement them.
10:38 [clee] mattr: And if you did, you'd ruin Kopete.
10:38 [clee] so it's ok.

To be honest, I may not even release the code to the rest of the world. What with my username and password being hardcoded into it. But we'll see.

[14:09] | [] | # | G
Sat, 04 Sep 2004
.: disabled account ::

Sashmit, your site appears to have moved to a new host, and cron has sent me a few dozen emails about a 404 on your blog. Drop me an email when it's back up so I can uncomment your feed again :)

[15:25] | [] | # | G
Thu, 05 Aug 2004
.: planet upgrade ::

Talked to Scott James Remnant today, and asked him about the bug with atom.xml parsing and <br/> elements; he pointed me at his arch tree and told me to update from there, which I've done.

Net effect, a tiny bump and all of a sudden atom.xml feeds are looking dead sexy. Anybody who's currently blogging on blogspot - your feeds should no longer look like crap! There was a small bug for a minute with the old template, where the (feed) links in the sidebar on the right were all pointing back to planetKDE.org instead of pointing to the actual RSS feed from the developer. That's been fixed.

If you notice any other issues, please let me know!

[13:56] | [] | # | G
Sun, 01 Aug 2004
.: new hotness ::

So Maksim (aka SadEagle) did some awesome hacking on my crazy widget style and fixed a few of the bugs that I've been too lazy (or too stupid) to fix myself lately. This has kickstarted me into looking at some more of my code, and I've actually been hacking on things lately.

I also have an evil plan regarding kdelibs... How much would everyone hate me if I split out the sub-libraries within the kdelibs package into smaller individual packages and ported them to use pkg-config instead of the voodoo that is our admin/ build system?

Comments, replies, sexual favors?

[12:49] | [] | # | G
Mon, 14 Jun 2004
.: going live ::

Well, it looks like KDE.org and even Planet Debian have picked up on the existence of my little project, so I guess it's time to officially say "Yes, we're live!"

Disclaimers are up, layout is (mostly) finished, other planets have been linked, seats are in their upright positions... And we are live, ladies and gents!

Now if only someone would fix up KBlog (or Tack! Tack needs love too!) Oh, and we need hackergotchi icons. Any artists want to volunteer?

[09:06] | [] | # | G
Tue, 08 Jun 2004
.: blog feeds ::

In response to Roberto's query: If you have a blog with a working RSS feed (e.g., one that includes the <pubDate> tags) send an email to clee@kde.org with your name, what you hack on, and the URL of your RSS feed, and I'll add you to the blogroll here.

Hopefully Ian will fix up kdedevelopers.org soon so that I can start pulling those blog entries too.

[22:23] | [] | # | G
Sun, 06 Jun 2004
.: tack release ::

With the advent of planet KDE, we need a decent blog posting utility for KDE. This isn't it, but it might become that utility if enough people send patches to me (or hey, you can always fork it!)

Ladies and gentlemen, without further ado, I present to you:

Tack 0.0, the most minimalist and feature-starved blog posting utility KDE has ever seen. It needs loving, lots of it, and as I'm going to be on an airplane later on today I can't give it the loving it so deserves.

So download it, marvel at its simplicity and lack of functionality, and then hack on it and send me patches so that it stops sucking so much.

That is all.

[08:21] | [] | # | G
.: planet KDE ::

I was discussing how addictive Planet GNOME and Planet Debian are on #kde-devel with a few KDE developers and we lamented the lack of a Planet KDE. However, unlike them, I actually decided to get up and do something about it.

Behold! Planet KDE!

Yes. It's ugly. It's also fairly empty. Until Ian fixes up kdedevelopers.org (see how messed up the feeds are?) so that it includes <pubDate> tags so that the blog entries get sorted correctly, we're pretty lonely over here.

The good news is, if you're a KDE developer with a blog on your own site, mail me the URL of your properly-formed RSS feed, tell me what you do in KDE, and I'll add you to the blogroll as soon as possible.

[06:08] | [] | # | G
Thu, 06 May 2004
.: asteroid release ::

Published Asteroid on looky today. Should be interesting to see what kinds of responses I get to it. I'm sure that nobody will ilsten to my "If you don't like it don't use it and don't bitch" disclaimer, but oh well. Such is life.

In other news, I should be able to hack on my dotNET config page Sometime Soon (TM) so hopefully I can finally get that uploaded into CVS. I know I've promised it before, but honest - it's coming!

And other stuff is on the horizon. I love KDE development. Also, the guys from Sun's Project Looking Glass team kick ass. (I met them at the xdevconf last week.)

[12:30] | [] | # | G
Mon, 03 May 2004
.: asteroid surprise ::

I wrote a new style from scratch a long time ago called Asteroid. It was done half as a gag, and half because I was bored. I also decided to implement it from scratch (instead of following my usual method of hacking on the dotNET code) so that I could provide a better platform for others to build their styles on. (As an aside, I also took out all of the Asteroid-specific code and put it into a Skeleton style, which is BSD-licensed and available on my site).

However, being that I'm lazy and Asteroid got Good Enough TM for me to use without being too annoyed with it, Asteroid was put on hold at version 0.2. Until today, that is. I got an email from David Chester, with the Munjoy Linux distribution, and he has implemented much more of the widget style code, and submitted his changes back to me. (As an aside, Munjoy looks quite nifty, and I'm going to have to try it out. KDE + Debian = Righteous.)

So, yeah. I started something neat, and somebody else picked it up and ran with it. Open Source code rocks.

[16:02] | [] | # | G
Mon, 09 Feb 2004
.: oh how I hate gssapi ::

so now that I have a local kerberos server, and it hands out tickets like a champ, and life is good, the next (logical) step is to want to have single-sign-on for things like (say) my email.

KDE has a custom ground-up SASL implementation that supports LOGIN, PLAIN, CRAM-MD5 and DIGEST-MD5, but not GSSAPI (which is a layer on top of Kerberos). I took a look at it and decided that I could implement a GSSAPI function for the KDE SASL implementation. I had no idea that it'd be so damned frustrating. why is GSSAPI so complicated, and poorly-designed to boot?

if you think I'm joking, or complaining about nothing - the main function, gss_init_sec_context, takes THIRTEEN parameters. that's a lot of margin-for-error. one would think they might use custom data structures, ones more complicated than the standard struct with a void pointer and an int to indicate the length of the data, but no. of course not.

oh well. when I'm done, KDE will have a GSSAPI implementation, meaning that it should Just Work (TM) with any Kerberized service that uses SASL. Namely, this means IMAP servers and probably a few SMTP servers - having single-sign-on for these services will be great.

[15:47] | [] | # | G
Fri, 23 Jan 2004
.: corner widgets 2 ::

so I was doing it wrong. ceebx's code works great. (I was checking for currentTab == 0 && cornerWidget, but I needed to be checking for currentTab == 0 && !cornerWidget. one simple little bug...)

of course, I said I'd probably commit this stuff last night. now I want to integrate a ConfigPage in with my commit so I can have a huge commit with new fun stuff in it... :)

mmm. well, it's nice to have Konqueror drawing the tabwidget correctly now. it doesn't look so silly anymore.

[06:19] | [] | # | G
.: corner widgets ::

got an email from ceebx tonight - this guy rules. not only is Plastik the single most visually attractive style I've used (well, aside from the ones I've written, of course ;) but he sends me suggestions for problems that he comes across.

now, the current suggestion he sent me doesn't seem to be working just yet, but I'm sure I'll get it to. I hate QTabWidgets.

[01:35] | [] | # | G
Thu, 15 Jan 2004
.: rock star ::

I got an email from a Linux distributor today asking me if I would mind going into some detail on my widget style experience. Hopefully my reply will make a good impression, since I've done a pretty decent amount of work in this field; I think it'd rock if I were hired as a consultant or contracted out to for development work.

Life can be funny. I never expected that my after-school hobby might eventually open up so many doors for me. It's not quite the same as being a rock star, but life could definitely be much worse.

[21:34] | [] | # | G
Mon, 12 Jan 2004
.: this is a test from my tack app ::

hooray! I have a test app! :D

[07:52] | [] | # | G