2003-11-26 19:33

Ramping down

I have decided I am taking a month off (from work, not the blog, not hobby programming). And if I still feel tired, I am taking another week or two.

I have the money, business is always slow in January (summer vacations here), and not that good in february.

Add to it that maintenance can be done via ssh from any beach on which I happen to be drinking caipirinha, and that's it.

I intend to shut down teaching slowly, take no consulting gigs starting next week, and slowly reach a point, around december 17, where I have nothing to do.

2003-11-23 20:47

Late movie review: Matrix Revolutions

Although it opened here (Buenos Aires, Argentina) at the exact same time as almost everywhere else, here's a late review of the movie.

I liked it. I have read the critic slam it, and you know what? I understand them. But I liked it anyway.

Now, why is that, and why don't I slam it as well? The problem critics had with Matrix: Revolutions is one of expectations.

They expected it to be a movie that lifted Matrix: Reloaded into a meaningful and worthy sequel of the original film. That is of course impossible for many reasons.

The main one is that it's 2003, not 1998. In 2003 lame movies like Bad Boys II have special effects that are about as good as The Matrix's were. We are jaded to them.

In fact, we are not only jaded to special effects that were special five years ago, we are jaded to surprise itself, like if showing us something new was an old thing itself.

So, even when there is a sequence that should awe us (like, say, the slow motion punch into Smith's face, look how you can see the fist pushing individual raindrops, the face deforming under the pressure, the detail of the impression of the knuckles... do you know how that was done? I don't!)... well, awe is old news.

So, I went to the theather expecting a movie that would be a fine action movie, with impressive sights, lame acting (not a decent actor in the bunch, except Lawrence Fishburne, and he was apparently directed not to act, but to look serious and important), some sophomoric babble, and some kung fu (I wanted more seraph, though).

In that level, it works. In making us all be five years younger, it didn't.

And to those who said the ending just drops the ball of the story threads, well, guys, this was a christian parable, Neo died for the sins of the programs, he was not the christ figure of the humans, but of the machines.

The robots in the city are the romans, the oracle and other "good bots" are israelites, the architect is Herod, Smith is the roman legions oppressing the israelites, and Neo's messianic "death" (he didn't die, but he is shown in a crucifiction-like pose, and doesn't move) is the second coming announcing the raising of the new temple, by turning the romans against their own legions and ushering peace on earth.

And the humans in Zion are vermin in Jerusalem's sewer system. Just ask the Merovingian (He, I have no idea who he is in the analogy, I just thought this as I was writing, be happy if it holds for another 30 seconds ;-) Ok, he is Mary Magdalene's pimp.

See, that's the kind of thing the Matrix trilogy does, it induces otherwise reasonable people into trying to shoehorn random data into patterns it doesn't fit (at least I tried to make a slightly original one).

That not specially cool quality is shared with other upper-mediocre-crust entertainment, such as "Catcher in the rye". While amusing, its produce is, of course mostly pedestrian.

The trick here, I think, is one used by people like Berlitz, writing about the magic proportions of the pyramids. If you have a large set of numbers, and allow yourself some freedom to tweak, they will match some of the hundred of "important" numbers in nature.

My height * 1000000 ~ the distance to the moon. I must be really important!

The Matrix movies have dozens or hundreds of nuggets of things we recognize from somewhere else, usually only slightly veiled, so we can feel smart about unveiling them, and smarter still about connecting them.

Well, like the size of the stones in the pyramids, you can plug those nuggets into almost any structure you want, as long as you are willing to stand a few holes and forced fitting... and man, did that get old quick after the first movie or not?

So, that's why it didn't work on the philosophical level: we are tired of it, we only had gas for one of those movies.

Add that to the special-effects-are-not-special-anymore syndrome, and you have a recipe for a movie that, while ok, can't work.

And that, friends, is why it didn't.

2003-11-18 17:09

Small break

It should be obvious that it is not possible to have a job, a girlfriend, a hobby and a blog.

So, I have been neglecting the blog ;-)

Expect more updates now, since I am scaling down the job thing a bit.

2003-11-05 17:30

Drag and Drop in KRsN

Working pretty well now. It's not saved for following sessions, and the folders don't do what I want (show an aggregate of their inner feeds) yet, but it was pretty easy.

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-11-03 15:56

Qmail RPMs

I have been using Bruce Guenter's nice Qmail rpms for years, but he doesn't seem to be working on them much.

So, I just fixed a couple of issues:

  • TLS Support
  • errno fix (for glibc 2.3)
  • svc-add smtpd (silly)

So, it now builds out-of-the-box on RH8 and RH9.

I should open a sf.net site for them, probably. Add CRAM-MD5 authentication (I have it working with a plain file, LDAP would be nicer), a working courier RPM (tricky to build sometimes), a little extra stuff (antivirus, spamassassin, autoresponder) and it's really a nice mail server in a box.

2003-10-30 19:25

Shopping spree

A modest one, though. I got a 802.11b card, and a nice USB storage thingie. Nice toys, should be useful, too.

Coding in KRsN is quite nicely moving forward. The design of the app is almost competent now, and it works well (a couple silly mistakes I just fixed had broken feed addition, though)

2003-10-27 17:33

Post-facto inheritance

Now, I didn't expect this to work at all!

A QlistView is a sort of tree widget, and is drag&drop enabled.

The trick is, you have to reimplement dragObject() so it returns a draggable thingie after you drag something.

But, since I am using designer to draw the forms, I have to use a real QListView, not a child class.

Conundrum? Custom widget in designer? Not with python!

def myDragObject(self):
return QTextDrag("something",self)

self.tree.__class__.dragObject=myDragObject

And that works! I know it should work in python, but QListView is implemented in a C++ module!

The guys that did PyQt really made it well.

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!

2003-10-26 12:50

KRsN looking good

I left it working and fetching overnight, and it hasn't crashed. It even seems to have got all the items from about 12 feeds without problems :-)

If anyone wants to give it a try, CVS from sourceforge has all the stuff. It can't be installed yet, though, just use it from its own folder.

Contents © 2000-2019 Roberto Alsina