Fading Memories

About

Ramblings about books and other things that will soon fade from my memory.

Boudewijn Rempt

index | rss1.0

There's more...

Creative Commons License
The original artwork is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

Categories, too

Find


Archives

Other things here at rempt.xs4all.nl

2005-12-24

It has arrived

Right, I take back every unfriendly thing I've said about Bluelink. They managed to get my new z60m laptop (and I may well be the first one to install linux on that machine, according to Tux Mobil) in Deventer the day after they took delivery themselves. It's a gorgeous machine. Pictures and howto-install later... I'm making recovery cd's right now.

Update

Apart from the singularly sticky Centrino and Windows stickers, and the silly location of the Escape key (which may be the final straw for my vi addiction), there's really very little wrong with this laptop. It's sturdy, got a gorgeous screen, a keyboard with a great feel -- almost as if I'm typing on a full-size keyboard -- and installing Linux seems pretty easy.

Kubuntu wasn't able to downsize the Windows partition, but SuSE 10 was. And SuSE has very, very beautiful screen fonts and in general a very polished install. But I also wanted to try Kubuntu, which I'm upgrading right now, while also restoring my home directory from the disk of my old Dell. (Which, despite promises hasn't been returned, repaired, to me before Christmas.) Bad Dell.

Updated update

Installing Kubuntu Breezy Linux on the IBM/Lenovo Thinkpad z60m:

  • Suspend to ram works -- out of the box, if not with the fn-f4.
  • Suspend to disk works -- out of the box
  • After running sudo apt-get install libdvdread3; sudo /usr/share/doc/libdvdread3/examples/install-css.sh, dvd playback works, practically out of the box
  • X11 works, right resolution and everything. I haven't tested 3D acceleration with the ATI X600, but dvd playback is smooth and that's what counts
  • Sound works
  • The drives are approached by default using the SATA drivers, which apparently implies DMA, which is good
  • Mounting usd drives works (restored my home dir that way). However, Kubuntu mounts all partitions on the same mountpoint. Didn't know that was possible.
  • Connecting to my camera works
  • Wireless -- would have worked out of the box if the detection hadn't preferred the open, unprotected, default settings wlan of my neighbours.
  • Wired network works
  • SuSE shows much the same, except that SuSE enables all the wierd and wonderful thinkpad buttons out of the box, including the suspend button.

    The permanently running fans are a "feature" of many newer Thinkpads, according to ThinkWiki.

    All I can say is, I wish every laptop were as linux-compatible as this one. There's not much heroics in this report -- if I find it necessary to do somethinge extraordinary I'll update this entry.


And no thinkpad either

I was right... Bluelink did not deliver my new Thinkpad. They did not even think to tell me that they were not going to deliver. I had to phone them. Of course they didn't know why they couldn't deliver or when they would be able to deliver. But they promised to find out and then phone me back.

The Bluelink salesman told me that my laptop wouldn't be delivered until January 2nd -- and probably not even then but a little later.

Right, money back time. He didn't like that and said he'd try to put some pressure on Lenovo. As far as I'm concerned, he can do that and tell me tomorrow whether that worked or not.

But why is it so hard to deliver a laptop that was introduced in October already? And why don't resellers inform their customers of delays? Why doesn't Lenovo sell direct, and why do they have such a large range of models when only a few will be available?

Update

Bluelink have pushed Lenovo really hard, it appears -- and now Lenovo will ship the Thinkpad December 22. And they contacted Tryllian very speedily. Excellent!


2005-12-15

The Septuaginta, Scribes and Scholars

I am reading An Introduction to the Old Testament in Greek. Additional Notes by Hennry Swete. The Grand Rapids seminary (mildly famous in the Netherlands because they revere our Kuyper, while we have almost forgotten about Abraham de Geweldige) have scanned the 1914 edition of this massive book, tagged it using something called "theological xml markup" and prepared a public domain pdf. With all the Greek, Hebrew and everything intact. It's really a great read, and I wish I had a similar book about the Hebrew old testament and another one on the New Testament, with a final volume on the apocrypha.

Read more ...


2005-12-14

Ring ring!

Someone from Kassa mailed Dell yesterday afternoon and today, within half an hour of me arriving at work I was phoned by Dell. Apparently you need a television show on your side to get service from Dell. The friendly man was simply dripping with obsequiousness and my 5150 is going to be collected tomorrow for repairs and will be returned to me in a week, and they will expedite fixing Irina's 5150 with all due celerity, or so I was promised.

But what does Dell think they have achieved here? I cannot be the only customer they have royally pissed off by holding off on the fulfillment of their duties for as long as possible, instead of simply contacting all people who have purchased a 5150 and offering a repair.


No KOffice alpha today

I was going to tag KOffice 1.5 alpha today, but I cannot do that because I haven't got the hardware at the moment. And in any case, development on KOffice is now going at such a fast and furious pace that it's hardly opportune at the moment. A little more time will make the alpha (which isn't intended to be feature complete, but to give interested people something to test) a lot better.

For instance, Thomas Zander, David Faure and Gary Cramblitt have been hacking on KWord a lot. Yes -- after a long period of stagnation, KWord is moving forward. Lots of bugfixes, a complete refactoring of the page layout code, a redesign of the document creation panel, much work on the document structure pane and a speech interface. And while multi-page tables are still a problem, the table code has been reworked and is now much more robust. Also nice: in the normal view the page is centered in the window, instead of bunched up to the left window margin. We should fix that for Krita, too.

Sebastian Sauer and Cyrille Berger have been working on scripting for KOffice (for now only Kexi and Krita use the scripting library, but it's useful for every KOffice application), and Cyrille has added Ruby support to the existing Python support.

Casper Boemann has added a 16-bit L*a*b colorspace to Krita and thoroughly reviewed the color management path making it very dependable. And now that Adobe allows anyone to download and package a set of high quality icc profiles with their application, the results are good, too. Casper has also added autoscroll to KPresenter and Krita, and the code is generic, so it can spread to other KOffice apps.

Casper and Zagge have been working on a new guides implementation that is really slick and very usable. It's used in KPresenter at the moment, but Zagge has promised me he'd re-use the generic library in Krita. And of course, Kivio and Karbon could profit, too.

Nikolaus is working in a special branch on making discontinuous selections in KSpread a reality, and we hope to get his work into 1.5. Ariya Hidayat has started on a much more effficient class for loading xml-based files, which should help with loading times for big spreadsheets, and there's also work being done on making KSpread more memory efficient, so those big spreadsheets will also work once loaded.

Dag Andersen has picked up KPlato -- the integrated planner application for KOffice which is going to be included in our release for the first time with 1.5.

And Peter Simonssen has together with Thomas worked on resolving one of the biggest KOffice problems: the startup dialog that gives you a choice between templates, recent files and existing files. The new solution has received a thorough usability test with real life usability testers on OpenUsability and that has resulted in more fixes and polish.

My fingers ache... If only my new laptop will be delivered today!

(I know I must have forgotten something, but I'm typing this on the train and haven't got access to my mailbox.)


Still no Dell

I got mail from the "escalation" people from Dell's technical support. They were going to try to reach a solution in a reasonable time frame, a solution that should be acceptable to both parties. But that was a week ago, and no acceptable solution has been forthcoming.

So I mailed the people from the television show that had gotten Dell to open the special phone number, and they told me they were to mail Dell for me...

Let's see whether that will make things happen. In the meantime, my Thinkpad z60m should be delivered today. Again, having had experience with Dutch resellers, I'm thinking it won't happen today, but I might be surprised yet.

But why does Lenovo make it so hard to buy their products? Most resellers don't stock more than a small fraction of the Lenovo product range, and it seems that what they stock are the anemic bottom-of-the-range models. The first company silently canceled my order; the second company hasn't let me know anything.


2005-12-06

Incompetent Dell?

Dell is really amazingly incompetent as a company...

Right, they have admitted in public that the Inspiron 5150 is broken by design. They have even instituted a special phone number for people with a broken inspiron. Right -- everything should go swimmingly now, shouldn't it? People phone, give their service tag, and the next day a van comes to collect the broken systems. Customers happy, Dell's reputation salvaged.

But no, the very friendly Michael from the special phone number told me the phone number is only for prevention -- i.e., sending replacement parts to people with inspiron's that haven't broken yet. He doesn't know when the parts will be sent out, perhaps only when they've got a large enough order of them. Which will lead to many more broken inspirons in the meantime.

If your inspiron is already broken, he cannot do anything for you and transfers you to the regular technical service. One hour later... Just like yesterday, on hearing that you've got a broken 5150, they want you to phone the special number again... The only thing they can do is take notes and have someone, perhaps, can't say when, phone me back. Back to square one. We're exactly where we were yesterday!

Come on, Dell! This your chance to do one better than Acer.

2005-12-05

Misery loves company

One of my colleagues brought this article to my attention. Dutch only, I'm afraid, but I'm linking anyway in the interest of getting as wide as possible a dissemination of it. Apparently, Dell has admitted to at least one construction problem with their Inspiron 5150 laptops (of which we have two), and has offered to replace motherboards for free.

Or so I thought... I called Dell on the special number this morning and was connected to a friendly man who, on hearing I had a broken 5150 connected me through to technical service, all the while reassuring me that everything would be fixed, no hassle, no problems.

But the young man at the technical service desk, a certain Yussef or a least his name sounded a lot like that, told me he couldn't do anything for me since I couldn't perform his diagnostic tests. Well, I'm in Amsterdam at the moment, and the laptop is in Deventer, and besides, I know what's wrong with it. But no, no tests, no replacement. And when he heard that the computer wouldn't start at all, replacement was out of the question. He'd decided that the wrong thing was wrong with my laptop, so I would have to pay for it myself.

Couldn't help me, couldn't connect me to his boss, and if I wanted replacement parts for Irina's 5150 I would have to call the special phone number again. The only thing he could do for me was to have someone call me back within a few days.

I don't understand Dell: they have blundered already, and instead of doing some damage control by replacing all motherboards, no questions asked, they tell people they won't replace a broken motherboard because it's broken for the wrong reason. Apparently they don't realize that if they have to do replacement for one design error, they will have to do it for all faults caused by all design blunders in this misbegotten chunk of plastic.

So, I called again, the replacement parts should be sent out today for Irina's laptop -- the man who answered the phone told me he could only deal with laptops that are not broken yet -- and I'll be called within half an hour about the broken laptop. We'll see... To be updated soon, I hope.


2005-11-30

No hacking

I'm forced to lay off the hacking until December 14, when my new laptop will hopefully arrive. Which means I've got some time to pick up other things that don't need a fast computer. Like continuing an old project of mine: learning to read the bible in Greek. My parents gave me a nice copy of Rahlfs edition of the Septuaginta for my birthday in 1993, and I've been working up the courage to get started on it ever since. (My attempts at Hebrew have been even more laughable, at least I can read modern Greek a little.)

Fortunately, there is a very nice KDE application that's a lot of help, namely Bibletime. Bibletime can use various resources, such as bible texts, lexicons and commentaries and uses the sword library to load them. There is plenty of material -- translations in all kind of languages.

And there is also a free electronic edition of the Septuaginta. (LXX, so called because the tradition will have it that seventy-two Alexandrinian Jewish scholars translated all of the Law in seventy-two days -- the text is the oldest text of the Law we have, even older than the Hebrew texts that have come down to us, and is used as the authoritative text in the Orthodox Church).

There's also a word list, the so-called Strong's Numbers that is a reasonable fit for this text. Only recently, even after I got my Rahlfs edition, a real lexicon to the Septuagint has been published -- and then another one got published, for good measure. The riches! The Septuagint is a difficult book full of obscure koine Greek, neologisms and hebraisms so a good lexicon is important here. Pity I blew my book budget already...

Strong's glosses really aren't quite good enough: for instance, I wish that in "εν αρχη εποιησεν ο θεος τον ουρανον και την γην", "γην" wasn't glossed as "a primary particle of emphasis or qualification (often used with other particles prefixed):--and besides, doubtless, at least, yet." I am fairly sure that "γην" means "earth", here... But that's not bibletime's fault. And the Strong's numbers are still useful, especially when having a KJV or Statenvertaling parallel to the LXX.

But all the pieces are basically complete: text, translation, glosses. If the app doesn't suck, I can get started.

Bibletime's usage of Strong's numbers has improved a lot, too. Previously, the numbers were shown inline in the text itself, breaking up the flow. Clicking on a number would show the gloss. Now there's a nice little box that shows the gloss if your mouse cursor is over a Greek word. Bibletime is very usable, very polished, very helpful and very stable. One of the better KDE applications that are developed outside KDE svn.


2005-11-14

Broken again

My Dell Inspiron 5150 is broken again... This time, the blasted thing won't even start up nine times out of ten attempts, and the tenth time it shuts down after very short while -- I'd be able to login, but nothing more. The eleventh time, I thought I was lucky: it didn't shutdown until KMail had downloaded all my mail from my mailserver. Then it halted again, the only sign of life was the whirring of the fan, but even the little blinkenlights were off.

Which means that I cannot hack on Krita for the time being; that I cannot answer any mail I've been sent this weekend and haven't answered yet; that I will have to try and do my work on this six-year old Powerbook that's curiously enough still working; and that I will have to try to convince Dell that a laptop that's broken down six times in two years is bad product that they under Dutch consumer law need to replace or repair for a very nominal sum if not completely free.


2005-11-12

Cooper

Like many a hacker before me, I'm reading Alan Cooper's The Inmates are Running the Asylum>, and like many hackers before me I feel slightly indignant at his blanket dismissal of my attempts at dishing up an acceptable interface, and like many hackers before me I feel inspired.

Take this idea for instance: drag & drop. Nothing is more natural than that, right? You got a document, drag it onto the app icon, and the app opens the document. But this metaphor is actually the wrong way around. And app is a tool and you take a tool to an object, not an object to a tool. Unless the tool is extraordinarily big and clumsy. I mean -- I take my handsaw to my shelves, my screwdriver to my computer case, but I would take the putative leg of the imaginary chair I'm not building because it's too complicated to the workbench where I could turn it if I knew how to do that.

So, if I've got a couple of tools in my virtual toolbox, like gwenview to view an image or Krita to muck up an image, I think I'd find it more natural to drag & drop the gwenview or Krita icon onto the image icon, instead of the other way around. Take the tool to the object, not the object to the tool.

(Of course, Alan Cooper's book is flawed in many ways. The way he blithely assumes that software is worse than other everyday things is ludicrous to someone who discovers grave design flaws in his new socks (the seams near the toe-end are too big and in the wrong place, making them impossible to wear), swiss pocket knifes (I did feel as much a fool when the blade snapped onto my fingers as when I was told the difference between save as an export in KOffice by David, perhaps even more so) and gas ranges. And there's a reason I'm not car-literate. Everything we use has flaws. Although clothing seems worse than ever. Damn that summer jacket that doesn't breathe and where the zipper always gets stuck.)


2005-11-10

Keyboard layout in KDE

The Developer Journals CRM Simon Edwards typed his blog about keyboard configuration in somehow never lets me complete the login procedure, even though I do have an account, so I'll post my reaction here, on my own blog. (Where the comment software does have its own problems, but at least I can post.)

My take on this is: he's right on all counts. Actually, I noticed a recent regression, don't know exactly when it happened first. I used to have two keyboard layouts, one US English (for coding) and one US International with dead keys, for writing Dutch. There aren't actually many computers sold in the Netherlands with the Dutch keyboard layout, most of them have the US layout.

With the version the keyboard configuration in Kubuntu breezy, I can no longer do that: there's just one US keyboard layout that I can select exactly once, and then select a variant to that. So, I can no longer have US without dead keys and US with dead keys in the keyboard layout changer, and I have know whether I want the intl or the alt-intl variant... I have to make do with something closish, like UK with dead keys and US without. Argh.

Of course, I could hack this through editing the command-line for uk into using us... But that's not why I use a configuration dialog.

Oh, and I think I once typed a euro sign by using right-alt-5, but I'm not sure, and at the moment it doesn't seem to work.


From the promising-but-not-yet-usable-department.

Scripting

Cyrille Berger has been working on re-using Kexi's Kross scripting engine with Krita. Kross can potentially use a variety of language interpreters -- from Java to Python, from Ecmascript to Ruby -- to give scripts access to the objects in an application. Together with the regular bindings to Qt and KDE, you get a rich environment that makes it easy to extend and automate an application. Of course, all the Krita plugin does for now is show the traditional "Hello World" message, but Cyrille hopes to get experimental, but useful scripting done before the 1.5 release in February.

PNG Export

Cyrille has also been working on a separate PNG import/export filter. Currently, most common image file formats are handled by the Magick filter. This filter uses ImageMagick's coders and decoders to read and write png, tiff, jpeg -- almost everything but openEXR and Raw. But the Magick filter is written against the primitive C API, instead of the C++ or MagickWand interface to ImageMagick. This API changes often and besides, it's far from clear how to set export parameters like JPEG compression quality. While we will probably keep the Magick filter around for the wide variety of formats it supports (and especially tiff is supported very well), it's really better to have our own filters based directly on libpng, libjpeg and so on.

Active Layer Visualization

A French artist who is strongly influenced by the aesthetics of the better bande dessinee and who goes under the alias of Mr. Youp came to the mailing list with a suggestion on making it easier for the artist to be aware of the active layer. It happens quite often, especially in images with many layers that you start messing with the wrong layer. After much back-and-forth, Mr. Youp posted a link to a mock-up (in Photoshop!) of what he meant. Casper did a quick hack to give it a try, and I must say, it works very well. Mr. Youp is a very fine artist, by the way -- his website is full of amazing drawings. I wish he'd publish a bande dessinee of his own. It would fit in right next to my collection of Gibrat.

Color adjustments

Not a really new feature, but now it's implemented the way it should. Instead of converting every pixel to 8-bit RGB, we now use LCMS to adjust the individual channels. This means we can now adjust the individual channels of, say, a 16-bit/channel CMYK image without doing any conversions. Also not my new preview widget: it has its shortcomings, but it's fast and the display doesn't get messed up. Based on a widget from Amarok.

Finally

Bart Coppens has fixed the duplicate tool and given it a useful tip (we still need to fix the layout of the tool option panes, though. I'm working on a Raw importer, but I'm hampered by a bug in the mimetypes database KDE ships: some raw files are recognized as tiffs. Of course, some raw files, like Adobe's DNG format are tiffs, making the situation even more complex. And I'm finally working again on a painterly feature: a hairy brush that smears paint on the canvas. Not sure whether I'll be able to get that to work, though. A lot of maths is needed.


A lying winter

Reading one book leads to another; and in this case, reading the pseudo-Dorothy Sayers Thrones, Dominations led me to read John Donne. It seems from the quotes in "Thrones, Dominations" that neither Dorothy Sayers nor Jill Patton-Walsh have made much progress in the collected work, all quotes are from poems early in the volume.

Anyway, from Collected Works of John Donne, a natural progression was to the old Penguin Classic, The Metaphysical Poets. This book must have been on Irina's shelves since before I first met her, because it contained a newspaper clipping from December 1986, when I was 17 or 19 years old.

We are still reading the same newspaper: Trouw, one of the surviving underground resistance papers from the second world war, a newspaper with a very Christian identity. Or so it is still regarded...

Reading this clipping shows clearly that there's been quite a bit of change. This clipping contains a review of a translation of Donne's poems and is written by Eduard Pijlman. It is not exquisitely well-written, but the prose is serviceable enough. It suppose, however, a form of Christian belief that Trouw nowadays actively opposes.

By coincidence (coincidence? the "pensees" by Pascal-wannabe Alexander Elchaninov state that whoever believes coincidence exists, doesn't believe in God...), Trouw today published an interview with a minister. This interview was mainly remarkable for its tenacity in trying to get this minister to tell Trouw he didn't believe in God anymore. This minister, Sam Jansen from Driebergen very courageously resisted the onslaught.

The difference between today's interview, and this 19 year-old book review couldn't have been greater. In fact, I suspect the review would be refused by the Nederlands Dagblad.... The reviewer is especially impressed by both Donne's and Donne's translator's insight in St. Paul's second letter to the Philippians.

Not a topic that would make many hearts beat faster -- but a week or two earlier, I received a copy of the latest issue of "Liter". LLoyd Haft, who once taught me modern Chinese, sent me this copy because it contains a number of his poems. One of them, the first in fact, on St. Paul's letter to the Romans.

I'm not really word-perfect, anything but word-perfect in fact, in the tail chapters of the Bible, having grown up in a family of convinced Church-leavers, so I needed to read the letter to the Romans before I knew what I had felt on reading the poem; namely that this was a perfect commentary, an enriching summary (if such a thing can be allowed to exist). Irina tells me the poem about the Acts of the Apostles is even better, and the one on Corinthians I sends shivers down my spine.

I've been studying letters and poems together and have forgotten to write a thank-you note for the copy of Liter... Which we'll subscribe to, since the other content is very interesting, too.

But I wish Trouw would still publish reviews like the one by Eduard Pijlman.

By the way, about the lying winter... Methinks I lied all winter, when I swore my love was infinite, if spring make it more. And about the letter to the Romans (in the hope that quoting one poem is fair use and all that):

Wij vragen nog
naar weten,
wetten,
strekkingen die strikken,
vastmaken,
uitmaken.

Maar waarheid is geen wet:
zij is een wij.
Altijd wijder,
nergens hier alleen.

Waarheid maken wij niet vast.
Wij komen er benaderend,
samen
in beademend beamen.

(Lloyd Haft)

Somehow, this is very close to Christos Yannaras' Freedom of Morality and Zizioulas' Being as Communion. Both are relatively modern (time moves slowly in amateur theology) Greek theologians who emphasize the fact that belief is communion and community. We get there together, as Lloyd Haft says, in untranslateable Dutch.


2005-11-03

Read this

Read this.


2005-11-01

Wow!

Adrian Page in one fell swoop -- but it must have been a lot of work -- make Krita use OpenGL for rendering. Krita still works without OpenGL, but OpenGL opens the door to really cool and fast filters, really interesting tools and great performance. Moving layers is now smooth and precise. All the interesting paint applications on Windows use OpenGL -- Art Rage and Deep Paint, for instance -- but I don't know of any paint or image editing application on Linux that offers this. It also means that Krita images now can have transparent areas when embedded in other KOffice applications. It used to be that if you had an image with transparent areas, you'd see the gray blocks, instead of the background of the embedding documents.

And, deviating for a moment into Krita internals that are not important for users, but that make the developer's life much easier, Adrian's implementation makes it a snap to port this code to Qt4, and several changes improve the correctness of Krita's rendering a lot.

There have been other improvements to Krita, too, recently. I've cleaned up the plugin system and made sure only plugins with the right version number are loaded, we have a docker tab with a dynamically updated histogram and new and very cool wavelets filter:


2005-10-29

Kilo lines of code

So KDE is over the four million lines of code mark... Well... KOffice by now has about 700,000 lines of code -- although 70,000 of them are import of external projects for Krita. And OpenOffice has 5,209,395 lines of code. So OpennOffice is bigger than KDE and KOffice put together. That must account for some of the startup delay of OpenOffice.

As per sloccount:

SLOCCount for KOffice

SLOC    Directory       SLOC-by-Language (Sorted)
173612  filters         cpp=168841,ansic=3646,python=600,yacc=227,lex=157,
                        sh=141
157433  kexi            cpp=78876,ansic=74190,yacc=2307,python=1147,sh=565,
                        lex=286,awk=62
107505  lib             cpp=105615,python=1155,ansic=425,perl=157,sh=153
79549   kspread         cpp=79490,sh=59
72106   krita           cpp=67997,ansic=3668,python=289,sh=87,perl=65

Holy thingummy -- we've been adding code to Krita at a fair clip!

 51159   kpresenter      cpp=50893,perl=142,sh=124
48190   kword           cpp=48103,sh=68,perl=19
32750   karbon          cpp=27516,ansic=5175,sh=59
30073   kchart          cpp=30073
25880   kivio           cpp=25853,perl=27
19583   kplato          cpp=19583
14530   admin           sh=9851,perl=4679
12019   kdgantt         cpp=12019
8484    kugar           cpp=8484
2323    tools           cpp=1901,perl=261,sh=161
1887    kformula        cpp=1828,sh=59
1251    koshell         cpp=1251
230     example         cpp=230
180     kounavail       cpp=180
152     top_dir         sh=152
72      plugins         cpp=72
70      interfaces      cpp=70
30      doc             sh=30
22      templates       sh=22
0       autocorrect     (none)
0       autom4te.cache  (none)
0       debian          (none)
0       mimetypes       (none)
0       pics            (none)
0       servicetypes    (none)


Totals grouped by language (dominant language first):
cpp:         728875 (86.86%)
ansic:        87104 (10.38%)
sh:           11531 (1.37%)
perl:          5350 (0.64%)
python:        3191 (0.38%)
yacc:          2534 (0.30%)
lex:            443 (0.05%)
awk:             62 (0.01%)




Total Physical Source Lines of Code (SLOC)                = 839,090
Development Effort Estimate, Person-Years (Person-Months) = 234.98 (2,819.75)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 4.26 (51.17)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 55.10
Total Estimated Cost to Develop                           = $ 31,742,461
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.
SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to
redistribute it under certain conditions as specified by the GNU GPL license;
see the documentation for details.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."

OpenOffice:

 SLOC    Directory       SLOC-by-Language (Sorted)
951595  binfilter       cpp=951322,awk=256,asm=10,perl=7
550631  sw              cpp=550082,ansic=505,awk=44
383523  svx             cpp=383440,sh=73,asm=10
365804  sc              cpp=363582,java=1269,lisp=798,perl=155
192673  vcl             cpp=188641,ansic=2769,objc=702,java=544,asm=17
172907  svtools         cpp=172712,ansic=195
156925  sd              cpp=156662,perl=184,php=79
120534  xmloff          cpp=120534
114964  qadevOOo        java=114964
110217  sal             cpp=70872,ansic=36235,perl=2866,asm=212,csh=20,sh=12
101860  sfx2            cpp=101269,java=591
100550  dbaccess        cpp=100008,java=542
91611   connectivity    cpp=86029,yacc=3044,java=1803,lex=735
88306   framework       cpp=84366,java=3940
62593   tools           cpp=60439,ansic=2098,awk=56
61603   extensions      cpp=59289,ansic=2238,java=76
56653   configmgr       cpp=55840,java=764,sh=49
56291   sch             cpp=56291
53943   setup2          cpp=49845,ansic=2272,objc=1039,sh=760,perl=27
53068   ucb             cpp=51890,java=1160,python=18
49881   odk             java=40793,cpp=5055,cs=1580,perl=989,ansic=638,pascal=397,
                        sh=236,csh=193
46307   goodies         cpp=46307
44462   basic           cpp=44326,asm=136
43922   i18npool        cpp=43546,awk=376
41627   bridges         cpp=35086,java=5640,asm=901
40778   chart2          cpp=40146,java=524,perl=108
38196   autodoc         cpp=38196
37336   wizards         java=37336
37309   toolkit         cpp=29971,java=7338
37047   solenv          perl=33728,sh=3011,ansic=242,awk=66
34870   forms           cpp=31696,java=3174
30401   stoc            cpp=30278,java=123
29871   std2            ansic=29829,sh=42
28979   scripting       java=20327,cpp=7979,python=673
26308   xmerge          java=21501,perl=2296,cpp=1726,sh=785
25315   filter          cpp=19383,java=5563,python=369
25194   dmake           ansic=19994,sh=4387,asm=759,awk=54
23797   desktop         cpp=23142,sh=383,ansic=272
23702   starmath        cpp=23702
21836   slideshow       cpp=21239,perl=578,sh=19
20322   xmlsecurity     cpp=17254,java=3068
19236   codemaker       cpp=18832,java=404
19089   so3             cpp=19089
18734   psprint         cpp=14057,ansic=4677
18269   basctl          cpp=18269
18081   hwpfilter       cpp=18081
16862   XmlSearch       java=16862
16713   package         cpp=12658,java=4055
16462   rsc             cpp=11865,ansic=3647,yacc=950
15446   comphelper      cpp=15217,java=229
15158   automation      cpp=15078,perl=80
14695   sim2            cpp=14695
14202   canvas          cpp=10189,java=4013
13954   xmlhelp         cpp=8082,java=5741,sh=131
13495   cppu            cpp=11768,ansic=1727
13412   sip             cpp=13365,sh=47
13255   fpicker         cpp=13255
12875   embeddedobj     cpp=10856,java=1911,ansic=108
12473   unotools        cpp=12473
12137   basegfx         cpp=12137
12075   dtrans          cpp=12075
11774   transex3        cpp=10217,perl=830,lex=718,sh=9
11404   writer2latex    java=11404
11346   idlc            cpp=5215,ansic=3340,yacc=2791
11335   lingucomponent  cpp=9652,ansic=1600,perl=83
11330   registry        cpp=11330
11276   ucbhelper       cpp=11276
11248   sot             cpp=11248
10708   cppuhelper      cpp=10520,perl=188
9944    linguistic      cpp=9682,java=262
9465    jurt            java=9068,ansic=397
9413    soltools        ansic=5731,cpp=2675,lex=1007
9172    shell           cpp=8476,sh=538,ansic=125,awk=33
8610    xmlscript       cpp=8610
8242    testshl2        cpp=6984,java=780,perl=435,csh=43
8209    accessibility   java=7984,cpp=225
8065    idl             cpp=8065
7992    testtools       cpp=4375,cs=1787,java=1281,python=549
7942    odfilter        cpp=7942
7901    javaunohelper   java=7351,cpp=550
7250    io              cpp=7250
6983    store           cpp=6983
6712    cppcanvas       cpp=6712
5750    jvmfwk          cpp=5695,java=55
5483    regexp          ansic=3808,cpp=1675
5412    scptools        cpp=5281,yacc=131
5060    cli_ure         cpp=2626,cs=2377,java=57
4799    avmedia         cpp=3537,java=1262
4737    setup_native    cpp=4040,sh=572,ansic=91,perl=34
4538    jtools          java=4538
4522    scaddins        cpp=4522
4362    embedserv       cpp=4362
4212    sax             cpp=4212
4145    padmin          cpp=4145
4119    pyuno           cpp=3287,python=745,sh=59,csh=16,ansic=12
3859    i18nutil        cpp=3859
3843    crashrep        cpp=3829,sh=14
3785    bean            java=3555,ansic=230
3733    unodevtools     cpp=3733
3579    unoxml          cpp=3579
3327    xml2cmp         cpp=3327
3273    bonobo          cpp=2904,ansic=281,sh=55,sed=33
3093    uui             cpp=3093
2977    UnoControls     cpp=2977
2906    ie              cpp=2906
2806    vos             cpp=2806
2567    mkdepend        ansic=2567
2545    cosv            cpp=2545
2482    smoketest       perl=1156,java=1111,cpp=215
2437    chart           cpp=2437
2407    sandbox         java=2407
2343    ridljar         java=2343
2324    sj2             java=1622,cpp=702
2275    unixODBC        ansic=2275
2154    rdbmaker        cpp=2154
2018    cpputools       cpp=1932,sh=86
1930    config_office   perl=1930
1910    remotebridges   cpp=1910
1900    animations      cpp=1900
1698    writerperfect   cpp=1698
1513    udm             cpp=1513
1390    twain           ansic=1390
1352    sysui           cpp=733,perl=385,sh=187,ansic=43,sed=4
1351    smoketestoo_native perl=1351
1039    officecfg       java=1038,sed=1
952     devmanual       perl=952
913     udkwww          python=913
830     jut             java=830
790     virgule         cpp=747,ansic=43
740     fileaccess      cpp=740
676     eventattacher   cpp=676
625     helpcontent2    perl=625
617     x11_extensions  ansic=617
616     testshl         cpp=616
525     ure             cpp=381,java=137,sh=7
509     jvmaccess       cpp=453,java=56
477     postprocess     perl=477
474     sdk_oo          perl=474
465     salhelper       cpp=465
400     product         cpp=400
323     apiwww          perl=321,sh=2
241     scp2            perl=241
173     sane            ansic=173
133     helpcontent     perl=133
110     external        sh=64,ansic=37,cpp=9
76      readlicense     perl=76
65      dictionaries    perl=65
25      ooo_custom_images php=25
21      res             sh=21
4       stlport         sh=4
3       instsetoo_native sh=3
2       offapi          sed=2
0       DocumentProperties (none)
0       MathMLDTD       (none)
0       apache-java     (none)
0       apache_java     (none)
0       api             (none)
0       aspell          (none)
0       beanshell       (none)
0       berkeleydb      (none)
0       bitstream_vera_fonts (none)
0       boost           (none)
0       boot            (none)
0       curl            (none)
0       default_images  (none)
0       dlcompat        (none)
0       epm             (none)
0       expat           (none)
0       ext_log4j       (none)
0       extras          (none)
0       freetype        (none)
0       hsqldb          (none)
0       icu             (none)
0       instsetoo       (none)
0       jpeg            (none)
0       libwpd          (none)
0       libxml2         (none)
0       libxmlsec       (none)
0       lingu           (none)
0       mdbtools        (none)
0       moz             (none)
0       msfontextract   (none)
0       nas             (none)
0       neon            (none)
0       netbeans_integration (none)
0       np_sdk          (none)
0       offmgr          (none)
0       offuh           (none)
0       portaudio       (none)
0       pspell          (none)
0       psprint_config  (none)
0       python          (none)
0       readlicense_oo  (none)
0       rhino           (none)
0       rvpapi          (none)
0       sablot          (none)
0       sndfile         (none)
0       so_berkeleydb   (none)
0       top_dir         (none)
0       udkapi          (none)
0       unoil           (none)
0       xalan           (none)
0       xmlwww          (none)
0       zlib            (none)


Totals grouped by language (dominant language first):
cpp:        4630794 (88.89%)
java:        361396 (6.94%)
ansic:       130206 (2.50%)
perl:         50774 (0.97%)
sh:           11556 (0.22%)
yacc:          6916 (0.13%)
cs:            5744 (0.11%)
python:        3267 (0.06%)
lex:           2460 (0.05%)
asm:           2045 (0.04%)
objc:          1741 (0.03%)
awk:            885 (0.02%)
lisp:           798 (0.02%)
pascal:         397 (0.01%)
csh:            272 (0.01%)
php:            104 (0.00%)
sed:             40 (0.00%)




Total Physical Source Lines of Code (SLOC)                = 5,209,395
Development Effort Estimate, Person-Years (Person-Months) = 1,598.29 (19,179.53)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 8.84 (106.03)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 180.89
Total Estimated Cost to Develop                           = $ 215,907,773
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount is Open Source Software/Free Software, licensed under the FSF GPL.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'.


2005-10-27

Idly browsing

I tend to give GNUStep a try now and then -- not because I'm not quite happy with KDE (although I seem to remember that alt-up moved to the parent directory in our file dialog before 3.5, or am I mistaken?) -- but because I've always wanted a NextStep machine and never could afford one. It's kind of misplaced, but there you are. And GNUStep is coming along quite nicely, not so much of the "we are not a desktop environment, we are a cross-platform development environment that allows you to create apps that only work together well in their own desktop environment that you're not gonna get" anymore, but it's nowhere near polished or even usable yet.

But that's not important: what is important is Riccardo's blog, the Art is Long. Because the GNUStep guys aren't constantly pushed to make something that's more like Windows, more like OS X (okay, there's some of that, but not too much, I feel), more like Gnome or more like KDE, they have some leasure time to look around.

So, and that's the point: Riccardo pointed me at a lecture by Alan Kay [ part 1 ] part 2 ] that was pretty mind boggling. From Doug Engelbart who had a cooperative office suite where two people, each with their own mouse pointer ("bug" he called them) are working on the same document, miles apart, with a live video link in a corner of the screen, to eleven year old kids who write a ham radio circuit design app, to the slightly tubby woman who learns to play tennis in twenty minutes.

And all along really good advise about designing software and computers for users.


2005-10-18

Reading skills...

No, apidocs writing is not less interesting, I never said that. I like writing api documentation, but I start with it. It's part of the design phase. I like it. Unfortunately as code changes, the documentation doesn't change automatically. And since a simple code change can hit many classes, Adriaan will have many reasons to get angry because writing documentation while coding breaks the flow. And breaking the flow is bad.

And Benjamin -- I work on KMyBigApp and am not interested in working on kdelibs; in fact I promised myself I never would. Not because of any lack of professionalism, of which I have oodles, but because I believe that KMyBigApps are quite essential. It's after all why the library exists.

Anyway api documentation and unittests are not the same thing; and while I haven't figured out how to write unittests for classes in a six year old application that's had four maintainers and where everything depends on everything, I'm at least working on un-tangling the knot so I can start making unittests for new classes.

In bullet points:

  • Unittests are the single biggest improvement to a development process you can introduce.
  • Apidox are part of the specification of a class and are written before the code is written.
  • Our tools should help us keep the documentation up to date, not badgering, nagging or annoying developers who may some ting better to do at any given moment.
  • Talking about apidox and unittests in the same breath is silly. They are different things, as anyone knows who has seem hundreds of unit-tests for uncommented classes and reams of javadoc for untested libraries.
  • It's not pleasing to a tidy mind, but even tidy minds have to accept that work in progress means that there may be temporary breakage.

Apidox

Adriaan de Groot writes about apidox and defect reports -- not that I think the two have much to do with each other: unittests and defect rates, yes, and swiss finishing schools and quality of defect reports, there's a causal connection, definitely. But that's not important: what's important is that the api documentation is never going to be complete, perfect or even moderately useful.

And this is why: a reasonable hacker will write his code, and never document the API -- and his code will work. A decent hacker will come back and document the API even when not paid for it. An good hacker will write the API documentation first, and then start coding. (A truly excellent hacker will write the API documentation first, then the unit test and only then the code. But he's on the job full-time.)

But what happens then: the specification phase over, the dox are written, the header file looks fine. Time for the code to be written. And that means stuff changes. Code is plastic -- not rigid. But there's no automated system in KDevelop to update the parameter list in the apidox and there's no way someone who's in the flow is even able to break his concentration to update the documentation by hand. It's not a matter of resources, it's a matter of doing something that belongs to a different part of the brain, that's a different activity. Coding is not the same thing is writing prose; any suggestion that people should learn to see these activities as the same thing is ridiculous. Brains don't work that way.

(And keep in mind: doing A needs B as a prerequisite, which needs C, which needs D, which needs the rest of the alphabet: all the while the code for A is unfinished and quite probably breaks the apidox, which doesn't matter at all as long as the application isn't broken.)

And afterwards, when the flow stops and there's time to reflect, there's something else that needs attention now -- people yelling for a feature, yelling about a bug, yelling because something needs to be done. There isn't even time in an average day to check whether the apidox are broken: there's not even time enough to answer all koffice-related mail in a day.

And then, yes, I'm sorry to say, apidox don't count. There's stuff that's more important. And between a working feature that helps someone do his work with my application and a polished API documentation for an unfinished and as yet unused class file -- even if the dox will prevent my name from being bandied about... I'll choose the feature and bear the scorn.

Features cannot be synthesized by users, bugs cannot be solved by users, but developers can read the source and divine the meaning of a class -- even if that's a horrible prospect and should be the last resort.

In short: forcing folks to fix the apidox by badgering them with channel-polluting irc bots won't work. What will work is fix KDevelop to automatically write and update the apidox during code in an efficient, unobtrusive matter. Whoever cares about apidox -- fire up your editor and start coding!


2005-10-14

American Gods

Neil Gaiman

Buy this book at Amazon

Oh dear... Someone has been reading Frazer's Golden Bough again, And where Wrede and Stevermer's The Grand Tour is fun with dark edges, American Gods is weirdness with leaden edges.

It's the kind of book you open, and then suddenly find that you've read sixty, maybe a hundred pages without the text leaving much of an impression. Fluent wordwooze, was my impression. And then it starts to get seriously weird and complicated.

Not to mention philosophical, but you need to bring a lot more than rehashed nineteenth century scholarly superstitions to faze me (fortunately the book has a happy ending, even if the bit just before the ending is just as unsatisfying as the ending to Cryptonomicon.) But I'm not impressed by a comparison between a television and an altar. That's been done before, on Dutch television, too, or so I am told, not having one of the machines myself.

But in the end, a well-constructed story with some very interesting people in it -- it's just that I wish that these books would have an ending that was as good as the middle.


2005-10-12

KOffice 1.4.2

Well, I've learned a lot, being the release dude for the KOffice 1.4.2 release. I think that I've dropped every ball I could possibly drop, but we got the release out in the end. And I know better what to do for the 1.5 release that's for end of January 2006.

However, what during this release became clearer than ever is that we need to find a way to thoroughly do a functionality test of all of KOffice before releasing. Now we release without even having tested the most basic functionality, just kind of hoping it will work because it worked in the previous release.

Which doesn't meant that this isn't the best KOffice release ever, especially Karbon and KWord are now much better and much more stable.

However, it means, of course, that Carsten Lohrke found a crash in Krita within 24 hours of the release... Aargh!


2005-10-08

Ridiculous

Today, trains got delayed and rerouted around Amsterdam because some silly person spotted someone with wires hanging about and around their backpack.... As if, in this iPod era, wires are a surefire sign of a bomb.

I mean... I don't want to go all Schneier, haven't got the credentials, but it's almost like this story, that has been blogged about enough.

Look, there are plenty of ways, I'm sure, although I deny any active or direct knowledge and wouldn't be able to make a bomb to save the world from certain doom, but it's just hacking, anyway -- if I were to make a bomb, it wouldn't involve wires. Wires are so -- fifties James Bond, you know.

By the way, in the discussions in Parliament about the national ID, we were told that it was a great success: many tens of thousands of fines have been collected for the serious offense of not carrying your ID -- something that became only an offense January 1st, 2005.

However, nowhere have I been able to find an answer to the really important question: how many terrorists have been arrested because of the national ID -- nor answers to the secondary question, how many ordinary criminals have been arrested because of same. The first was ostentatiously the goal of the national ID, the second was advertised as a nice side-effect.

But everyone who is asked for his ID who isn't a terrorist or a criminal is a false positive, like an email that's flagged as spam when it isn't, and everyone who's fined is like an email that gets the "respond to this challenge then I'll know you're real" response, sort of like. So, what's the success rate? How many terrorists got caught? More importantly, would SpamAssassin have caught on with the success rate of this measure?

By the sidewalk, how many people think the data traffic retention law that's being pushed because we need that data to catch terrorists, is actually motivated and intended to catch music and movie swappers?


Many years ago

Trolltech favoured me with a t-shirt as a token of appreciation for the articles on Qt I used to write, like Visual Development with Qt 3.0 and a baker's dozen other articles on Qt and PyQt. Did give me a little the feeling I wasn't an objective journalist, but a shill who took presents for positive articles -- but then, I never intended to be an objective journalist, just an enthusiast who tried to tell people about the stuff he got excited about.

But although it was a veyr nice t-shirt, and though I'm though not all that stout, really, I'm not quite medium-sized. It never fit me.

Anyway, years passed by and my eldest daughter, Naomi, grew up to like black and to prefer to wear things that her peers in the grammar school she went to this year haven't seen before. I lost a t-shirt, but it Trolltech has gained a grass-roots supporter:


2005-10-05

Lovely feature!

I just discovered that Kicker has a lovely new feature in 3.5. I always have a menubar-on-top with pager, systray, bookmarks and clock configuration, which goes well with an auto-hiding panel with some icons, taskbar and trashcan at the bottom.

However, until now, this arrangement made it quite hard to do something near the bottom of the screen, because up would the autohiding kicker pop whenever I wanted to grab the bottom of a window or click on XEmacs command line. Not handy.

Something close to this feature already was available in KDE 3.4, but there it wasn't usable with an autohiding kicker. Take a look at the 3.4 screenshot and spot the essential difference:

Of course, it would be even nicer if I could add two corners, instead of just one. But, well, I have to say that I'm very happy already.


2005-10-04

Er...

Can wifi pcmcia cards actually break? Like, not from actual physical abuse, but with age? I've got a wireless lan at home that used to work pretty well. Six laptops, six wifi pcmcia cards. Four are Lucent Technologies Silver Wavelan cards, two are a different brand. But all of a sudden, the Lucent cards only give us a very intermittent connection.

About as bad as I had in Malaga, in fact -- and this time it's my own fault and I don't know what to do! Are the cards broken? Should the access point be dusted more often? Why do three out of six cards exhibit the broken behavior, but two others never?

Hardware, I'll never understand it. Especially when it works with funny invisible waves.


About KWord

(I'd post a comment to Anders' blog, only his blogging software doesn't allow me to login. I believe it's a known problem with Drupal -- I never can login on www.kdedevelopers.org either.)

It's true -- the tables implementation in KWord is completely and fundamentally broken. There are other bits of fundamental brokenness in KWord, too. Little bits of the frames and text engine implementation.

Invite Thomas Zander for dinner and a beer, and you'll learn all about it. Bad, I know. Good news is, it's certainly fixable. The bad news is, nobody currently has the time to do that. Fixing the table implementation is a job that would take a few weeks or a month of connected hacking time. There's only so much that can be done in the wee hours between putting the kids to bed and turning oneself in for the eight hours that are so essential to keep the bloom of youth on ones face.

On the other hand, when I had the occasion to write a couple of big, complex KWord documents the other week, KWord did crash about four times a day when writing the first document. About six bug reports later, I had apparently provoked David too much. The next day, most crashes were fixed and the second document didn't pose any problems.

Except when trying to load a KWord OpenDocument document into OpenOffice: there I ran into an infamous OpenOffice bug: OpenOffice cannot load OpenDocument bulleted lists. Yes, that's an OpenOffice problem, not a KWord problem. See this bug: http://www.openoffice.org/issues/show_bug.cgi?id=52127. In short: when OpenDocument doc exchange between KOffice and OpenOffice fails, don't blithely assume it's our fault -- it may be the big guys' fault, too.

Although there's plenty to do for us, too.

And in, fact, there's plenty being done. The next KOffice release, 1.4.2, which I hope to finally create tomorrow, will include a lot of OpenDocument fixes, and the 1.5.0 release, slated for end of January, which was going to be just a Krita and Kexi feature release, is going to include even more OpenDocument fixes. In fact, for many KOffice applications, it's going to be the native file format with 1.5.0.

But all that doesn't help with our poor table feature...


2005-09-22

New Krita .cmg image

I've updated the Krita klik package; the crash on choosing the filter paint tool is gone now, and it should work better on SuSE and other systems. This is probably only a temporary location since it's eating into my data traffic allotment faster than I thought. What I don't understand is why my adsl connection has unlimited data traffic, while the website at xs4all is capped to 5GB/month. No doubt there's a reason for that, but I don't get it.

Update

Again updated the package: it now includes a fix that makes drawing smoother and better. And soon Krita will be really klikkable!


2005-09-21

Klik! Krita.

Together with Kurt Pfeifle, I've been preparing a klik package of a reasonably recent version of Krita. It's yesterday morning's version, and we've already added stuff, fixed bugs and done cleanups -- but this is a version of Krita that includes CMYK support, 16-bit channel support for grayscale, rgb and cmyk, openEXR, zooming histograms (in case you want to have more than 256 bars in your histogram of a 16 bit/channel image), curves widget with histograms, separations and many, many other things that are not in the 1.4.1 release.

If you've installed the basic klik support as per Kurt's instructions, then you can simply download a precomposed klik image of Krita and double-click on the file from Konqueror to run it.

Note: this won't work on all distributions, notably not on Slackware or Fedora. The package was created on Kubuntu Breezy. It may crash on SuSE 10. Or not. If you download this, please, please, please tell me whether it works for you, and if not, give me the output of running it as follows in a shell:

./.zAppRun krita.cmg

(Or was that .zApprun -- no matter, tab-completion will help you here.). I need success stories and I need failure stories. Mail me at: boud@valdyas.org

Now, if Krita does work for you, please be a little careful: this is a development snapshot. Only work on copies of your original images (which is wise anyway, no matter which app you use). If there's something that doesn't work smoothly, doesn't fit your workflow, impedes your progress or misses so badly it makes it impossible to do your work: tell me. Mail me, catch me on #koffice, file a wish. I'm not a photographer, I'm not a designer, and I'm not much of an artist. I need you to tell me how you want to use a pixel image app.

Update:

Thirty-five downloads and three reports later, I can confirm that the klik package works on SuSE 10 RC1 X86_64 and on Gentoo, if you install libIlmImf yourself. Klik doesn't work on SuSE 9.1 at all. (I also saw that people are still downloading the old binary snapshots: I have removed them.)

Updated update:

The package works fine on Debian sid, too. Niko Sams reports that the paint with filters tool is broken at the moment; something that we might not have discovered for quite some time without this way of having people test packages. Also: the performance test plugin can crash Krita, too. That's known :-).

Mandriva,too.

Stefano Pagnotelli reports that the package works fine on Mandriva Linux release 2006.0!

Success on SuSE 9.3

Bruno Windels reports succes on SuSE 9.3. This Klik thing is like magic!

DNS problems with klik

Note that aketon.klik.de has problems. If you want to try this, try to do the following:

wget 134.169.172.48/client/install -O -|sh

To install the klik client that will make it possible to doubleclik on the krita image file. Or you could add 134.169.172.48 klik.atekon.de to your hosts file: that way it'll work as advertised.


2005-09-07

Finally...

I'm starting to feel better -- even did some gentle hacking, yesterday. I'm still as weak as rubber kitten stuffed to the gills with phtalates, though. But I'm regaining some sort of perspective. It feels like Akademy wasn't just a week, but months long to me. Memories are starting to come back.

Like the incredible helpfulness of the organizing team, who took me to the airport to fetch my delayed luggage, called cabs for us and who were in general great. The very nice woman of the kiosk near the hospital, who, when I asked her in my best Spanish for una cerveza, por favor, answered in English and told me she thought I deserved a cold beer. Nice woman. The family restaurants near the residence and the University, where we could just order everything on the first page of the menu and get a delicious assortment of dishes. The kids playing around until late. Gabriel, the waiter at the residence cafe, who could speak English, but refused to do so. I stymied him with my Greek, though! Guy with a definite sense of humour. Some very good talks -- and also a few that made me fall asleep. The small supermarket near the university, which was fun and friendly -- and the whopping great big 3+4 near the residence, which had an entire aisle devoted to sausage. Pity the only thing I wanted at the time was a little yoghurt. The airconditioning didn't do much harm to me; but I discovered that I'm almost completely dependent on having network if I expect there to be network. Deprivation makes me grumpy. Funny thing is, if I expect not to have network, then it's no problem.


2005-09-04

Home again

I'm still sick; I bought a bunch of grapes on Wednesday -- I remember Eric Laffoon remaring how great they looked -- and in the course of the afternoon I started feeling queesy. I went to the residence, tried to eat some dinner, and then I found out I shouldn't have done that. Cue one very feverish Thursday, an incredibly bad Friday (what with getting up at four to catch my plane) and a bed-ridden Saturday. I'm up now, I'm going to try to eat something. A spoonful of yoghurt or something.

Anyway: if people wondered where I had disappeared to on Thursday, now they know.


2005-08-30

Network...

The network at the Akademy is really bad. I feel completely isolated at times. The wifi network has a very small range and near the end of the day when most people are trying to connect their laptops it may be impossible to actually get an ip address from the dhcp server.

I've been at the talks that were most interesting to me personally -- multithreading, async programming and scripting -- Mirko Böhm has done a very cool little lib that will make it actually possible to do task-based programming in C++. The ADK we created at Tryllian has that as an important feature, too.

Multithreading is cool; async programming definitely is. Imagine simulating threading using timers -- on a multi-code chip. Timer-based async programming has no future.

Walking on the Dark Side was also interesting, being as it was about what we should be learning from dot net and things like that. The talks following that one actually dovetailed very neatly. What is needed is a framework that provides object oriented programming in any language -- non-oo languages really are out. I'm now going to try a new approach to scripting Krita that Richard Dale suggested.


2005-08-28

Slides and ogg

The slides and the ogg for my Krita presentation are now available:


Without a drop of coffee!

I can't believe I just did the second presentation I ever did without having drunk a cup of coffee... You can have either coffee or juice at breakfast, and when I arrived at the conference center, the coffee machine was not working. Besides I needed to get the room unlocked -- which I did very nicely by getting a native speaker to speak to the security guard who assured me it was being opened that very moment.

I'm quite sure that I have actually been videotaped, and perhaps even streamed The streaming address is http://stream.fluendo.com/akademy -- but I'm not sure where the streams are archived, so if you go there you will, depending on the time, see another hacker expostulating about his pet project.

The talk went somewhat well, I guess. I may have made an ass of myself, but people came out with useful questions. Note to self: don't forget to add the cheatsheet workflow helper module to Krita. That was a very fun idea.

And then, when I picked up my laptop the dvd-drive slipped out of the case and crashed on the ground. It still apears to work somewhat, but it won't eject properly anymore.

Right... Coffee, blog reading and relaxing until the coffee break, and then another round of talks.

(I also missed the party last night because I didn't want to run the slightest risk of being hungover. There were actually quite a lot of people who didn't go either, and I had a nice chat with the ktts maintainer, Gary Cramblitt, and went to bed quite early. And there were a lot of people at my talk; I was afraid it would be a no-show event because of the Novell-sponsored fesitvities.)


2005-08-27

First day

Well, actually the first day was yesterday, with the E.V. meeting. Gosh, those meetings are long -- I got up at 3AM to get my taxi to Schiphol, only to have my plane being late, which meant I missed my connection in Paris, which meant I was late for the meeting, which meant I missed the first half. But no problem: I got enough EV meeting to last me a year... Nice dinner, by the way, nice conference center, nice acocomodation: those Andalusians do their students well!

We were all enjoined by Kalle to be at the conference center today at 9:00 sharp, because the Andalusian bigwigs were going to welcome us. Turnout was good, and the speeches were nice and short. Actually, these government undeer-secretary types appear to be knowing something about what we're doing and about what they were going to be talking about.

A quick break to get my pink slip... And then back to listening.

The first talk was by someone whose name I missed about the Novell Linux Desktop. Well, it certainly seems a professional desktop, but, well, on the other hand, it goes completely against the grain of Matthias' Ettrich's original vision: have something unified with everything working the same. You don't get that when you run OpenOffice, Evolution, Kopete, Firefox on top of either Gnome or KDE -- and this guys appears to be very much a Gnome user. You still got a couple of toolkits -- OO's own thing, Gtk, Qt and XUL. Integration is improving, and they're doing usability work... But you don't get the integration you'd get with a whole KDE desktop.

He actually says that Kontact doesn't work and Evolution does... Let's hear the next presentation, which should actually have started about ten minutes ago.. It's about Kolab, and I bet they're going to tell us Kontact does work, does integrate with those MS mail server thingy and with Groupwise. Right now, I could do with more coffee. The little cup at breakfast wasn't quite enough!

...

Right, Aaron is now going to intrduce the Kolab talk. And he's promising us this talk is going to prove the previous speaker wrong. Till Adam.

MS Office is replaced by OO, IE by Firefox, but nothing to replace Exchange or Lotus Notes. Both Evo and Kontact support as many backends as possible, but we're never going to be as good as Outlook is at being outlook; playing catch up takes so much time we cannot innovate -- it's really hard to be an exchange client. We need to provide the full stack: client and server -- and to offer painless migration paths. But there much perfect interoperability with Outlook clients.

Kolab gives us: enterprise mail server, scheduling, free-busy management, assigning, managing to-dos, shared mail folders, calendaras, addressbooks, notes, journal, management, multi-localtion and what not.

And Kolab works with apache, cyrus, openLDAP, Postfix, Amavis and Horde (for php apparently, don't know about that...) That means it's a complete Exchange replacement, and unless a company has let itself being ensnared by "special offers, just for you, it's cutting our own throat..." by Microsoft for Exchange, you should move to Kolab. It's not as if you really need to stop using your virus-vector, er, Outlook client on the client if you move to Kolab. There is solid evidence that Kolab works; there are many real-world installations with tens of thousands of seats.

(Ah, I've found the camera. Apparently there are webcasts!)

Kolab is so easy to install nowadays and so complete, you don't need no expensive consultants anymore -- should give that a try. We could use a shared calendar in our family. And in the Krita team. Memo to self: ask speaker to set the Krita developers up as Kolab group on the KDE kolab server. adam@kde.org, if I don't get to the hands-on demo session. We need to share our todo's in a more dynamic way than a wiki page. And I need Kolab at home, if just for the disconnected imap.

Kontact is great! (Even if marking all messages read is ctrl-r in Akregator, alt-r-r in KNode and alt-o-r in KMail components.) It doesn't matter whether you use the kontact shell (I do) ar the companents apart -- they still communicate with dcop. That reminds me -- I need a dcop guru to help me.


2005-08-25

Eeek...

The taxi driver just rang to confirm that I really, really intend to take a taxi at 4 AM to Schiphol to catch my plane to Malaga. My suitcase is packed, my laptop snugly in its bag (I hope there are power points in Paris to recharge it -- it should just about survive on a single battery from Amsterdam to Paris), the 16 bit cmyk, grayscale and XYZ colorspaces are committed to svn, as are some UI improvements, and I'm nervous as hell.

A I said before, I hate traveling. Flying terrifies me, but the constant worry that my tickets won't be in order, my passport vamoosed and all the rest -- and I don't know the language! -- keeps me even more tense, as tense as a bow string.

So, I decided not to take another look at KPresenter (my presentation is fine, but KPresenter refuses to show the text I typed in the font I choose, and keeps bunching glyphs up like they're really friendly and want to make little glyphs when running the presentation, it's unreadable), but watch Erol Flynn as Robin Hood again. The tense-as-a-bowstring motif, get it? (Got it? Good! -- time for the Court Jester with Danny Kaye!) Goodness me, what a glorious movie that is, and what an excellent idea to put an entire Warner's night at the movies on the dvd -- trailer, news, muscial performance, cartoon, feature film.

So... Did I mention I've got a horrible cold, too? I can't believe I don't need to pack cardigans, jumpers, sweaters, coats, long-sleeved woolen underwear, macintoshes and duffels. Rain, sleazy rain and snuffles.