Holidays
Inge Wallin is visiting us with his kids for New Year's Eve. And while we also make trips like taking a ride on a real steam train, we manage to do some hacking on the side. In fact, Inge declares he's being really productive right now:
2007-12-29
Inge Wallin is visiting us with his kids for New Year's Eve. And while we also make trips like taking a ride on a real steam train, we manage to do some hacking on the side. In fact, Inge declares he's being really productive right now:
2007-12-27
First, the sketch I made for this year's seasonal greetings. It's actually our house and our church: the church is downstairs, we live upstairs. I tried to keep to the style of the Dutch painter Anton Pieck. Our part of town looks, especially if there is a little snow, just like his calendar illustrations anyway.
2007-12-23
For the past few years, since I started hacking on Krita in 2003, I have spent nearly all my spare time on Krita and KOffice. In the beginning, I did remember to spare a little time for actually drawing and painting, but quite soon I stopped doing event that. And whenever I picked up my pen, pencil or brush I noticed that what little skill I may have had had detoriated quite a lot.
2007-12-15
Everyone who knows me even slightly, knows that I am not a mathematical genius. I'm very glad that people like Casper Boemann, Cyrille Berger and Emanuele Tamponi or Michael Thaler handle that part of Krita. But it becomes a problem when your eldest daughter has a problem with her maths homework, and you cannot help her.
I've tried reading up on mathematics, and Mathematics for Computer Graphics is exactly the right level for me. But ever since Simon Stevin invented a purely Dutch vocabulary for mathematics in 17th century, it's been very hard to read about maths in English and then explain in Dutch. Especially since the text book Naomi's school uses refuses to talk mathematics, instead offering unexplained shortcuts and "steps to follow".
Enter KAlgebra
With this application we can explore the formulas in her book and discover how they work through experimentation. And for any given solution, we can then work backwards and discover the right steps ourselves. It's a very nice, polished application. Sure, there are things that could be improved: a floating palette with things like unicode power symbols would be easy, a mode that adds brackets to show the order of evaluation of a formula or a way to generate the steps necessary to solve an formula would make it even more educational. And the crosshairs could have a snap-to-grid mode.
Of course, there's also KMplot. That has the palette with symbols, It turned out to be just a tiny little bit more difficult to get started, The big problem here being that I couldn't choose the plot I needed among the various kinds of plots provided: cartesian, parametric, polar, implicit, explicit. Handling the graph is not as easy as with kalgebra, either.
For application developers, the biggest problem in the past two years has been that we could not develop against released KDE packages. We had to keep up with the joneses: keep checked out qt-copy, kdelibs, kdesupport, kdepimlibs and kdebase, keep them compiled, just to be able to get to a point where we could work on KOffice.
It's unavoidable, of course, and not a big problem for me personally. This dual core X61 61 bits OpenSUSE tablet can compile kdelibs before breakfast (if I start the compile before going to bed). By the way -- with the current kernel, OpenSUSE is incredibly stable. Suspend and resume is as reliable as with my old Pismo Powerbook under OS X -- and faster.
But it makes it really hard to attract new developers, people who'd like to report a bug and are prepared to compile koffice svn just to check whether it's already been fixed. Those are the people who tend to stay around and even help out with development after a while. Asking them to also compile all of kde is often just a bridge too far.
But yesterday night I managed to clean out my installation of all previous attempts, install the OpenSUSE KDE4 rc2 packages and succesfully compile KOffice against them. Yay! We're getting really close to the end of the road, and I'll try to keep developing against released packages only from now on.
It also marks my switch to KDE4 as my default environment. Things work quite well. Oxygen is drop-dead gorgeous, especially after making the window color #CFCFCF. I love all the subtle details. I wish I could have the scrollbars always in the gorgeous green color, instead of only when I hover over them. KWin's effects work great on OpenSUSE. Kickoff has completely won me over: I've added a couple of favourites, and that made all the difference. Dolphin rocks -- I hadn't expected that, I must admit.
Sure, there are irritants: the fish kio slave doesn't seem to work. I get a login prompt, but no directory listing. The panel is a little high, especially on my 1024x768 screen. I cannot get the pager to show up to the right of the K-menu button. Migrating my feed list from akregator3 to akregator4 baffles me. KWrite doesn't word-wrap, but glyph-wrap. There are still lots of glitches and bugs -- but life is very much worth living, and I salivate at the thought of what goodness will be built on top of these foundations.
2007-11-21
And then, all of a sudden, my OpenSUSE installation is acting weirdly. If I try to start krita through the minicli, nothing happens. If I start krita with an url through the minicli, everything is fine and krita starts and loads the image in the url. If I start yast2 through the minicli, the main window pops up -- but when I click on one of the modules, nothing happens. If I go to a shell, or even to a text console, and I start yast2 from the command line -- nothing happens at all. And finally, if I click on single click installation link for KDE4 on the OpenSUSE wiki, nothing happens either.
I'm baffled, baffled as a bathroom geyser.
UpdateApparently, somehow -- and it looks like a kernel bug --, my /tmp directory was full with YaST temporary directories. This morning's kernel upgrade should have fixed that. Yast runs again -- and I can install KDE4 rc1 and see whether KOffice compiles against it.
2007-11-19
So today the Wacom Art Pen arrived -- thanks are due to Cornelius Schumacher, Thorsten Zachmann and Eva Brucherseifer and Axel Jäger who busied themselves with paying, ordering, checking, sending on after a misdelivery! The art pen has a very nice feel on the tablet, a kind of resistance that makes drawing a lot of fun. And there appears to be not a single X11 application that makes use of its rotation feature.
To celebrate the new tablet I have started working again on my Chinese brush simulation. I'm working on the research done by Clara Chan. The Krita version works -- somewhat. The lines the brush bristles draw are not anti-aliased. There is some support for tilt, but not for rotation yet -- which would be quite interesting since rotation of the brush is one the ways to get the right effects when painting in the xiao pin style.
Apart from the cool things we can now develop for the tilt and rotation features there is another thing: the koffice input device architecture goes way beyond what other applications do. In an application like Photoshop or Corel Painter there is only one active tool, no matter which input device you pick up. If you paint freehand with your art pen, and then grab the mouse, click the pan tool, then pick up your art pen again, your art pen pans.
Already with Krita 1.6, you can select the pan tool with your mouse and a paint tool with your stylus. To me, this feels like a very natural style of working. If I paint with real oils, I tend to hold the active brush in my left hand, and in my right hand the palette and a quiver of other brushes of different sizes and with dabs of different colors. If I work with pencil or charcoal, I have a stick of charcoal in one hand and an old cloth in my other hand to soften the lines.
With KOffice 2.0, every input device, even every pen you've got for your wacom has its own tool. So, if you've got an airbrush, a stylus and a mouse, your airbrush can be associated with the freehand tool and the airbrush paintop, your stylus with the freehand tool and the chinese brush paintop and your mouse with the pan tool. And if you've got three styluses, each one can be associated with a certain tool or paintop. Without needing to configure stuff, of course, you can just select tool and paintop by clicking on them. We have already implemented this, but testing with different wacom input devices was a bit hard.
What doesn't work because of an unfortunate but fixable design oversight is having different active colors for different input devices: that would be the ultimate (although expensive) analogy to working with real brushes! (We'll also have to persist the state between sessions, too)
2007-11-08
Gone are the dialog-bound preview widgets of yesteryear! Yesterday I managed to have a live filter preview in Krita for the first time:
As you can see, it's not perfect. There are some artefacts that suggest that I have an off-by-something error somewhere...
The idea is to have user-definable, draggable area that's filtered by the filter and settings currently selected in the non-modal dialog box you see top-right, automatically updated some time after you made your last change to the settings. Then, when you're satisfied you can selected to either create a live filter mask (which can have any shape, of course), or destructively filter the current layer, which takes into account the selection (of course).
The draggable and resizable part will probably only be done for 2.1; right now I'm already quite deliriously happy that we've gotten this far.
It's been a long slog getting this far: I had hoped to be done in May, but real life (like buying and renovating an old house and getting a new job) interfered. Not to mention bugs, design errors resulting in two redesigns and the occasional priority shift because we needed to refactor selections, redisplay code, the filter api and other stuff just to get here.
But what we've achieved now is pretty cool, even with all the bugs:
We've got a layer stack that can contain paint layers (with a fixed, i.e., dried, and a changeable, i.e, wet, part), group layers, adjustment layers (that act as a filter foil on top of a stack of layers), copy layers (that copy the result of another layer to a new place in the layer tree) or Flake object layers.
All these layers can contain a stack of masks: selections (containing both vector shapes and per-pixel selectedness) that you can paint on and that can control transparency, apply transformations (like rotation or moving), apply any filter or simply indentify selectedness of pixels for a particular layer.
2007-11-05
On Friday I noticed a problem with my Kubuntu installation on my Thinkpad X61 Tablet. Now only would the wireless driver regular drop dead (and then iwconfig would aver that no network device had any wireless extensions), it would also try to take 100% CPU, leaving little for my compilation processes.
On Saturday, I received the latest issue of Linux Magazine which came with an OpenSUSE 10.3 dvd. Taking this as a omen, I decided to install it on my laptop, together with a fresh Kubuntu partition and a Project Indiana OpenSolaris partition.
I've been using SuSE since version 5.0, and I'm still running 10.2 on my server. I couldn't keep my server up without Yast, which I find great for system administration. But it's been a few years since I last used SuSE, SUSE or suse on my desktop.
Some things are good, nay great: the 64 bit version is very fast. Yast is still great for system administration. Plugging in my laser printer or my digital camera pops up a helpful printer installation dialog or digikam. Not so with Kubuntu. The fonts somehow are much nicer, much smoother, especially after disabling manually all hinting. And the Intel graphics driver does work with Krita 2.0, which didn't work with Kubuntu. Wireless networking doesn't drop dead anymore.
On the bad side, and this is very bad, my expensive tablet screen doesn't work. And I cannot figure out how to fix that. The XEmacs packages with OpenSUSE is a beta and crashes on the kde-emacs scripts. No suspend-to-ram on lid close that I can figure out. And, really, the package management system is awful. Dependency resolution simply does not work out nine times out of ten. It's still incredibly slow, although much faster than 10.2. Whether I use apt4rpm, zypper or yast doesn't matter: just remove a single package can take minutes. I'm not an expert, so there may be something great about rpm that I don't see? I just want deb, dpkg and apt-get and be productive. None of the myriad non-deb package systems are worth it.
Still, it works, it's fast and I can develop again. After I've compiled XEmacs from scratch.
And so are the three stooges. I have been wondering what Microsoft would try after having failed buying a fast-track standardization of OfficeOpen XML (and I've been wondering why nobody has sued Microsoft for break of trademark for that name). It's getting clearer: in the past few days all over the it-related web stories have started sprouting that spread the meme that ODF supporters are leaving the sinking ship, that ODF isn't a good enough standard for all document needs now and in the future and that since we'll need to interoperate with OOXML anyway, why not have it standardized. All backed up by statements from siome ODF Foundation spokesperson. But while ODF Foundation has a very grand sounding name, it's just two or three crackpots who failed to make money out of ODF and are now trying to make money out of something else.
But even though I'm not a conspiracy nut, I do think I'm detecting a pattern here. If you cannot convince people your standard is good enough, try to convince them other standard sucks, too.
And for anyone wondering what exactly is wrong with OOXML (apart from the problem that even Microsoft doesn't implement it in its own office applications), please look at the Eooxml Objections Clearinghouse.
2007-10-30
One thing, about the only thin Vista did better than Kubuntu was handwriting recognition. Not anymore - we've got Cellwriter now! It works just as well on my tablet as the Vista applet. Even so, if you can type, typing is much less of a hassle, trust me on this! Part of the problem is the lack of in place editing. But cellwriter definitely should be part of Kubuntu and it should be on by default in kdm when a wacom pad detected.
2007-10-18
The power supply of my ten year old hub started smoking. My 3com wireless router was already flaky -- it tended to go meekly out of the way when more modern, more powerful wireless routers came onto the air.
So, now I'm the proud owner of a Sitecom 54g turbo storage Linux-based wireless router, nas usb server thingy. Comes complete with written offer for the GPL'ed bits. It took ten minutes and a restart of the router (after changing the essid) to be up and running again. It seems hardware has improved since 1995 :-)
Oh, and it says it's a print server, too, for printers connected to a usb port. I wonder how I can get that to work...
2007-10-12
Or cry? Is this great and completely comparable to the way Dutch studios produced mass-market paintings in our Golden Age, or is this so sad that it makes me throw away my brushes, paints art books and krita's code and retire to a remote monastery on mount Athos, away from all bandwidth?
"We have 5 creating artists." Indeed...
2007-10-06
My book on Python and Qt programming -- which has always been plagued by availability problems and a publisher who managed to fail to get it into Amazon -- is finally obsolete: Mark Summerfield's Rapid GUI Programming with Python and Qt has just been published by Prentice Hall. I haven't read it, but I'm quite confident that it'll be an excellent book.
2007-10-04
I try not to be a link tout, but I think that Kyle Wilson's essay is well worth reading -- even if it shouldn't contain anything new to anyone who has ever coded any serious software. Because, yes, software is hard.
(Software is also fun, but trust me: the fun stops when you discover that you've got a rounding bug because someone five years ago inserted a small bit of asm in a pascal-based C++ application to avoid a certain bug. That just sucks. It's been ages since I've had to fight with that kind of nonsense. Dear $DEITY: Qt just makes so much sense.)
2007-09-27
The next Libre Graphics Meeting will be in Wroclaw, in Poland. They've just put their website live: http://www.libregraphicsmeeting.org/2008/. This year's LGM really was my favourite event. So much fun, so productive, exhilarating -- totally essential!
I really hope that from our community not only Krita will be present, but also Karbon and Digikam. And anyone else working on cool graphics applications! And I have to make sure that Krita 2.1 is really done and polished by that time, too.
2007-09-22
For as long as I can remember, articles on scaling images have been accompanied by proofs of prowess by scaled versions of one particular image of a particular lady, apparently called "Lena", either in black & white or in color. A quick google will bring you hundreds of projects that have one or another version in their repositories. Who started using this image? Where did it come from?
At least it's a fairly tasteful image, not like some of the images the first KImageShop developers used to showcase KImageShop. But to keep in with the wider tradition, I've started to use lena to unittest our prescaled canvas projection code. Which code is giving me considerable trouble...
2007-09-18
My new job means using Windows, and that means a laptop with Windows on it. And since I didn't have a linux development machine anymore until yesterday, I tried to compile KOffice on Windows. I managed to compile it all right; running didn't work.
But that's no problem, because Jaroslaw Staniek had me beaten to getting KWord running (albeit without most plugins) and Adrian Page has made Krita run under Windows. In his own words:
Krita's been running on windows for a couple of weeks now, but I never got round to reporting the progress.
So now Krita is truly cross-platform: it runs on X11, OS X and Windows. I hope to get my Linux development system up and running today so I can start fixing the layer/node structure tomorrow & the qpainter redisplay code. To to start making progress again!
2007-09-17
This morning, General Logistics Systems finally delivered my new laptop. Or rather, almost didn't deliver it. A bit of street in front of the house was broken up and the driver obviously didn't want to walk the thirty or so meters with a smallish package. So he'd written up the Addressee Not At Home slip and slipped it into our letterbox. Well, we were just as obviously at home so I contacted GLS through their mailform, asking them to phone the driver to go back and deliver the package.
Well -- you can probably imagine my surprise when that actually was what happened: the driver came back, delivered the package all the while loudly expostulating that really, he had rung the bell, obviously we hadn't heard it ring. Yeah, right... The idiomatic Dutch word is smoesjes.
The X61 tablet laptop is pretty spiffy: kubuntu gutsy installed like a dream, after upgrading to todays version sound and wireless worked. Two things aren't working yet: the wired lan connection and resume-after-suspend. The former just doesn't do anything. That's a bit of a problem since my home dir is about 25Gb and it takes a long time to restore over the air. The other issue is weird: the laptop does resume, but I have to go back to an ascii console to get the screen back. I'll investigate some more.
The Gutsy installer is pretty confusing in one area, by the way. I wanted to resize the vista partition (didn't want to delete it -- I want to see how vista does the handwriting recognition, and I want to try Corel Painter), but somehow I confused the old and the new partition and managed to give Vista 80GB instead of Linux. Which meant that my home dir didn't fit, which in turns means reinstallation time...
But twisting the lid and sketching with Krita is really a truly marvellous experience. I'll see about getting rid of the cursor and the fringe benefits (dockers, toolbox) and adding a few shortcuts for stylus-only mode.
2007-09-16
(Btw, illustration art is well worth a palce in anyones akregator.)
2007-09-10
Thorsten Zachmann is the only hacker I know who became more active on becoming a father... KPresenter in KOffice 2.0 is still very far from a Keynote killer, but one thing is working now: animations. Large chunks of the functionality necessary for a presentation application are now generic in KOffice, of course: images, text, shapes. Animation is not quite smooth yet, but we'll get there! (One thing that KOffice is still missing is a "movie" shape. The problem here is that Phonon renders to a widget -- but "making phonon render movies onto a QGraphicsViewItem is on the Phonon todo, and that's more or less exactly what we need, too.)
I'll just let Thorsten explain what's going on:
I spend my last few weeks to bring back animations to kpresenter trunk. The way it was done in kpresenter 1.x was not really nice and as we use flake for all shapes now it had to be done from scratch.
At first I wrote a small test application in Qt4 so that I could find out how to do all the stuff that I wanted to do. David helped me to solve the problem that my X-Server was going to 100% CPU load when doing page effects. The problem looks like the ati driver is really slow on painting pixmaps the size of the screen. The problem is worked around by calling KApplication::kApplication()->syncX(); to make sure to content is really painted before continuing with the program. This problem did not appear with a nvidia card.
I then started to work out the framework for all the effects (page effects/shape animations) in kpresenter. First I finished the page effects. Then I went on to the shape animations. It took some time to figure out what is the best way to integrate it into flake the common base for all koffice applications so that the other applications still work as expected. The way to go was to use a different strategy during the painting of the shapes for animations.
On Sunday I finally managed to put all pieces together and fix some of the bug I had put in :-). So now the base work is done. I also put in a action to create a move appear animation for the selected shapes.
After the base work is now there I will go on to implement all the possible navigations when the animation is running as now only forward(space) works.
And here's a movie, courtesy of Jan Hambrechts:
2007-09-07
Today I got mail from Misco: the laptop that I ordered, and which whas in stock when I ordered it, according to their website, actually won't be delivered for at least two and a half weeks. Zut. What now? I got a work laptop, but that's Windows and besides, it's locked down enough that I cannot connect to my home network or run a life cd. Besides, I'm not supposed to use that for private stuff. I'm pretty well stuck, I guess.
2007-09-06
Nobody will be surprised to learn that I am rather inordinately fond of Qt. Two things happened today to reinforce that prejudice: I had my first encounter with Borland VCL code for a decade, and I demonstrated the 40.000 chips demo to my new colleagues.
Borland VCL is truly a time machine. A return to the nineties. I have no doubt that it offers many possibilities and that it is quite easy to whip up an acceptable gui. But if Trolltech gets flak for adding SIGNAL and SLOT -- how much more flak does Borland deserve for __fast_call and related things?
One requirement OmniTrans has for a more modern development toolkit is that we need to have many tens, maybe even hundreds of thousands, of graphical elements in a single model, including text, vector and raster, and we need to be able to print such a model to an A0 plotter without killing the beast. The Forty-thousand chips model shows that QGraphicsView can perform quite well with a lot of elements (although rotating is a tiny bit slow with all the elements visible at the same time...). Now I only have to hack the demo print routine to print all the elements to A0, scaled so they fit perfectly, at maximum printer resolution. But I trust in Qt! (The elements, btw, should be animated while on screen, anti-aliased, composited with an alpha channel and perfectly aligned.)
And in other news -- I'm installing KDE 4 beta2 on Rebecca's old laptop, a Gateway Solo with 280 mb of memory and a 500 Mhz celeron. This is going to be the first KDE 4-only machine in our house!
2007-09-05
The usb harddisk for backups has arrived. The usb dvd player has arrived. The extra memory has arrived. But my new laptop (a hopefully-spiffy X61 tablet thinkpad), which was in stock with Misco when I ordered it there, is still not even en route -- what's more, the moment I ordered it, the "in stock" note changed into "wait 3 to 10 days for new stock".
Without a new laptop I cannot do any work on KOffice or Krita: the webserver is way too underpowered to even try developing helloworld.c on, let alone a million loc software suite. My Pismo powerbook now makes the most disquieting noise when it's plugged in -- Naomi stumbled over the powerlead and made it crash. I'm struggling to make a backup now, on the aforementioned usb harddisk.
Another thing: I won't be available on IRC much from 8:45 AM to 7:15 PM CET for the foreseeable future. If you need to know something about Krita, don't try IRC, try mailing me personally, or the KImageShop mailing list.
2007-08-31
One thing that Ralph Fiergolla made very clear today in Nijmegen is that the European Commission really would like more experts from the free software community to evaluate research proposals. You don't need a Phd (I haven't got one either), but you do need a certain amount of technical knowledge, a certain amount of experience so you know what things are likely to work and what things aren't -- but if you've been coding for a half a decade or more and have been participating in free software communities for about as long, you might very well be the kind of person the European Commission needs for its evaluation process.
From my own experience I can say that it's a fun thing to do, not extremely well remunerated, but you get to meet really interesting people. The evaluation process itself is really thorough and well-designed, and it's a good thing to have experienced. Sure, there are inconveniences, like having to read about 600 pages of dry prose and doing your real best to really understand the issues and the subject. But what's a little inconvenience in a righteous cause? And you have to read up on the relevant EU documents, too, which is a bit of work. Perhaps track the rss feed too.
But if you think you have the right stuff in you, why not go to Cordis website, and check it out, and maybe even register as an expert? The KDE community really is full of excellence -- let's make sure that the wider world benefits from that, too.
Today was my last day at Tryllian, and since my boss had given me the day off I was free to go to Nijmegen, where we had the inaugural meeting of the KDE Research Working Group. As a special guest we had Ralph Fiergolla from the European Commission's FP7 directorate. Sebastian and Adriaan hosted the meeting in the SQO-OSS project room
The meeting was quite productive: we decided on an action plan, came up with a couple of likely proposals, had an enlightening presentation by Ralph about the way the EC funding process works, and afterwards a good discussion on how a loosely-knit community of volunteers like KDE could fit into that. The EC is actively looking for project partners outside the group of "usual suspects", and well, that's where we want to fit in.
Oh -- and Adriaan is dead wrong. There is a place in the Netherlands where you can have truly excellent food for a decent price. In Nijmegen, no less. Indian restaurant Gandhi, Hertogstraat 23. I have never had Indian food that was that good. We had a couple of dishes I hadn't seen before, like lamb pasanda (sweet, with almonds). The spices were exactly right. The texture of the eggplant in the baigan bhajee was amazing: soft with a little bite but nothing of the chalk-on-blackboard squeaking that eggplant often has, while not being overcooked. Completely amazing!
2007-08-30
I fixed sound and wifi on one of the Lenovo 3000 C200 laptops I bought for Menna and Rebecca's birthday. It was a bit fiddly, at one point the sound system made a noise like an angry modem. But everything is fine now, except that the speakers aren't muted if you plug in earphones. Youtube works, planet penguin racer works -- what else can a 12 year old wish for? Krita is installing now.
This is the essential link:
(The Ubuntu wiki is quite difficult to navigate: there's so much stuff that the authoritative pages often don't show up in the first few pages of Google hits.)
I'm pleasantly surprised by the performance of these laptops: they crawl under Vista, but run really smoothly with Kubuntu Feisty and even compilation isn't painful. Next the other 3000 C200, and then I'll try to fix Naomi's old Dell.
2007-08-29
Sometimes I wish we could do without all this tiresome hardware. Of course, I have to do without the hardware I need for hacking on Krita for a while, since I returned my laptop to Tryllian today. Monday will be my first day with Omnitrans.
Still, that gives me time to try to get my daughter's hardware working. Menna and Rebecca are going to get a new laptop each (a Lenovo 300 C200) for their birthday, on Sunday, and I want to make sure it runs Linux before then. And running means sound and wireless network. Which is kinda hard.
Kubuntu apparently installs something called avahi and another something called network manager that insists on inventing IP addresses instead of asking my dhcp server about it. Besides, the wireless adapter is a broadcom, and I need to perform various incantations I haven't needed for years to get it working. And then, on rebooting, nothing works again. The simple Intel sound chip doesn't produce any sound, although the mixer sees it just fine. Silence is golden.
In the meantime, Naomi's laptop -- the last of the famous Dells -- is acting up. Somehow, the pcmcia wifi card no longer works. I guess it's the cradle, because the same card works fine in my ancient Pismo. So I bought a Sitecom USB wifi stick. Modules get loaded, and I've been able to use it using Feisty and Gutsy, though not after rebooting. OpenSuse and Mandriva Spring 2007 don't see it at all.
And worse, for my teenaged Amarok-addict, sound suddenly stopped working completely after I upgraded her laptop from Breezy to any of the four distributions above. Once I managed to make sound work again with Gutsy, through some recompilation of alsa modules -- but as soon as I got the usb wifi stick working, sound stopped working.
I've got a day off tomorrow, and somehow, I already know what I will be doing. And it's not hacking on Krita.
2007-08-27
Is fire engine 26742 doing outside my window? And all those chappies in yellow vests and white helmets? I don't smell fire...
And Krita, it was compiling.
2007-08-26
I know I am person with wide-ranging interests, but how the deuce did Amazon infer that just because I like to read the Church Fathers, I'd also be interested in signal processing? And... Am I interested in signal processing? Image manipulation is special case of signal processing, of course, but I tend to leave that sort of detail to Cyrille Berger and Michael Thaler...
B.S.A. Rempt,
As someone who has purchased or rated books by Saint John Chrysostom, you might like to know that "Fixed-point Signal Processors (Synthesis Lectures on Signal Processing)" will be released on September 7, 2007. You can pre-order yours by following the link below.
Fixed-point Signal Processors (Synthesis Lectures on Signal Processing)
David Anderson
Price: $40.00
Release Date: September 7, 2007
Sincerely,
Amazon.com
2007-08-10
It took many iterations, lots of code, lots of mathematics. But in the end, Emanuele Tamponi has succeeded where others have failed miserably: if you use Krita's new paint mixer to mix colors, you will get green from blue and yellow, purple from blue and red and orange from yellow and red.
This is truly an advance of the state of the art. By comparison, the Corel Painter mixer palette degenerates into ugly brown much faster.. Maybe their mixer is still based on simple cmyk addition, as Bill Baxter suspected. Of course, we still need to do work on the wetness-dryness selection UI, add a color picker functionality, a brush clean button and complex blend loading. There's always more to do.
But... Look at that wonderful green!
Oh -- and let's not forget to mention Paolo Capriotti, who helped Emanuele with some of the mathematics.
2007-07-27
Moving is done, job-hunting is done, conferences are done -- I can start hacking again. And here's where I hack nowadays:
2007-07-21
When you read this, your provider has already received the DNS update for valdyas.org. We not only moved house, but also ip address. We're now living in the town centre of Deventer -- look at the lovely waag, which is just a minute walking from here:
This is what the living room looked like when we bought the house:
And this is before we moved in:
By now we've not only got internet again, but most of books are out of the boxes, too:
And this is what our old living room looked like before
and after the movers took most of the stuff:
Anyway, KOffice is compiling again!
2007-07-14
Emanuele Tamponi (Thrain) has managed to implement Kubelka-Monk color mixing for Krita's mixer palette. This means, simply put, that mixing works like in real life. It uses the reflectancy of pigments to reliably mix color on the computer and get the results you've been taught in primary school.
This is really unique. There is no other software available that does this. Corel Painter doesn't do this. Photoshop doesn't do this. There are some academic experiments that do this -- but it's impossible to get the code or the binaries for that.
Hip hip for Emanuele!
(Pics will follow when I've either compiled Krita (I broke my tree) or have finished moving house, whichever comes first.)
2007-07-13
So, after a foray into Javascript and into PHP I'm back, for a bit, coding Java. A stupid little web application with maybe four data objects and a webservice interface. And I am not liking it. We're using Appfuse (nice community, helpful maintainer -- no quibbles with that) to generate all the boilerplate for us. Generating boilerplate code was a cardinal sin already in 1993 when Visual C++ would clutter your application with its reams of generated MFC boilerplate, and it's still a Bad Thing.
2007-07-12
Next week we're moving house. So valdyas.org will in all probability be down for a week (or more, depending on how fast our ADSL connection is moved), and I will not only be incommunicado, but I also won't be working on Krita.
Which is a pity, because after reading Dan Sawyer's July Linux Journal article on Deep Images, I feel extremely motivated. It's a pity the article isn't available on-line, except for subscribers, but it's very enthusiastic and positive. Indeed, the first word that came to my mind was "panegyric"...
2007-07-04
People said it couldn't be done, but I've made my connection at Heathrow! Of course, my connecting plane is late now.
I hadn't time to blog about it yesterday -- much too busy attending the extremely interesting BOF track -- but, hey! Emanuele Tamponi has checked in his very first version of the color mixing palette. Using Tunde Cockshott's Wet & Sticky code as a guideline, he made sure that when you mix blue with yellow you get, indeed, green. Likewise red and blue gives purple!
I'm on my way home now, in Glasgow's airport. Yes, it still smells of fire in places. The security checks took much less time than I'd thought, though, so I could conceivable have attended the first track of today's BoF sessions and still been in time. And wifi at aKademy might be patchy, but it is free. Here, I'm paying 4 or 5 pound per hour.
Looking bad, I'm so glad I went. I finally met with Bart Coppens and Emanuele Tamponi in person. I had a lot of fun, learned that we did the right thing in our use of Interview in the Krita layerbox and how to handle gdb in Emacs. Great stuff, great people -- many new faces, which I think is great, too.
2007-07-02
My bag is back! I've got my bag back! Not that I didn't look spruce and suave and everything I should have looked at the Lord Provost reception in the town hall tonight -- being clad from toe to crown, from outer crust to inner underwear in Burton's best -- but I'm glad to have my pocket knife, my good shoes and everything back.
Today was the e.V. meeting, an exercise in unavoidable tediousness. And when there's finally something rivetting happening, I can't blog about it, because it's e.V. stuff!
I learned in response to our Krita donation drive on the Dot, people have donated more than 700 euros already! We're getting really close to the point where we want to be -- two small tablets with the assorted tools. You can still donate:
We need this hardware not just because it's cool: it's simply impossible for us to support all the features that artists need without being able to test them and verify them -- so at least two Krita developers need an Intuos with the right tools!
Still no luggage -- I went out to Burton's yesterday and bought new shirts, trouser, jacket, underwear, socks and shoes. Also proper shampoo. So I'm once again the spruce and natty hacker that I always strive to be.
2007-06-29
Well, I was already afraid I was going to miss my connecting flight, which I did, too. So three hours later than planned, I'm in Glasgow, in my hotel, the . It looks like a nice place: the room is small, the chair could be more solid and the shower hotter, but I've also got: a computer, internet (wired and wireless, au choix), tea, watercooker, cookies, iron, ironing board, hair dryer, television, dvd player and a very, very friendly host.
Time to go out for dinner now, buy a bottle of something for tonight and work on my presentation!
On my way to Glasgow, I'm already a bit stranded at Schiphol. Enormous queues, the flight that should have departed from our gate is delayed, too. Still, there's one hour a week free internet at KPN hotspots because I've got an XS4ALL account, and I can work on my Flake presentation.
2007-06-19
Last week I was almost completely absent and incommunicado. But it was for a good cause: I was invited to Brussels by the European Commission to evaluate project proposals for the Framework Programme 7, strategic objective 4.2 "Intelligent Content and Semantics".
2007-05-24
About two years ago, Adrian Page added OpenGL support to Krita. The idea was that soon we would be able to use GLSL shader programs to modify the display of, for instance HDR images. Dynamically setting the exposure. Or for painterly images, bumpmap the canvas to provide the illusion of lighting and depth. Well... This week he did it: on both NVidia and ATI cards, Krita can execute GLSL shaders in the display stack. If you have a supported card and move the exposure slider, the exposure changes while sliding:
At the same time, Casper Boemann has completed two items from our 2.0 todo list, namely printing using the image resolution and redesigning the scale image dialog to take resolution into account:
As for me... I've been working really hard on stuff that I cannot ksnapshot yet. I've added effect masks to krita: layer masks associated with filters or another operation, like transforms. These masks can be stacked, so you can non-destructively blur, sharpen, rotate, and hide pixels in your layer. I've added a new layer type, too, the Clone Layer that clones another layer. Either the original pixels or the pixels as effected by the original layer's effect masks. You can move the clone layer, apply other effect masks and every time you change the original layer's pixels, the clone layer will follow. But all I've done is just in the krita core; I need to add the user interface to be able to show off.
Oh, by the way, Marijn Kruisselbrink is using Qt 4.2's addApplicationFont method to load the musical notation font for his music notation google summer of code shape plugin. He's also working on improving the engraving. There are two tools now to edit the music: one for editing the parts, and one for editing the notes. What's really needed at the moment is line ends and frame continuations, but no doubt that'll be implemented. I mean... The Summer of Code hasn't started yet, officially, has it? Plenty of time to do implement this little thing.
2007-05-20
Last weekend we implemented the basic infrastructure for loading ODF into KOffice 2.0. And this week, Jan Hambrecht (who now has a blog that's in clee's queue for adding to the planet) has been working steadily on making shapes load from ODF. I mean, like:
SVN commit 665978 by jaham: loading of ellipse shape SVN commit 665983 by jaham: loading of the circle radius attribute SVN commit 666027 by jaham: implemented loading of line, polyline and polygon from odf SVN commit 666042 by jaham: move svgpathparser into flake so i can use it there to load pathes from odf SVN commit 666096 by jaham: implemneted loading path data using the KoSvgPathParser SVN commit 666382 by jaham: loading of enhanced path shapes from odf
And so on, and so on. Very soon my unittests will actually not fail anymore!
2007-05-11
So here I am... For the first time of my life in Berlin. First impressions are good! I arrived last night for the KOffice OpenDocument Hack Weekend. A little early, but that way my train fare was cut in half. I was collected at the railway station by dipesh (Sebastian Sauer) who is much younger than I had imagined. We went to the Motel One and had dinner afterwards in a small restaurant near the hotel.
Really nice place, Good food, nice people and incredibly cheap -- twenty euros for dinner for two, including drinks. On the other hand, smoking in restaurants still abounds. I was so happy in Canada where smoking in restaurants is already banned. Imagine... For the first time in a decade I could go out to a bar, enjoy the life music, the beer and the company and not come home spitting my lungs out coughing.
Since Motel One is a bit of weird place and very, very busy, I chose to forego breakfast at the hotel and wandered into the same street, the Oranienstrasse, as yesterday night's restaurant to find a bäckerei. Lucky me... A lovely croissant, good coffee and a huge glass of fresh orange juice for about two euro's. I bet the hotel couldn't have competed.
This morning I'm going to meet dipesh again and see a bit of Berlin. Then, in the afternoon, we'll meet up with the rest of the KOffice crew, register once again at the Motel One, have dinner and start hacking. I hear that David Faure's OpenDocument introductory presentation is already two dozen slides...
2007-05-08
Well, yesterday we wrapped up the 2007 Libre Graphics Meeting. As you've no doubt gathered, it's been a blast. I really feel I've got inspiration and energy for another year of hacking from this meeting. The organizations has been excellent, the venue outstanding, the participation great (250 attendants!) -- thanks Louis!
For Krita, this will mean renewed energy, increased development, better awareness of the requirements of users, and more confidence in ourselves. For the free graphics world as a whole it's been, I think, the same. After Louis' final speech people kept saying how great it was. There will definitely be another LGM!
Where? We don't know yet. Amsterdam has been requested (but I am not organizing it! I want to get Krita 2.0 out before LGM 2008.), as has Poland. Somewhere in Europe seems likely. There has been a great attendance from the Americas, but I think Europeans were still in a majority. Besides, it's Europe's turn again.
Last night we would have gone out with ace panorama photographer Yuval Levy and Pablo D'Angelo, but I was too tired to get the thing decently fixed. And when I woke up (I fell asleep on my hotel bed almost as soon as I'd got there after the closing ceremony) -- and on waking up I just went with the flow. I was even too tired to realize that I had a) a telephone on my room and b) Yuval's business card with his telephone number. I need to get used to this business card thing!
Instead we sort of joined Keith Packard (Intel jumped into the breach when sponsorship failed and sponsored the LGM, making it possible), Liam Quin and a crowd of other LGM attendees. We went to "Le Taj" (if I remember correctly -- I was really tired), a high quality Indian restaurant. Those chickpeas -- to die for! Intel paid the tab -- thanks! -- and we had a great and instructive evening. It may seem silly, fifteen geeks at a table, but it was, I feel, really useful. Lots of knowledge gets spread, lots of insight is gained by lesser geeks like me.
On Sunday, Pablo D'Angelo, lead developer and maintainer of Hugin presented his application to the LGM crowd. Cool stuff in itself, but the really cool thing was this:
Pablo proposes to develop a database that would contain characteristics for lenses like distortion and vignetting. Every lens is subject to those problems, and they are specific for specific types of lens. There's even a commercial company that sells a database with this information for lots of money, and there used to be a free database, too, but that was taken proprietary.
Together with that database would come a small library that applications like Digikam, Gimp or Krita could use to fix distortion, vignetting and chromatic aberration -- based on the lens used for the input image. Applications could do that at the import stage, or, in the case of Krita, as an adjustment layer or effect mask.
Hugin, because it uses large numbers of shots and analyzes them, can provide the necessary information. There would then be a web app for photographers to upload the data, which could get checked and coordinated by volunteers.
Pablo is going to get this jumpstarted real soon now by getting the CREATE community involved. And as soon as we've got a prototype, Krita will add support. This is exciting stuff!
2007-05-06
On Friday night there was a Grand Gala Dinner for all attendants. I got introduced to someone who was really, really complimentary about Krita, telling us that he thought our colour handling was much, much more logical and useful than even Photoshop's color handling. Like, wow! Lots more compliments ensued :-)
On Saturday, Cyrille and I gave our Krita talk (download the slides in ODF format). Right afterwards Cyrille presented his talk on OpenRaster.
The Krita talk went really, really well. I was almost mobbed by people wanting to talk to me after the presentation and all through the afternoon people came up to me to tell me they really liked our style of presentation, that they thought it was one of the best presentations they'd been at. And, did I have a business card for them? I should have asked the KDE promo team for a set -- and I'll be sure to do that when I get home.
During the talk someone asked me whether I intended to make Krita compete with Corel Painter. Dramatic silence... Then I said "Yes!" To which he said "Good!". It turns out his wife illustrates children's books with Corel Painter. She uses an older version -- 5.5, if I remember correctly, because newer versions are too slow for here 600dpi drawings. Seems like we've got a new hard requirement for Krita! And then someone else jogged my sleeve and told me he'd been a Corel Painter developer a few years ago -- and if I had any questions, I should be sure mail him about it.
The OpenRaster talk was great. It provided the catalyst for a great round-table discussion with all the experts present. From people who could provide input on the xml style we use to people who are really hot on color and color requirements. There are a couple of people I really. I feel outnumbered a bit compared to the large Scribus, Inkscape and Gimp teams, so Bart, Casper, Sven, Adrian, Emanuele and Jan really should have come! And then Clarence Dang for Kolourpaint, Gilles Caullier for Digikam (so he could have fight^Wdiscussion with Hubert Figueire on the best way to (ab)use dcraw) and especially Zack Rusin for general graphic goodness! I really suspect that this conference will rival and outclass siggraph in a few years, the level of energy, commitment and just plain expert knowledge is really great.
One thing I especiallylike about the atmosphere of this conference is the open-mindedness of the people around, users and developers. I'm loving meeting the Gimp people, the inkscape people, the scribus people. I've had a great talk with Peter Sikking, the Gimp usability guru. I've been going out for dinner & a beer with a group of panorama enthusiasts -- one of them took not only a panorama shoot of the restaurant table, but also of the beer glasses in the bar! (Yummy beer and interesting beer, and live music.)
Of course, there are also moments that tie in tightly with Aaron's blog. Jakub Steiner gave a presentation about photo management and editing with F-Spot and GIMP. Quite interesting to see him work with those applications, but his explanation at the end that free software was simply not ready for a 16-bit workflow so we had to make do with the 8-bit limitations of Gimp, Ufraw and F-Spot was a bit, well, parochial-minded. After all, with Digikam and Krita, you can go 16 bit from your original RAW image to the finished artwork without any trouble. Pity, but we'll overcome that.
2007-05-04
A couple of years ago, someone, I think it was Alan Horkan, pointed me at the Inkscape project as an example of a project that just functioned very well. I subscribed to their mailing lists and started watching them to see what made their project tick.
Today Bryce Harrington gave a talk on Inkscape the App and Inkscape the Project. The app is way cool, of course, although I'm rooting for Jan Hambrechts and Karbon. The parts of Bryce's talk on project organization really resonated with me. The things I came up with myself that I consider important for Krita and the things I picked up from watching their project were made explicit:
Krita must be fun to work on: that's really important. Users don't count as much as contributors. As soon as a user contributes -- by creating patches, documents, suggestions, testing betas -- they become contributors.
To seduce people to become contributors there must be a place for them to scratch their itch. That's why Krita, despite its core goal of becoming an application for creating original art, will always have a lot of extra features -- things that were fun to create and useful to our users.
Right, now Peter Linnell starting to talk about Scribus.
At the LGM, we've just had Peter Sikking and Kamila Giedrojć talk about Gimp usability -- really energizing and interesting. Because, yes while, there is overlap between Gimp and Krita, it's also clear that both projects have quite different core goals. To see those core goals stated clearly is very helpful. And although there is a clear difference, some of the problems facing the Gimp are very familiar in Krita. We had a good laugh yesterday comparing the user demands for mdi/sdi/apple-like interfaces for Krita and Gimp: but there are others, like organizing the user interface for use of dynamic effects or presenting often-used colors for a particular document to the user. I want to hack now!
We've also -- briefly -- met Louis Suarez-Potts. In some respects, Louis, who represents both OpenDocument and OpenOffice, is thinking along the same lines as I do: extending OpenDocument beyond pure, plain and traditional office documents into the creative realm. Music, raster images and video are interesting areas. Of course, innovation and cast-in-stone standards are hard to combine. But flexible standards that urge developers to use those standards as a basis to create innovations on top off are quite possible.
He invited me to an OpenDocument do in September. Not sure whether I'll be able to go, but we'll see... It should be interesting.
Our lunch was nice -- although I fear that the idea that you need spiced corn-syrup for grilling meat is not really an original part of Vietnamese cuisine -- but tonights dinner is better. And a lot simpler. I need to work on our presentation tonight so I tried to find a supermarket to buy some food I could take to my room.
The first supermarket I found was the Couche-Tard. The only thing they sell that I don't consider actively evil is bottled water... But a bit further on was the Marche du Village where they have real food. Bread, sausage, cheese and beer. And the beer is unbelievably good: La Barberie Rousse Bitter. Even from a plastic cup, as good or better than the St. Peters beer I can no longer get in the Netherlands. And not too strong, so i can still work on the Krita LGM 2007 presentation.
2007-05-03
Cyrille and me arrived at the LGM yesterday. We met Nicholas Spalinger on the shuttle bus to the student residences and teamed up to find dinner. Montreal does give a the kind of culture shock I recognize from Jennifer Meyer's blog, only the other way around. Simply crossing the streets when there are traffic lights for cars but not pedestrians is already quite complicated. Today in the Vietnamese restaurant the waitress was nice enough to allow me the use of her calculator to find out how much we needed to add to the bill for service. And I'm in terminal linguistic confusion, in the francophone part of Canada. Plus, I couldn't figure out how to operate the water tap in the student hotel.
But that's all very well and educating. The real deal is meeting all those people from graphics projects who are, in some cases, just irc nicks for me. Cyrille and I lunched with Dave Crossland and Nicholas and had an animated discussion about free fonts and the toolset needed for that. I have always loved fonts -- even created a few, about a decade ago, with Corel Draw. And a good long talk with Michael Schumacher from the Gimp project at breakfast -- nice to compare notes on user requests for interface changes :-).
2007-05-02
I've just met up with Cyrille Berger at Schiphol Airport. We're going to Montreal for the Libre Graphics Meeting 2007, the successor to Gimpcon.
Over the past few months I've grown really impressed with the way Louis Dujardin and his team have organized the meeting. A beautifully printed insert for an art magazine in Montreal has been produced, among other things.
I'm really looking forward to this meeting. We're going to talk serious OpenRaster with Pippin and other people, showcase Krita 1.x and Krita trunk -- which is progressing very nice nicely thanks to Adrian Page and Emanuele Tamponi and the rest of the team. There will be something to showcase!
2007-04-23
Calum Benson notes that today is the twenty-fifth birthday of the Sinclair ZX Spectrum. That means that I've been coding now for twenty-five years, too. (With only a small gap when I was studying Chinese and only had a boring 8086)
I coded my first little things on the 16K Speccy my mother got loaned from the school where she worked as a teacher -- they had bought one computer and a distance-learning course for all of their staff, and everyone was allowed a few months of the Spectrum. When it had to go, my parents promised to buy a computer of our own if my Easter report was up to scratch. I started reading Sinclair User and other English computer mags in preparation and soon my marks for English went through the roof. It's safe to say that it was Sir Clive who made me learn English.
Much code was open source in these days. Or rather, one would buy a book with Basic listings in the bookshop, convert the code to something that one run on the idiosyncratic dialect of the computer one happened to own. And when the code finally executed, it was hacking time! Let's make every player in the silly kingdom-type of game that was so popular at the time start with a debt and two fortune-eating elephants! Make them go through a random maze before they could get at the treasure needed to buy troops to quell a revolt!
That's how I learned code. Wonderful days, wonderful days...
2007-04-22
Marijn Kruisselbrink visited me this nice and sunny Sunday afternoon so we could kickstart his Google Summer of Code Music Flake> project. Marijn decided to build on the successor to Noteedit, Canorus. We quickly prepared the scaffolding, and not too long after that, Marijn produced this screenshot:
That is, a musical notation flake that loaded a Canorus music file (MusicXML is the goal) and displays it. Er.. Wow!
2007-04-18
First it was Easter, so I was too busy to even participate in the KDE Google Summer of Code irc discussions, and then I was busy hacking our new house (and in fact I should be updating my KSpread spreadsheet with all the money I've spent on plasterboard, wood, copper tubing and so on), but, well, I just want to spend a few minutes highlighting the excellent projects we've got for the 2007 Google Summer of Code for KOffice -- and Krita.
I'm mentoring Marijn Kruisselbrink who's going to try to build a flake shape that makes it possible to have editable music notation right in any KOffice application. The funny thing about this project is that it's so obvious that it's incredible it's unique. I mean -- most word processors have a formula editor for mathematical formulas. But I very much doubt that the group of people needing formulas in their documents is larger than the group of people needing to print a melody in their documents. All over the world, choirs (amateur, church or otherwise) and dancing groups are publishing news sheets with text and music mixed together. Then there are musicologists who occupy about the same niche as mathematicians in their needs -- a whopping great audience who until now had to make do with embedded eps files or, if they are geeks, Latex and lilypond. Marijn is visiting me next Sunday so we can get off on a flying start. I'm really excited about this.
Sven Langkamp, mentored by Casper Boemann, is going to implement various selection visualizations for Krita. We already had a mask-like visualization that had some limitations, users want marching ants and there may be more. Sven is already on his third implementation of marching ants -- whee!
Emanuele Tamponi is going to make a brave dash at implementing painterly features -- wetness, semi-realistic paint mixing, visualizations. Krita is ready for this kind of work, and we know Emanuele can deliver. And, hey! That makes two Krita projects this year!
Cyrille Berger managed to get Igor Stepin's collaborative editing for KOffice in -- Abiword can already do this, but after consultation with the Abiword guys it was clear that their system isn't suitable for cross-app purposes. Igor is going to concentrate on KWord, which seems a wise choice given the complexities involved, and given that he'll have to invent a protocol himself.
Pierre Ducroquet is going to be mentored by Sebastian Sauer, the Kross guru to work on improving OpenDocument compatibility for KWord. This will likely involve adding missing features to KWord itself and -- hopefully! -- double the number of steady KWord developers by the end of the summer. Click on the link -- Pierre is nothing if not ambitious in his outline!
Flake shapes are not the only innovation in KOffice that should lead to easy third-party extensibility. It's inordinately easy to add plugins that extend the text handling of KWord -- and by extension of all KOffice applications that need rich text. Fredy Yanardi, mentored by Tomas Mecir, is going to demonstrate just that.
Six projects, six chances to make KOffice 2.0 take a giant leap forward!
2007-04-11
I'm not only working really hard on our new house, but also forgot my thinkpad's power adaptor at work, where I won't be until Monday... So -- no Boudewijn on irc, sporadic mail reading and no participation in SOC discussions until Monday.
On the other hand, Adrian Page has been busy restoring and improving Krita's OpenGL capabilities and Casper is working on a great drop-down slider, Cyrille on panorama stuff for Krita... I'm glad the bus-factor of Krita isn't just one person anymore!
2007-04-10
At least for me. The very first Sunday of Lent we first took a look at the 16th century house over our Church. (The Church bought the house to get the cellar so we could convert it into a place to drink coffee after services, so we could convert our current coffeeroom into an extension to the "nave" of the church.) We liked what we saw, so we decided to try to buy it.
Problem was, we had only until the very last day of Lent, that is, six weeks, to buy it because of some tax-related issue that would have bumped up the price with about 17.000 euros. Speed was, accordingly, of the essence. And house buying is already quite nerve-wracking. It became impossible to fast properly, so I've missed the Big Red Spiritual Reset Button time this year, which makes it hard to have a proper Easter, John Chrysostom's Easter Homily notwithstanding. A pity, because various circumstances outside my control made a good, thorough Lent a bit of a necessity for me, this year. And we're not muslims: once it's Easter, you cannot decide to somehow do the skipped fasting anyway at a later date. Easter is Easter, for everyone. Again, see John Chrysostomom.
We succeeded, despite complications like Irina losing her job in a very stressful way right after the mortgage application was signed, the seller's representative going on holiday in the middle of it all and more. Friday 30 March we signed the papers -- one hour before the absolute deadline, and we became the proud owners of a big, sixteenth century house. At least, parts of it are C16, and there are parts of all the following centuries.
During Holy Week we started renovating, ripping out the ca. 1930 partitions in the attic, the C18 maid's room in the attic and more. We discovered rotten beams in the roof, a sewer gas outlet right inside the house, the kitchen ventilator ends in what used to be the previous owner's study. All the fun things. Builders, painters, gas & electricity people all offered to the do work for us for ridiculously inflated prices. Except the painters, who wanted more money than we have, but were quite reasonable in their estimate. There's a lot of wood in that house, all of it bare. Apparently the previous owner, who was a shaman of sorts, believed that bare wood was spiritually important.
But most of the scaffolding for the new walls for the kids' rooms in the attic are up, friends of ours are helping with building, my dad is over to help with the work. Progress is being made!
Anyway: here are a couple of piccies of the "before" state:
Facade (the church under our new house is being altered, too, hence the wooden shed):
Cellars (not our property, more's the pity):
Stairs:
Kitchen:
Front room:
Study and front room:
Stairs to first floor:
There's also a big bed room, a bathroom, a guest room, a laundry room and we're making three bedrooms and another bathroom in the attic.
Oh, and: Christus is opgestaan! Christ is risen! Christos voskrese! Christos anesti! (Father Theodore also added Rumanian and Finnish to this years string of translations, but I can't spell those languages.)
2007-04-01
This year is one of those rare years where western Christianity and eastern Christianity celebreate Easter at the same date (excluding those people who keep the Julian calendar, of course, there's always something). When that happens the children in our parish take part in the great procession of all children from all parishes and communities in Deventer, no matter the denomination that goes along all churches. There's a donkey, too, usually a young one. The procession passes our own church and Father Theodore blesses all the sweets-on-a-stick we call "palmpasens" that the children carry.
That's me and Father Theodore waiting for the children to arrive:
A blessing with a vengeance:
Next week is Holy Week. I'll be in Church pretty much permanently from Wednesday evening to Sunday afternoon. Accordingly, I won't be able to exercise my gift of the gab to make sure KOffice gets as many Google Summer of Code slots as possible within the KDE project, but no doubt others will fight the good fight. It's amazing -- there hasn't been a single bad GSOC proposal for KOffice this year. They were all really great, all nine or ten of them!
(Pictures by Menna)
2007-03-23
One of the things that we were really looking forward in Qt 4.2 for Krita was Arthur. I dare say the Gimp developers are in the same situation, only they long for Cairo. Aliased temporarily lines and pseudo transparency are so nineties.
In any case, with Arthur the benefits come almost automatically. Like in this screenshot:
Embarrassingly, I first saved this screenshot as a JPG image and subsequently thought that Krita created artifacts around the anti-aliased line. Er, well, blush...
Other things are easy, too, like transparency checks that stay in place. Since the checkerboard under the image is supposed to represent something fixed like a desk, it stands to reason that the checks should stay put if you scroll the image. The performance of Qt4's Arthur in this area isn't quite as good as Krita 1.6's OpenGL implementation, but it comes close and is officially Good Enough for Me.
This week, by the way, saw a lot of work on Krita: I've started implementing the layers, masks and selections stuff, as well as a begin of the infrastructure that will make it possible to enable and disable channels of a layer for things like filtering, compositing and painting:
The day when Krita's L*a*b mode is finally going to be good enough for the tutorials in the Margulis book is coming close!
Cyrille has reinstated the YcBcr colorspaces (8 and 16 bits, naturally), Sven Langkamp has been working hard on porting our home-grown Undo/Redo system. It's not finished, but Casper Boemann is working on some stuff, too, notably the zoom system, but also an extended curve widget and a nice cross between a combobox and slider.
2007-03-21
For once we -- that's the Krita team -- hoped to be first with a feature. After considerable discussion, we made a design for Krita 2.0 that allows users to attach any number of filters associated with a mask to a layer to have life filtering of the layer contents. I'm implementing that stuff right now (well, I'm waiting for Krita to compile, but that's immaterial). Read all about it on the wiki -- and I bet Adobe reads our wiki, too because they've got that feature, too!. Still, it has one advantage: our implementation will be familiar to Photoshop users, and that alone will surely save us from a ton of bug reports.
Of course, they didn't steal it. Their implementation will be better than ours, sure. And they will have started ages ago. But still. It rankles! It was something we thought up ourselves. Innovative-like.
2007-03-15
OpenICC is a Freedesktop project that brings together just about everyone who is interested in color for free software applications. That's: ArgyllCMS, CinePaint, Cups, GraphicsMagick, Gimp, Gutenprint, ImageMagick, Inkscape, Krita, karbon, LittleCMS, LPROF, Scribus and Oyranos. And, of course, what's happening here has influence on applications like Digikam, UFRaw and so on.
And this year OpenICC has been selected as one of the projects that can participate in the Google Summer Of Code!
We've already got a couple of pretty cool ideas on-line, but students are free, of course, to come up with their own ideas. So... If you're a student, if you are as fascinated by color as Otto von Chriek and would like to do something that will help all free software that handles graphics -- enter your applications!
(I had intended to goof off this year... Especially since there's all kinds of heavy-duty work to be done in and around the house. But I find I can't stay out of the fun.)
2007-03-09
I lost most of this weeks mail in a crash that obliterated my inbox. So... If you have sent me mail this week that I haven't answered yet, please resend. It's very likely gone down the drain along with a couple of hundred others.
2007-03-07
Thanks to some great work by Emanuele Tampione and Thomas Zander, Krita can now actually embed KOffice flake shapes: our text tool is done! At the same time, I've been reworking the KOffice canvas controller class to make it possible to optimize the rendering inside Krita (and to offer an OpenGL canvas again), which means that dragging and editing shapes is really smooth. At least, on my computer. And Emanuele has made great progress with implementing QPaintEngine for Krita paint devices -- which should mean we're going to be able to create vector shapes that use Krita's brushes. And at the same time, Cyrille has been working on his dynamic brush.
Ah funny thing with shapes in Krita is that they are rendered to the document resolution, which is then displayed at a particular zoom level and screen resolution. So, if you zoom in a lot, the pixels of the text will become visible and the vector shapes will lose their smoothness. That sounds bad, but it's true to what you get: the shapes exist at the image resolution, so you can see which rendered shape pixel will be blended with which image pixel. But I suspect we'll be getting bug reports about that, thought...
In my last blog about Krita I talked about our meeting on deciding what we were going to do with selections. Remember: Krita currently has the luxury of a selection per layer, but users also need a global selection. The results are on the wiki page, and I think we're all quite happy with them. By the way, if you're interested in KOffice development -- and maybe would like to pick up some little task -- you could do worse than browse through our development wiki.
Casper Boemann has moved Krita's zoom and pan tools have to the KOffice libraries, so all KOffice applications have them now. That's a work in progress, of course, we're not done!. Oh -- and notice the latin text in the screenie? That's example text that disappears as soon as you start typing.
2007-03-06
If you get a camera like my new Fuji, and you're a *buntu user, you may well be surprised that you can only download images from the camera if you're root. The solution is this known bug in *buntu (and assorted gaggle of duplicates). I think it should have been a showstopper bug for Edgy, but then, I've got one of these cameras.
By the way... If anyone know how to get sound working with Kubuntu on a Toshiba L30 101 laptop with a realtek 826 sound chip that identifies itself as an unknow ATI sound chip, eternal gratitude and a delicacy like a pound pack of Dutch chocolate sprinkles will be yours. I'm baffled like I haven't been baffled by a piece of hardware and Linux since 1997.
Preparatory to my voyage to Canada for the 2007 Libre Graphics Meeting in May I thought I'd treat myself to another Krita-relevant toy: a new camera. Our first digicam was a Canon Powershot A20 that we've taken more than 8000 pictures with. The second was a cute little Praktica DPix 540Z we bought in Wernigerrode. The Praktica lives in Irina's handbag and the Canon is getting a little long in the tooth. Besides, 2 megapixel images are all very well, but they're not much use for stressing Krita with, are they? And neither camera does RAW.
Enter the third digital camera we've bought, one that brings back the days of our second-hand Ricoh SLR: a Fujifilm S6500fd (the fd means "face detection", and the American model number is s600fd):
2007-02-26
I've made it onto OSNews, just by blogging :-). My webserver seems to be holding up, so let's add another Krita entry.
Right now the Krita gang is assembled on freenode, #kritaselections, to discuss the selection system we're going to design into Krita 2.0. In Krita 1.6, there's no real distinction between a selection and a mask: selections are local to layers, and there is no global selection. In a way, this is logical, because you often use the pixels in a layer (for instance with the magic wand selection) to create the selection, and because the effects of what you do with a selection of limited to a single layer -- for instance filtering, copying or transforming.
However, that's not what users are used to: every raster image application has a global selection. Besides, not being able to selection something on one layer and the use the shape of the selection on another layer is a big limitation. So the question for tonight is: will we keep the per-layer selection, move to a global selection, or combine the two?
And at the same time -- how about masks? Technically, a mask is just a selection with an associated filter -- most often an alpha transparency filter. Of course, that makes a mask the same thing as an adjustment layer. Again, technically, you'd not even need a separate mask in Krita, just create a group layer with a pixel layer and an adjustment layer on top of the pixel layer. That's also probably how OpenRaster will save these things -- if Oyvind Kolas gets his druthers. If Bart Coppens gets his, they won't. It's too early to tell.
As I'm typing, every team member is giving their position, and we've also got a Real User, Ronan Zeegers, who creates the icons for our toolbox, to give his.
Irina's blasted Dell laptop is broken again. It was repaired April 2006. So, after slightly less than a year, it's a goner again. This time when you try to boot it, it quickly reboots, reboots, reboots, reboots -- repeat ad infinitum. It's even quite hard to really shut it down, it reboots that fast.
So, what now? Another fight with Dell for another ten months of Inspiron 5150 usages or shell out for a new laptop? If the latter it will not be a Dell!
2007-02-24
Krita progress over the past few months has been slower than I'd have liked, for a couple of reasons: porting to Qt4 was quite hard, integrating with the rest of KOffice demanded porting all our tools (more than 20), the canvas classes needed to be rewritten and so on. Lots of groundwork with little progress to show for it. Boring work, too. And we're missing the work of some people who were really important for 1.5 and 1.6 but who are now too busy with work or university to be able to do much work. And I haven't been really fit myself for months.
But! Banish the gloom! There are some really cool and interesting developments. Not only have we got a most impressive ToDo, sometimes items even get done! I already mentioned the flake integration. But there's more...
Casper Boemann moved Krita's color model library from Krita to KOffice proper, renaming it to Pigment. Then Cyrille Berger refactored it to use C++ templates, something that has been on the ToDo for a long, long time. The result? When I casually mentioned that having a 16 bits XYZ colorspace would be nice to have, Cyrille committed one in less than an hour. It used to take us a whopping day, sometimes even two, to add a colorspace to Krita. And Pigment is not just a thin wrapper around lcms: Pigment colorspaces have all kinds of extra methods to mangle pixels, like convolutions, computing averages, adjusting contrast and brightness, compositing pixels.
Anders Lund has spent quite a bit of time porting Krita's tools to the new KOffice-wide tool system (which was based on Krita's tool architecture but got morphed out of all recognition). Still, there's a lot of tools that still need to be ported.
I have been working on multithreading and on the canvas. Recompositing the image now happens in threads, and I've ported Gwenview's excellent and fast scaling. What this means is that Krita is now as good as Photoshop at showing line art zoomed out. Here's a small part of a big grayscale tiff image I found somewhere on the web (but I have forgotten where). It's from a tutorial someone on the #koffice irc channel pointed me at.
![]() |
![]() |
| Gimp svn at 9% | Krita 1.6.2 at 8.33% |
![]() |
![]() |
| Photoshop 7, 9% | Krita trunk, 6% |
What else? Cyrille has added a dynamic brush paintop plugin -- this will be able to lots of cool things while painting. There's even a bit of gui to start defining your custom brushes, but it's not finished yet. There's progress on the OpenRaster front, code progress, but also progress of a different kind: at the Libre Graphics Meeting 2007 in Montreal, Cyrille, Oyvind Kolas and me will meet with Louis Suarez-Potts from the OASIS Adoption Technical Committee for ODF and the ODF Alliance. Exciting times -- let's break the stranglehold of .psd!
I'm working on making it possible -- even easy -- to use OpenGL shaders to write filters. I'm taking my inspiration from QShaderEdit for a large part, together with the tutorials from gpgpu.org However, in order to do that, I first had to fix Krita's OpenGL canvas (to share the OpenGL context), and for that I had to fix the KOffice-wide canvas controller, and so on. It'll be a while before I can finally start working on my beloved Chinese Brush paint plugin!
On the 1.6 front, Casper Boemann has fixed almost all remaining issues with our transform code (that rotates, shears and scales). Ben Schleimer has created a framework for plugins that use the Poisson math thingy to do cool stuff like restoring bits of an image covered by letters:
| Before: |
![]() |
| After: |
![]() |
And there's more going onbe, but that's for another blog on another day!
2007-02-23
The main effort for KOffice 2.0 is the flake library -- an attempt to integrate the various parts of KOffice as tightly as possible. Some time ago I managed to make Krita a flake shape provider, that is, create a shape that embeds a Krita image. You can't do much with it except load an image, display it, rotate, stretch & shear it. The next part will be much more interesting: choosing which Krita tools to provide to other applications, so it will be possible to paint or filter the Krita image shape right inside, say, Karbon.
At the same time, Emanuele Tampioni, who started hacking on Krita with last year's Summer of Code, has begun working on making shapes show up in Krita. This is a much more complex proposition: in the rest of KOffice all painting is done through Qt. Every shape gets handed a QPainter object and paints itself. But in Krita, we have this stack of layers that get composited using special code. Qt cannot do that for us, because Qt only knows 8 bit rgb and only a subset of all possible composition operations. So, we have to find a way to make it possible for shapes to paint themselves on Krita layers.
That will make it possible to mix shape layers and paint layers (together with group layers, adjustment layers and who knows what else), which is pretty cool and will make working with text and vector art inside Krita really easy to understand. The main thing we need for that is to reimplement QPaintEngine so it can work on a KisPaintDevice.
As long as I've had the right to vote, I've always been able to say "I didn't vote for these idiots" whenever a cabinet minister did something silly or evil. Being a natural born conservative about social issues -- I want everything to stay the way it was in the seventies -- for the first ten years of my life as a voter I voted Green Left. Then, about nine years ago when I got fed-up with some of Green Left's sillier shibboleths I switched allegiance to a party with about as little chance of ever getting into the cabinet. Or so I thought.
Well, the easy times are over. No longer for me the old cop-out "who voted for these idiots? Not me!"
2007-02-20
I recently bought a cheapo scanner, a Canon ScanScan LiDE25. Our old scanner had broken down, giving red and blue lines all along the left side, and, besides, it dated from our Windows-only era, which means 1994 or so. The LiDE 25 was cheap at about 60 euros, and, surprise!, easier to use under Linux than anywhere else. I mean, all you need to do is plug the usb cable in, and start one of the scan apps that come with any decent distribution. Works out of the box... No need to first install software from a bundled CD or anything.
I've tested three applications: the lamented unmaintained Kooka, the equally unmaintained QuiteInsane and XSane. Kooka cannot use the scanner's 16 bit mode, which is, of course, extremely important because I've finally got a way to create 16 bit images to test Krita with. Quiteinsane claims to be abler to do 16 bit images, but cannot, really. Probably uses QImage inside. XSane does do 16 bit and, although all apps use Sane, gives the best results. A pity, because I liked the way QuiteInsane worked a bit better.
Using the scanner also shows that the panel on my Thinkpad Z60m has a really horrible orange cast, while the Philips LCD monitor we recently bought has a green cast. Looking at the image on the screen or our old Dell laptops shows that the scanner is all right and that those Dells, despite their many faults have brilliant screens.
Still: here's my new wallpaper, a painting by Pieter Claesz, originally scanned at 16 bit/channel and 300dpi, massaged and cropped in Krita: