Posts about kde (old posts, page 4)

2004-02-04 14:36

Just in case you thought I *was* a little rough...

Ilan, darling, you are paranoid. What you did is a patch. When you modify a few strings (my guess is about 25 of them), that's not a software project.

I also missed the part where anyone forced anything on your government (whatever that government is). Must be the power of the KDE guerrillas, subverting the countryside.

2004-02-04 14:29

So morons can use KDE, too.

Mind you, when I say morons, I don't mean the following:

  • those using Clarux are morons
  • people who don't like current KDE are morons
  • people who can't handle UNIX are morons
  • people who prefer Windows are morons
  • people who prefer Mac are morons

I am specifically saying that those who put in their webpage stuff like

Directory Free kde-libs and Directory Free kde-base have been released (screenshot). Both of these libraries have been modified to support higher quality users (emphasis mine)

are morons. Of a very high quality. Or at least they look like morons until they correct it.

On other news: those developers you clarux guys seem to dislike so much are the ones who wrote all the fucking software you are distributing, and they were kind enough to let you spend a weekend changing strings and two icons, then distribute it in such a stupid condescending manner from your website, which is, of course, powered by more software you got as a gift from developers.

Got it? Without those developers, you would be using ground plants to draw antelopes on the roof of your filthy caves, Clarux kids.

Now, that feels better. Or was it a little over the top? Nah.

2004-02-03 13:02

Cleaning the attic III: Cooperative MT Qt apps using GNU pth

This is something I wrote in March of 2000, about how to write a cooperatively multithreading app using Qt and GNU Pth.

Amazingly enough, I think it still may have some little value :-)

The syntax is probably wrong considering Qt has gone from 2.0 to 3.2 and Pth from 1.0 to 2.0, but it should work as a rough guide.

One funny bit: I had no copies of this. So, it's a good thing the Internet never forgets :-)

2004-01-04 15:18

Now, that´s cool

A gtk engine that draws using the current Qt style.

Kudos to David Sansome, your code is an example of the kind of evil ideas the world needs. And I really mean that as a compliment :-)

2003-12-20 13:07

Well ordered toolkits

I think some months of formal math training would do wonders for the average guy.

And I don't mean algebra, I mean logic, set theory, that kind of thing.

The obvious example is, of course, comparing two things. There is the concept of the well ordered set. In a well ordered set, for any subset, there is a larger and a smaller member.

In other words, if you compare any group of things, one is the largest, one is the smallest.

That may seem obvious, because people only think in terms of integer or real numbers when they see > , but real life is different. Real life objects are usually not well ordered, and that means you can't sort the whole set, nothing ever comes out on top.

Because the crappy math people learn makes them think in linear terms [1], reality is approached in linear, limited terms.

what I am thinking about:

People say Qt is better than GTK+ or viceversa.

Well, those are multidimensional objects you are comparing, and in order to make it meaningful, you need to establish a metric that will make the toolkit-space a well ordered set.

That metric, sadly, is subjective and personal. While Bruce Perens[1] may see the acquisition cost for proprietary developers as the most significant part of it[2], others may see techical features as more important.

But the telling point is this:

If you are a free software developer, why would you choose GTK+? What is your metric, where GTK+ is larger?

I really have no clue on that, since I haven't touched GTK+ since I recoiled in horror from it in early 1996, but I will try my best.

  • You prefer coding in C
  • You want your app to work well with GNOME
  • You find the GTK+ API appealing
  • You like some GTK+ development tool, like glade
  • You see better performance in GTK+ than in other toolkits

I can't find any other reasons, and even one or two of those seem iffy to me ;-)

You prefer coding in C: Ok, that's reasonable. If you want to code in C, GTK+ is probably the way to go.

But why, oh, why do you want to do that? Really, come on, C is a poor language for almost every use. Your language metric is probably the guilty part of your choice of GTK+. But that's another set.

You want your app to work well with GNOME: Ok, that is reasonable. I could say Qt apps work well with GNOME, too, but that's my own subjective bias, and really not defensible, since GTK+ apps do work better with GNOME.

The GTK+ API is appealing to you: you are a sick person? ;-) Ok, that was harsh: you have bad taste in APIs? Ok, that was still harsh: I don't understand you. Yeah, that's better.

Luckily, you don't have to use it, you can use decent wrappers, nowadays.

You like a development tool, like glade: I don't see glade as a big thing compared to others, but hey, that's just my taste. Reasonable point.

Performance: You want performance? Use fltk. Even pure Qt seems to be about on par with GTK+. Of course if you pair this with the C argument, they sinergize. After all, GTK+ does have better performance than Xaw3D or somesuch. Maybe XForms?

Please, if anyone reads this, I am not trying to flame GTK+ or its developers. I am sure GTK+ is the greatest C toolkit around, and developed by smart people.

I just also don't see any compeling reason to use the thing for free software development. For proprietary coding? Maybe, if you are low in cash. My own metric (for whatever little it's worth) doesn't make me see GTK+ as an interesting tool. If yours does, please help me improve it.

Yes, I know stuff like saying the API is ugly can't be improved, because you can't convince me that it isn't[4], but you can help provide new reasons, or strengthen others, or maybe tell me bad points about the toolkit I see as better.

[1] Ok, people think that way even if they don't learn math, the thing is, math teaches you to think non-linear, or multidimensional.

[2] An interesting fellow. Remember when he quit Debian in a huff?, and that he was going to develop a Red Hat-based distro that was more desktop-oriented? That was probably around 1998 or 1999, IIRC. BTW: you won't find all of it in the Debian archives, "someone" removed it.

[3] Which is really a bizarre argument, isn't it?

[4] I also think most of Dalí's and Picasso's paintings are ugly. How can anyone convince me they aren't? They can't.

2003-12-15 15:11

The case against cooperation

I often see and read about cooperation in free software. I read about how multiple competing projects are counterproductive, about how cooperation would make things go faster...

You know, that's all wrong. I am not saying cooperation doesn't have its place, it does! It's just that not everything works better with cooperation.

I will just talk about what I know, and what I know is very little, so sorry if the examples are too tightly focused, but I am a small picture guy.

Example I: KDE and GNOME

For the GNOME fans: If cooperation were more in vogue in 1996, your object of affection wouldn't exist, so that's it for you.

For the KDE fans, the case is a little harder to make, because we assume that we would be better along if GNOME hadn't existed (I had even said that a few times).

Although it is not possible to prove one thing or the other, since history is not an experimental science, allow me to point out that KDE's goals were much smaller, its scope immensely less ambitious. It was meant to be about 20 small programs, not a multimillion-LOC thing.

GNOME was part of the incentive to move into the larger stage. Think of it as an arms race.

Let's face it, some things were developed just because GNOME had them, or even because they didn't have them yet ;-)

I assume GNOME guys can say similar things, it should be even more obvious in their case, since the project was started because of KDE (Miguel once said something like KDE convinced him that it was possible to do[1])

So, cooperation would have been detrimental. It's not that cooperation hurts development, but that competition fuels ambition, and ambition fuels development.

Example 2: Mad scientist syndrome

Once upon a time, Rasterman had started developing what he called 'themes' for Gtk+.

You know, I had read some of his code when he started hacking fvwm, and while I respect his graphic skills (although his taste is horrid to me [2]), his coding skills... well, let's say that I don't hold mine in high esteem, but his code... well, I suppose it was good in some efficiency sense... I hope it was, else it was unforgivable.

Also, I was convinced that Qt was way better than Gtk+ in any conceivable sense[3], so I thought... how is he doing it?

It turns out that he was replacing the drawing code for the widgets with what would later be known as the "pixmap engine". The drawing code read a config file, loaded pixmaps and pasted them over the place the widget would be.

Mind you: that scheme is hideous for many reasons, and simple badly designed (you can't change your colours in any reasonable way, for example). But... I had troubles.

You see, we are talking Qt 1.x at the time. Under the non-free-software license. I couldn't touch Qt, so I couldn't modify the drawing code.

So, how could I show Qt was better? By doing an evil hack (TM)[4], of course. I intercepted the drawing events in the application class.

I held lists of widgets at creation, I diverted the expose events off the toolkit code, I subclassed the application class, I overrode the compiled code with LD_PRELOAD, I used almost every evil hackery I could find, and you know what? It worked. I had a screenshot to show, too.

In fact, in 36 hours I had a more advanced theming engine than Rasterman's, by some measures (I had themed way more widgets).

I showed it to some KDE guys, Kalle showed it to some Trolls, they got so nauseated by it, I still think it partly convinced them to add styles in Qt 2.x, so I wouldn't have them look at it again (It used, after all, only the public APIs).

So, where is the connection between that story and cooperation? Oh, grasshoper, the connection is that there wasn't any connection.

Had I been a cooperative sort, I would have shown the ideas to someone and been laughed at. Or I would have contacted some of the Trolls (I knew a few of them back then) and would have been convinced that it was a bad idea (it was :-)

The only reason why I coded for 36 straight hours was because I really really really was pissed off that Rasterman could hack Gtk+ and I couldn't do the same thing to Qt.

So, cooperation drives to the average. Cooperation begets bland. And while bland is good for you, if everything was bland, free software would suck immensely. Free software is not a tool for a goal, at least not for some of those writing it, it is a toy, in the good sense, something that is useful for itself, in itself, even if it does nothing. So are jewels, you know.

While a project can not be developed by a single person, a design almost certainly MUST, specially if it's a new or strange one. And some stuff really has to be done in solitude, or it won't be done.


[1] I really don't like the guy (old story don't ask), but hey, why would he lie about that?

[2] My taste is horrid to me, too.

[3] I never said my opinions were ver rational

[4] And I mean evil. Evil as in mordor-code, evil as in a design so hideous I still remember it :-)

2003-12-11 19:38

Listen to me!

Ok, noone will bother, but you can listen to me speaking about KDE in a Linux event last year, in Ogg Format, in spanish.

I just ran into this by googling for my name :-)

It is the first time I like the way my voice sounds in a recording, too.

2003-11-04 20:06

Confused by QMimeSourceFactory

Ok, here it goes. If you are not fluent in Qt programming the following entry will make no sense whatsoever :-)

If you set the contents of a QTextBrowser, and the content is HTML, it will call its QMimeSourceFactory's data() method to get MimeObjects representing, for example, images in the HTML.

So far so good.

However, I am mistified by this: While it's doing that, you can change the contents, and it will go along it's merry way, except that old data() calls are still in progress.

In other words, it acts as if it's multithreaded. Usually, in Qt, this is because someone is calling QApp::processEvents, and then you have multiple functions running and yielding to each other in the Qt event loop.

That is surely what's happeneing, but... how the hell does one stop the old data() calls????

The processEvents call is not made by me, it's done internally by some method in the QTextBrowser.... so, right now, in KRsN, sometimes you are downloading images for old stuff you saw minutes ago!

2003-10-26 17:25

KRsN teaser number 4

Ok, so teaser number 3 was a long time ago ;-)

I just added web browsing capabilities to it. Now, if you follow a link, it will open in KRsN's window.

If you have KDE, it will soon open in an embedded konqy, but if you have Qt, it still displays pages quite nicely, as shown here.

Except for the stylesheet, and some missing images, it looks almost ok!

Contents © 2000-2019 Roberto Alsina