today's pet peeve: kicker bug reports that don't come with kicker configuration files.
when one of these rolls in i'll spend a few minutes trying to nail down the configuration based on descriptions (slow and very error prone) or screen shots (not fast and not quite as error prone) only to find that i can't reproduce the problem. so then i ask for a config file and when i use that exact config, i can then reproduce the problem.
if more reporters would attach their kicker config by default they wouldn't have to do as much describing and i'd be able to fix things faster and (more importantly to me ;) with less aggravation.
so if you are reporting a kicker bug, please think about attaching your kickerrc =)
Sunday, October 30, 2005
weekend end; kicker defaults; error messages
i spent this weekend mostly resting, spending time with t. and my son. i feel a bit unright for just relaxing as the ever present sense of urgency needles at me. at the same time i know i'll be spending enough time in airplanes and in front of people to take care of any excess of personal energy i will have accrued.
i have spent a bit of time toying around with a new default panel setup, just because the current one is so truly bad. currently it looks something like this:

as you can see, handles are faded out (now that they actually work perfectly in all situations, something they didn't in previous releases), bookmarks and quickbrowser are replaced in the kmenu and the only app buttons are for file and web browsing ... i haven't gotten to the clock font issue yes, nor can i default certain system tray icons to hiding (since that would require new translated strings) and i can't enlarge the default menu entry size to 32px since that doesn't give enough room vertically even on 1024x768 for everything (even with frequent apps turned down to 3) and our 22 pixel icon coverage is pathetic so many of the icons end up getting scaled which looks like crap.
note to self: make plasma configurations easy to alter and less rigid with "can't"s.
and finally, i think i was just confronted with one of the lamest error dialogs i've seen in a long time whilst dragging a new bookmark to the sidebar in gimp's file dialog:

so not only does it appear to be using an external process (fork/exec'ing?) to change a file permission (?!) but the text select caret won't go away because i highlighted the text one. of course, clicking the Add button works, just not DnD. i'm amazed. it's these types of things that make me detest using the gimp.
update: DnD now works, but i can't remove any bookmarks anymore. *sigh* a feature limited bookmarks sidebar isn't rocket science, people.
second update: i wonder who thought mortal humans might benefit from the text in that error dialog? 'mode', 'waitpid' ... huh()?
so why not use krita, you ask? because it offered it's own entry in the lame error dialog contest today:

if your app fails to do something it ought to be able to, please give some hint as to why. this dialog gives me 0 ability to start trying to fix the problem without getting neck deep in the code.
back to gimp torture it is then. =(
(fwiw, i'm using gimp 2.2 and the latest version of krita from svn. because i'm using a dev version of krita, the png loading problem could be a local issue to my build but without more information in the error msg i really don't know; maybe i should try running it from a konsole and see if any more useful information appears there. not that i should have to, but...)
update: after an svn up and rebuild of koffice, krita opens png files just fine again.. wooooohoooo! =)
i have spent a bit of time toying around with a new default panel setup, just because the current one is so truly bad. currently it looks something like this:

as you can see, handles are faded out (now that they actually work perfectly in all situations, something they didn't in previous releases), bookmarks and quickbrowser are replaced in the kmenu and the only app buttons are for file and web browsing ... i haven't gotten to the clock font issue yes, nor can i default certain system tray icons to hiding (since that would require new translated strings) and i can't enlarge the default menu entry size to 32px since that doesn't give enough room vertically even on 1024x768 for everything (even with frequent apps turned down to 3) and our 22 pixel icon coverage is pathetic so many of the icons end up getting scaled which looks like crap.
note to self: make plasma configurations easy to alter and less rigid with "can't"s.
and finally, i think i was just confronted with one of the lamest error dialogs i've seen in a long time whilst dragging a new bookmark to the sidebar in gimp's file dialog:

so not only does it appear to be using an external process (fork/exec'ing?) to change a file permission (?!) but the text select caret won't go away because i highlighted the text one. of course, clicking the Add button works, just not DnD. i'm amazed. it's these types of things that make me detest using the gimp.
update: DnD now works, but i can't remove any bookmarks anymore. *sigh* a feature limited bookmarks sidebar isn't rocket science, people.
second update: i wonder who thought mortal humans might benefit from the text in that error dialog? 'mode', 'waitpid' ... huh()?
so why not use krita, you ask? because it offered it's own entry in the lame error dialog contest today:

if your app fails to do something it ought to be able to, please give some hint as to why. this dialog gives me 0 ability to start trying to fix the problem without getting neck deep in the code.
back to gimp torture it is then. =(
(fwiw, i'm using gimp 2.2 and the latest version of krita from svn. because i'm using a dev version of krita, the png loading problem could be a local issue to my build but without more information in the error msg i really don't know; maybe i should try running it from a konsole and see if any more useful information appears there. not that i should have to, but...)
update: after an svn up and rebuild of koffice, krita opens png files just fine again.. wooooohoooo! =)
Friday, October 28, 2005
november travel; halloween; qt4 easter egg; 4 million LOC
on monday i start to travel again. this time to munich and oslo, first for trolltech dev days and then to meet, greet and hack with the trolls at their hq. the i get to stay home until the 20th or so when i head out to vancouver, b.c. to speak at the vancouver lug. i'm looking forward to december when i don't have anywhere to go after the first week =)
the most bogus part about the upcoming trip is that i'll miss halloween with the p-man. we've gone out trick or treating together for the last 3 years, so it's kind of sad to break that tradition. we did go get some pumpkins and carve them up into scary talismans. they now sit on the front porch, candles lighting them up from the inside at night.
speaking of holidays, easter eggs are fun. (ok, that was a lame transition, but roll with me here ;) if you start up qt4 designer, go under the help menu and select "about qt designer" you get a standard little about box. but if you click and drag around the inside of the qt logo in the icon just right, it turns into a push button. click the button and you get a cute little nethack-like game where you have to collect the troll's business cards in a dark dungeon. or is that just what it looks like in oslo in the winter? ;)

what could be cooler than that? how about the fact that kde is now over the 4 million lines of code mark? huzzah!
the most bogus part about the upcoming trip is that i'll miss halloween with the p-man. we've gone out trick or treating together for the last 3 years, so it's kind of sad to break that tradition. we did go get some pumpkins and carve them up into scary talismans. they now sit on the front porch, candles lighting them up from the inside at night.
speaking of holidays, easter eggs are fun. (ok, that was a lame transition, but roll with me here ;) if you start up qt4 designer, go under the help menu and select "about qt designer" you get a standard little about box. but if you click and drag around the inside of the qt logo in the icon just right, it turns into a push button. click the button and you get a cute little nethack-like game where you have to collect the troll's business cards in a dark dungeon. or is that just what it looks like in oslo in the winter? ;)

what could be cooler than that? how about the fact that kde is now over the 4 million lines of code mark? huzzah!
Thursday, October 27, 2005
sketch
today i accomplished two things besides the usual: i updated my laptop to suse 10 and spent quite a bit of time sketching out plasma details.
the sketches illuminate various visual effects and the general layout concepts i'm aiming for which have largely been living mostly in my head up until now. so now i have a bunch of "storyboards" detailing what chains and transitions and extenders and ... look like. i'll be showing them to ken when i arrive in munich on the 1st of november, hoping it'll spark some inspiration in his mind.
the sketches also enabled me to nail down the theming system. i'm not sure i've seen anything out there quite like it before, but that probably just means it was done 10 years ago in some system i've never heard of ;)
with the suse 10 upgrades there were several shockers: the kde installs i'd built until 9.2 still worked! could this mean that .. *gasp* .. gcc's c++ abi is approaching stability? or is that i just totally lucked out? ;) well, not all was rosy. besides the minor annoyance of kcontrol not showing any entries (kbuildsycoca is not being my friend either atm), my sound didn't work at all and the sound configuration yast module was a gong show until i removed the contents of /etc/modprobe.d/sound at which point it magically worked. at least boot times are snappy and i now have hal, x.org and a decently recent ndiswrapper.
the sketches illuminate various visual effects and the general layout concepts i'm aiming for which have largely been living mostly in my head up until now. so now i have a bunch of "storyboards" detailing what chains and transitions and extenders and ... look like. i'll be showing them to ken when i arrive in munich on the 1st of november, hoping it'll spark some inspiration in his mind.
the sketches also enabled me to nail down the theming system. i'm not sure i've seen anything out there quite like it before, but that probably just means it was done 10 years ago in some system i've never heard of ;)
with the suse 10 upgrades there were several shockers: the kde installs i'd built until 9.2 still worked! could this mean that .. *gasp* .. gcc's c++ abi is approaching stability? or is that i just totally lucked out? ;) well, not all was rosy. besides the minor annoyance of kcontrol not showing any entries (kbuildsycoca is not being my friend either atm), my sound didn't work at all and the sound configuration yast module was a gong show until i removed the contents of /etc/modprobe.d/sound at which point it magically worked. at least boot times are snappy and i now have hal, x.org and a decently recent ndiswrapper.
Tuesday, October 25, 2005
agregating calls to expensive methods
i feel so productive today. it's not even 10:00 and i've showered, taken peyton to school, committed a number of fixes to kicker, eaten breakfast and re-registered the car for another year. some days i'm lucky if i've had a shower by this time of day. helps, i suppose, when you have someone waking you up at 05:00 ...
... i came across a somewhat common problem in the taskbar: a rather expensive function was called from a number of different code paths which sometimes would be executed in quick succession one after the other.
in this particular case, it was the method that sets the geometry for all the buttons in the taskbar, both resizing and positioning them, which in turn triggers repaints. ai!
it was being called repeatedly whenever there were several "this window has changed in some way" type events created, such as when switching desktops, opening several windows or closing a set of windows. none of these calls could be removed, though, since sometimes only one of the code paths gets executed, depending on what is happening, and the layout still needs to get updated in that case. worse yet, sometimes the layout method would be called while it was still in the layout method due to hitting the event loop while doing lay outs and new events being processed which caused calls to the layout method. ug.
so i employed a dirty little trick that i've used elsewhere in similar situations:
all calls directly to reLayout() were then replaced with reLayoutEventually(). the expensive reLayout() method is now called at most five times a second and in practice is only called one per set of events, which keeps the taskbar feeling more responsive.
it's a cheap and even common trick, but it works.
p.s. kdBacktrace(int) rocks
... i came across a somewhat common problem in the taskbar: a rather expensive function was called from a number of different code paths which sometimes would be executed in quick succession one after the other.
in this particular case, it was the method that sets the geometry for all the buttons in the taskbar, both resizing and positioning them, which in turn triggers repaints. ai!
it was being called repeatedly whenever there were several "this window has changed in some way" type events created, such as when switching desktops, opening several windows or closing a set of windows. none of these calls could be removed, though, since sometimes only one of the code paths gets executed, depending on what is happening, and the layout still needs to get updated in that case. worse yet, sometimes the layout method would be called while it was still in the layout method due to hitting the event loop while doing lay outs and new events being processed which caused calls to the layout method. ug.
so i employed a dirty little trick that i've used elsewhere in similar situations:
void TaskBar::TaskBar()
{
...
connect(&m_relayoutTimer, SIGNAL(timeout()),
this, SLOT(reLayout()));
...
}
void TaskBar::reLayoutEventually()
{
m_relayoutTimer.stop();
if (!blocklayout)
{
m_relayoutTimer.start(200, true);
}
}
all calls directly to reLayout() were then replaced with reLayoutEventually(). the expensive reLayout() method is now called at most five times a second and in practice is only called one per set of events, which keeps the taskbar feeling more responsive.
it's a cheap and even common trick, but it works.
p.s. kdBacktrace(int) rocks
qt4 svg and ksvg
with qt4 bringing an svg renderer, the immediate question is: what about ksvg? the good news is that both have rather different purposes in life. qt4's svg is a svg tiny 1.2 renderer that has a very small memory footprint and low cpu requirements. the resource usage is so low that it's actually useful for devices using qtopia (which isn't accidental; that was one of the design goals). on the flip side, it doesn't provide a DOM for the svg it is rendering (it doesn't use a DOM at all internally, actually) or things like the interaction capabilities defined in the full svg spec. the goal for qt4 svg is to renders fast and accurate images.
ksvg, on the other hand, uses a DOM, provides for interaction and is suitable for use in (for instance) a web browser where the svg's it renders can meld rather nicely with the rest of the DOM based content. due to this it is heavier than qt4 svg but it also does more.
ksvg, on the other hand, uses a DOM, provides for interaction and is suitable for use in (for instance) a web browser where the svg's it renders can meld rather nicely with the rest of the DOM based content. due to this it is heavier than qt4 svg but it also does more.
Monday, October 24, 2005
monday, monday
so i spent a good chunk of the day fixing a bunch of transparency related bugs in kicker for 3.5. what bullocks. first off, i find the transparency that we have to be ultimately inane. and i'm forced to run with it much of the time to debug stuff.
i'm stuck working on 3.5 stuff (knowing i'll feel like crap if 3.5 ships with obvious brokenness) whilst pining for getting going on kde4 if for no other reason than we'll have proper argb visuals. that means proper transparency support with these horrible, fragile, non-efficient hacks.
if you haven't seen zack's videos showing the rather nice graphics capabilities in qt4 (here and here) you've been missing out. and without saying more than i ought to: this is just the beginning. i'll simply note that at dev days matthias said something about scene based rendering in his presentation.
now, i'd really like to simply `rm -rf` the transparency support in kicker 3.5 and tell people to deal with it until there is proper support in X and Qt for these things. really, i would. but my survival instincts tell me that i'd prefer to live a few more years rather than be lynched by the hordes of users who just can't live without such important things as a kicker that paints the same background as the desktop. this from the guy who removed icon zooming.
anyways ... after my recent blog entry detailing some of the announcements made at trolltech dev days, people were asking about the upcoming qt4 java bindings and i figured i may as well try and answer some of those questions.
no, richard dale wasn't/isn't involved with these bindings. but as richard noted in a recent blog entry of his own he's happy to have these moved off his plate so he can concentrate on more bindings work that is more interesting to him.
yes, these are (AFAIK anyways) full java bindings to qt4. what they'll end up looking like exactly is still forthcoming. Q1 '06 was the time given, though the hacker working on it spoke up during the presentation and said he was actually shooting for december. but hackers are crazy like that. never listen to them. ;)
speaking of crazy hackers, i got a couple pics from adriaane of the karaoke night. but no video, and conspicuously none of adriaane. i'll have to harass him about it until he coughs up the whole batch:
i'm stuck working on 3.5 stuff (knowing i'll feel like crap if 3.5 ships with obvious brokenness) whilst pining for getting going on kde4 if for no other reason than we'll have proper argb visuals. that means proper transparency support with these horrible, fragile, non-efficient hacks.
if you haven't seen zack's videos showing the rather nice graphics capabilities in qt4 (here and here) you've been missing out. and without saying more than i ought to: this is just the beginning. i'll simply note that at dev days matthias said something about scene based rendering in his presentation.
now, i'd really like to simply `rm -rf` the transparency support in kicker 3.5 and tell people to deal with it until there is proper support in X and Qt for these things. really, i would. but my survival instincts tell me that i'd prefer to live a few more years rather than be lynched by the hordes of users who just can't live without such important things as a kicker that paints the same background as the desktop. this from the guy who removed icon zooming.
anyways ... after my recent blog entry detailing some of the announcements made at trolltech dev days, people were asking about the upcoming qt4 java bindings and i figured i may as well try and answer some of those questions.
no, richard dale wasn't/isn't involved with these bindings. but as richard noted in a recent blog entry of his own he's happy to have these moved off his plate so he can concentrate on more bindings work that is more interesting to him.
yes, these are (AFAIK anyways) full java bindings to qt4. what they'll end up looking like exactly is still forthcoming. Q1 '06 was the time given, though the hacker working on it spoke up during the presentation and said he was actually shooting for december. but hackers are crazy like that. never listen to them. ;)
speaking of crazy hackers, i got a couple pics from adriaane of the karaoke night. but no video, and conspicuously none of adriaane. i'll have to harass him about it until he coughs up the whole batch:
![]() american idol has nothing on kde. well, unless you count musical talent. and coolness... and... | ![]() jasmin (who appeared in the qt4 dance video as jean claude) shows off his stylings while i do my best disco party dancing for the camera |
Friday, October 21, 2005
troll tech dev days '05 in san jose
i spent the last few days in the san jose area for trolltech developer days. after arriving, checking in and getting some sleep i headed over to the trolltech offices in palo alto where i met up with a bunch of the trolls i hadn't met yet including lorn (who works on qt embedded stuff and accidently left me behind at the hotel) and sam (who's doing some seriously kick ass things with thin client software, but more on that in a bit). scott collins was there as well as a bunch of people from the oslo offices who were starting to arrive.
all except matthias ettrich, who it turns out got stuck in london. when he did eventually manage to make his way to san jose a day later, his luggage didn't manage the same feet, so it wasn't the most fun of journeys for him.
i hacked on unserwidgets in the san jose offices for a while as well, since my talk walk through was canceled on me unexpectedly (as it was to happen twice more no less). the only thing i have left to add is the ability to define the methods for multi-page containers, which is fairly trivial. i did a bunch of kicker bug fixing today, but will get back to unserwidgets over the weekend. i showed it to some of the people at dev days and several asked if they could get a copy of it. this allowed me to discuss kde with them since that's where they'll be able to grab it from.
interestingly, many people asked me how to use various kde technologies in their Qt apps. no less than 5 different companies did so, actually. a couple asked about khtml, one asked about katepart and the rest were inquiring about the topic in general. apparently ISV's out there have been watching what we're doing and wanting in on the action. when i informed them we are looking at a win32 and macos port of our libs which are all lgpl'd (or more permissive) eyes widened.
the wrap up party after the first day was great, and i played pool and poker with a bunch of kde hackers, trolltech people and random attendees. good fun. i had conversations with people from adobe, disney, boeing and more. there are a lot of very big companies using trolltech's technologies in very serious ways.
on the second day there was a series of truly kick ass presentations. first there was synopsys who is a fairly large company (1600 devs) that creates eda software and provides services around them. they are huge qt fans and the fellow who presented on their experiences with qt practically gushed over it. he demod some of their software which is insanely complex and very cool. it handles visualization of data sets in the tens of millions of records like a dream and is often used on 64 bit systems due to the memory requirements of these visualizations. he claimed that using qt was probably one of their best decisions ever and discussed how they go about designing their interfaces and implementing them.
but it was haavard's and ettrich's presentations that were really mind blowing. besides noting the growth of trolltech (80->140 employees in the last 12 months, the recent multi-million dollar investments in the company, etc) and expansion of both their management expertise (bringing on new people for the CTO positiong and to oversee the embedded devices push) and product scope (now that qtopia is based on qt4 and with expanded macos support, qt4 claims quad-platform coverage) there were the following technology announcements:
Qt-COCO
named after coco channel who said one can never be too rich or too thin, the trolls have been working on a thin client framework. it works with any qt app and os combination. i saw it running in their palo alto offices and my jaw didn't just drop, it just about fell off. sam magnuson, who is working on this tech, showed me an app running in oslo simultaneously displaying locally on a linux and windows box. as he interacted with it on the windows machine, the instance on the linux machine followed along. no x, no vnc, no rdp ... just sweet smooth qt: the speed was terrific (think NX or citrix). and to top it off it allows for local (!) file browsing and printing (not to mention desktop resize events...). it's not finished yet (optimizations, auth and some additional features are left) but ... DAMN.
arthur enables some pretty amazing things.
Qt-Java
haavard announced that by Q1-06 they'll be releasing a tech preview of java bindings for qt4 that will be officially supported. wow.
qtopia based on qt4
well, this wasn't a suprise but hearing more about it was very cool. svg based phone interfaces are on their way .... and speaking of which:
svg in, pdf out
that qt 4.1 has svg support is no secret, but it was dev days that i was first to hear that it also sports native pdf generation. holy crap.
of course, not all things are perfect. matthias noted that 4.0 had some blemishes but that they were working on them and laid out a road map for these issues. qt 4.1 is going to rock. i also talked with a number of trolls about things such as the model/view stuff and issues i had run into with them.
oh, and i have to say: scott collins rocks. he's fun, he's funny and he makes me look like a shy person. speaking of being shy, i went out for some karaoke after the really nice wrap up dinner for the trolltech team. three of us went to a place that was supposed to have karaoke, but they'd stopped the week before. but there was a bar in a bowling alley one block away that was now doing karaoke, so away we went. there are videos and pictures of our antics which i hope to be getting my hands on, at which time i'll post them somewhere for amusement ;) notable moments: jasmin jumping around on stage as he belts out "i'm just a girl" and me being ambushed into singing the olivio newton-john parts of "summer nights".
i also won a 'das keyboard' by getting the best time on a little video game thingy at the kdab booth, much to jesper's chagrin (he had been #1 until i wandered up and bested him by 3 seconds to secure the win).
on the downside, my digital camera crapped out (some "lens error" problem).
and to think: i get to do it all over again in less than 2 weeks in munich.
all except matthias ettrich, who it turns out got stuck in london. when he did eventually manage to make his way to san jose a day later, his luggage didn't manage the same feet, so it wasn't the most fun of journeys for him.
i hacked on unserwidgets in the san jose offices for a while as well, since my talk walk through was canceled on me unexpectedly (as it was to happen twice more no less). the only thing i have left to add is the ability to define the methods for multi-page containers, which is fairly trivial. i did a bunch of kicker bug fixing today, but will get back to unserwidgets over the weekend. i showed it to some of the people at dev days and several asked if they could get a copy of it. this allowed me to discuss kde with them since that's where they'll be able to grab it from.
interestingly, many people asked me how to use various kde technologies in their Qt apps. no less than 5 different companies did so, actually. a couple asked about khtml, one asked about katepart and the rest were inquiring about the topic in general. apparently ISV's out there have been watching what we're doing and wanting in on the action. when i informed them we are looking at a win32 and macos port of our libs which are all lgpl'd (or more permissive) eyes widened.
the wrap up party after the first day was great, and i played pool and poker with a bunch of kde hackers, trolltech people and random attendees. good fun. i had conversations with people from adobe, disney, boeing and more. there are a lot of very big companies using trolltech's technologies in very serious ways.
on the second day there was a series of truly kick ass presentations. first there was synopsys who is a fairly large company (1600 devs) that creates eda software and provides services around them. they are huge qt fans and the fellow who presented on their experiences with qt practically gushed over it. he demod some of their software which is insanely complex and very cool. it handles visualization of data sets in the tens of millions of records like a dream and is often used on 64 bit systems due to the memory requirements of these visualizations. he claimed that using qt was probably one of their best decisions ever and discussed how they go about designing their interfaces and implementing them.
but it was haavard's and ettrich's presentations that were really mind blowing. besides noting the growth of trolltech (80->140 employees in the last 12 months, the recent multi-million dollar investments in the company, etc) and expansion of both their management expertise (bringing on new people for the CTO positiong and to oversee the embedded devices push) and product scope (now that qtopia is based on qt4 and with expanded macos support, qt4 claims quad-platform coverage) there were the following technology announcements:
Qt-COCO
named after coco channel who said one can never be too rich or too thin, the trolls have been working on a thin client framework. it works with any qt app and os combination. i saw it running in their palo alto offices and my jaw didn't just drop, it just about fell off. sam magnuson, who is working on this tech, showed me an app running in oslo simultaneously displaying locally on a linux and windows box. as he interacted with it on the windows machine, the instance on the linux machine followed along. no x, no vnc, no rdp ... just sweet smooth qt: the speed was terrific (think NX or citrix). and to top it off it allows for local (!) file browsing and printing (not to mention desktop resize events...). it's not finished yet (optimizations, auth and some additional features are left) but ... DAMN.
arthur enables some pretty amazing things.
Qt-Java
haavard announced that by Q1-06 they'll be releasing a tech preview of java bindings for qt4 that will be officially supported. wow.
qtopia based on qt4
well, this wasn't a suprise but hearing more about it was very cool. svg based phone interfaces are on their way .... and speaking of which:
svg in, pdf out
that qt 4.1 has svg support is no secret, but it was dev days that i was first to hear that it also sports native pdf generation. holy crap.
of course, not all things are perfect. matthias noted that 4.0 had some blemishes but that they were working on them and laid out a road map for these issues. qt 4.1 is going to rock. i also talked with a number of trolls about things such as the model/view stuff and issues i had run into with them.
oh, and i have to say: scott collins rocks. he's fun, he's funny and he makes me look like a shy person. speaking of being shy, i went out for some karaoke after the really nice wrap up dinner for the trolltech team. three of us went to a place that was supposed to have karaoke, but they'd stopped the week before. but there was a bar in a bowling alley one block away that was now doing karaoke, so away we went. there are videos and pictures of our antics which i hope to be getting my hands on, at which time i'll post them somewhere for amusement ;) notable moments: jasmin jumping around on stage as he belts out "i'm just a girl" and me being ambushed into singing the olivio newton-john parts of "summer nights".
i also won a 'das keyboard' by getting the best time on a little video game thingy at the kdab booth, much to jesper's chagrin (he had been #1 until i wandered up and bested him by 3 seconds to secure the win).
on the downside, my digital camera crapped out (some "lens error" problem).
and to think: i get to do it all over again in less than 2 weeks in munich.
osdw wrap up; app: in memory explorer io slave
the first osdw is over and i'm very happy with the results. i was extremely stressed out about it the day before it started because as a first time event trying something new with several of the presenters being virgins to this sort of things, it could've been a complete failure as easily as it could've been a complete success. thankfully it exceeded my (and i think most people's) expectations and turned out very well. huzzah!
the crowd was made up almost exclusively of software developers and the feedback forms basically said, "give us more!" in particular, they wanted more hand outs, more lab time and more osdw events.
on the second day, george staikos showed a really cool io slave implementation that built on his kparts presentation of the day before. in the kpart presentation he created a simple web browser in a few dozen lines of code. in his io slave presentation he added a few dozen more lines and then coded up a small slave that allowed one to browse the application's memory via a file manager or file open/save dialog.
in konqueror, app:/ would list the web browser as a folder. in that folder was a text file called "URL". by editting that file and then saving it (using just a plain 'ol text editor) the web browser would load that url. if you changed the url in the web browser, the contents of that virtual text file would change to note the current url.
but that was just the start: when a page was loaded in the browser another file appeared that contained the source code of the page along with a folder that contained every image shown. amazing.
by implementing the proper dcop interface in any app, you can browse in-memory data structures using this ioslave. un-efing-believably cool. george will be committing the code shortly to svn and i'll get some screen shots up.
other cool stuff as osdw included adam's "virtual blackboard" which he used in his database talk for all his examples, scott colin's live porting of a complex Qt4 app written on macos to linux and fun with designer (both Qt3 and Qt4) during one of my presentations in the morning.
all the materials used in the talks (save jason's whose i haven't received yet) have been uploaded to the osdw schedule page. videos are being digitized and will be uploaded when they are available (hopefully next week sometime).
i'm excited about the next osdw events, which i have to start scheduling asap. i have a whole 12 days before i'm off on the road again, so obviously have lots of time to do so ;) the idea is to hold the next north american event in early spring in seattle.
btw, i'm in vancouver next month on the 21st to speak at the local vancouver linux user's group. so if you are in the area, please come out so i can meet you and we can chat about all things kde, open source and ... well ... whatever else comes to mind.
the crowd was made up almost exclusively of software developers and the feedback forms basically said, "give us more!" in particular, they wanted more hand outs, more lab time and more osdw events.
on the second day, george staikos showed a really cool io slave implementation that built on his kparts presentation of the day before. in the kpart presentation he created a simple web browser in a few dozen lines of code. in his io slave presentation he added a few dozen more lines and then coded up a small slave that allowed one to browse the application's memory via a file manager or file open/save dialog.
in konqueror, app:/ would list the web browser as a folder. in that folder was a text file called "URL". by editting that file and then saving it (using just a plain 'ol text editor) the web browser would load that url. if you changed the url in the web browser, the contents of that virtual text file would change to note the current url.
but that was just the start: when a page was loaded in the browser another file appeared that contained the source code of the page along with a folder that contained every image shown. amazing.
by implementing the proper dcop interface in any app, you can browse in-memory data structures using this ioslave. un-efing-believably cool. george will be committing the code shortly to svn and i'll get some screen shots up.
other cool stuff as osdw included adam's "virtual blackboard" which he used in his database talk for all his examples, scott colin's live porting of a complex Qt4 app written on macos to linux and fun with designer (both Qt3 and Qt4) during one of my presentations in the morning.
all the materials used in the talks (save jason's whose i haven't received yet) have been uploaded to the osdw schedule page. videos are being digitized and will be uploaded when they are available (hopefully next week sometime).
i'm excited about the next osdw events, which i have to start scheduling asap. i have a whole 12 days before i'm off on the road again, so obviously have lots of time to do so ;) the idea is to hold the next north american event in early spring in seattle.
btw, i'm in vancouver next month on the 21st to speak at the local vancouver linux user's group. so if you are in the area, please come out so i can meet you and we can chat about all things kde, open source and ... well ... whatever else comes to mind.
back home
after a week on the road, i'm finally back home. and what a week it was: osdw, trolltech dev days and lots of socializing. i'll be catching up on those events in the next couple of blog entries.
getting home was ... interesting. i started out at the wrong airport (san jose vs san diego) and then, when i went to get some money out of a bank machine for transit to the correct airport, discovered i had lost my bank card. gah.
fortunately i had enough cash on me to cover the shuttle fare, but the next shuttle wasn't due for an hour and would only give me 40 minutes to check in and get to the plane before it's scheduled take off time. not good. so i settled in at the waiting area with a couple of books (sun tzu's art of war and "the ethical emperitive" which is about business ethics in the age of globalization) and decided not to worry and just let things happen as they would. the shuttle arrived 15 minutes late and it took more than 5 minutes to get all 6 people on board. i was sure i was going to miss the flight.
at the san francisco airport i went to the international check in with less than 30 minutes to spare. so i ignored the queue and went straight up to a clerk (receiving nasty looks from those in line as i did so) and informed them of my situation. in return, they informed me that canadian flights take off from their domestic area. i always forget that canada is usually a "domestic" flight in the u.s. even though we're a separate country. so i ran to the domestic ticketing counter which wasn't even on the same floor.
arriving there i repeated my line budging (and the line up repeated their glares). the united airlines people were quite nice and efficiently checked me in and directed me to security. unfortunately, it seems when i am about to miss my flight and have been (literally) running around a large airport i trip off the security people's anxiety meters. this led to them not only doing the usual "take off your shoes" routine (which sucks as my doc martens aren't the easiest things to get on and off) but all launched into unpacking all my bags after x-raying them, packing them back up and re-x-raying them before letting me through. i now had 15 minutes before take off to run the couple of hundred meters to the correct gate.
glancing at a monitor on the way past it said the fight was "on time" which i figured would equate to "i'm screwed". but lo! i arrive at the gate and they'd had some issues with getting the plane to the dock and ready for the next set of passengers and were running late! i had 7 minutes to wait until boarding commenced.
last night i fell into the arms of t. and today i got a new bank card. life is, once again, good.
getting home was ... interesting. i started out at the wrong airport (san jose vs san diego) and then, when i went to get some money out of a bank machine for transit to the correct airport, discovered i had lost my bank card. gah.
fortunately i had enough cash on me to cover the shuttle fare, but the next shuttle wasn't due for an hour and would only give me 40 minutes to check in and get to the plane before it's scheduled take off time. not good. so i settled in at the waiting area with a couple of books (sun tzu's art of war and "the ethical emperitive" which is about business ethics in the age of globalization) and decided not to worry and just let things happen as they would. the shuttle arrived 15 minutes late and it took more than 5 minutes to get all 6 people on board. i was sure i was going to miss the flight.
at the san francisco airport i went to the international check in with less than 30 minutes to spare. so i ignored the queue and went straight up to a clerk (receiving nasty looks from those in line as i did so) and informed them of my situation. in return, they informed me that canadian flights take off from their domestic area. i always forget that canada is usually a "domestic" flight in the u.s. even though we're a separate country. so i ran to the domestic ticketing counter which wasn't even on the same floor.
arriving there i repeated my line budging (and the line up repeated their glares). the united airlines people were quite nice and efficiently checked me in and directed me to security. unfortunately, it seems when i am about to miss my flight and have been (literally) running around a large airport i trip off the security people's anxiety meters. this led to them not only doing the usual "take off your shoes" routine (which sucks as my doc martens aren't the easiest things to get on and off) but all launched into unpacking all my bags after x-raying them, packing them back up and re-x-raying them before letting me through. i now had 15 minutes before take off to run the couple of hundred meters to the correct gate.
glancing at a monitor on the way past it said the fight was "on time" which i figured would equate to "i'm screwed". but lo! i arrive at the gate and they'd had some issues with getting the plane to the dock and ready for the next set of passengers and were running late! i had 7 minutes to wait until boarding commenced.
last night i fell into the arms of t. and today i got a new bank card. life is, once again, good.
Monday, October 17, 2005
on the road again
so today i'm in palo alto. flew up from san diego yesterday. i'm sitting in the trolltech offices here in a cubical i commandeered hacking on the proper qt4 replacement for makekdewidgets. i'm calling it unserwidgets because i want to be just like coolo.
i feel unbelievably tired. i might go up to san fran tomorrow. dunno yet.
i feel unbelievably tired. i might go up to san fran tomorrow. dunno yet.
Friday, October 14, 2005
osdw day 1
yesterday's osdw track went really well. we covered the basics including setting up a build env, dcop, kparts, makefiles, basics of kdelibs and qt and some of our xml driven devel tools. many of those who attended came up afterwards and said how much they enjoyed the material covered. more than a few were surprised and impressed by the kde development tools and APIs.

microsoft has sent a developer evangelist from the area to attend the sessions. i think he's in scott colin's talk on porting windows apps to linux right now, actually. i talked with him over lunch yesterday and he was pretty tight lipped about his reasons and hopes in attending. just keeping up with the competition i'm sure.

lunch was great, with lots of hot pizza being eaten and hacking going on (as you can see above). some of the attendees asked if we were going to hold a purely hacking session at some point; perhaps we'll do that at future events. i really didn't think about that this time around.
the linspire people have been beyond amazing in their support. they are picking us up each morning at the hotel and driving us back in the evening. they arranged for a dinner out last night at a local brew-pub:

several linspire employees joined us for dinner. we chatted about all sorts of things from technology to politics to beer to ... after a few finish-off-the-evening scotches at a little place down the street from the restaurant called excelsior i headed back to the hotel and crashed out, but not before seeing some of the amazingly cool stuff george has whipped up for his presentation today including an ioslave that uses dcop to control a web browser in some pretty innovative ways. when he posts the code later i'll blog more about it. =)

microsoft has sent a developer evangelist from the area to attend the sessions. i think he's in scott colin's talk on porting windows apps to linux right now, actually. i talked with him over lunch yesterday and he was pretty tight lipped about his reasons and hopes in attending. just keeping up with the competition i'm sure.

lunch was great, with lots of hot pizza being eaten and hacking going on (as you can see above). some of the attendees asked if we were going to hold a purely hacking session at some point; perhaps we'll do that at future events. i really didn't think about that this time around.
the linspire people have been beyond amazing in their support. they are picking us up each morning at the hotel and driving us back in the evening. they arranged for a dinner out last night at a local brew-pub:

several linspire employees joined us for dinner. we chatted about all sorts of things from technology to politics to beer to ... after a few finish-off-the-evening scotches at a little place down the street from the restaurant called excelsior i headed back to the hotel and crashed out, but not before seeing some of the amazingly cool stuff george has whipped up for his presentation today including an ioslave that uses dcop to control a web browser in some pretty innovative ways. when he posts the code later i'll blog more about it. =)
Thursday, October 13, 2005
osdw.exec()
the first open source desktop workshops just started. pictures to follow this afternoon, but the speaking track is off to a running start. the room is full, people are excited .... wow.
the linspire people have been amazing, ferrying us to and from the hotels and ensuring we have everything we need. kudos to them!
also, major thanks to trolltech and intel for the funding, not to mention corefunction for providing the osdw branded lanyards and pens.
last night i was thinking what a crazy concept osdw really is: a set of workshops to service a market that is admitedly fairly small (open source desktop developers) so as to grow that market. so crazy ... it just might work! ;)
tom just asked how many people are new to linux development and people raised their hands! these are people who have never developed on an open source platform before, let alone the open source desktop.
i'm pumped. it's also cool to get together with some of the hackers i don't see nearly enough under the pretense of being presenters =)
the linspire people have been amazing, ferrying us to and from the hotels and ensuring we have everything we need. kudos to them!
also, major thanks to trolltech and intel for the funding, not to mention corefunction for providing the osdw branded lanyards and pens.
last night i was thinking what a crazy concept osdw really is: a set of workshops to service a market that is admitedly fairly small (open source desktop developers) so as to grow that market. so crazy ... it just might work! ;)
tom just asked how many people are new to linux development and people raised their hands! these are people who have never developed on an open source platform before, let alone the open source desktop.
i'm pumped. it's also cool to get together with some of the hackers i don't see nearly enough under the pretense of being presenters =)
Wednesday, October 12, 2005
morning blog
you know what the best part of catching the first flight out of the country in the morning is? the 3 am blogging!
actually, that's a trick question. this is nothing best about being up at 3am to catch a friggin' airplane. it's evil, i tell you, pure unadulterated evil.
see you in san diego (and then san jose a few days later)
actually, that's a trick question. this is nothing best about being up at 3am to catch a friggin' airplane. it's evil, i tell you, pure unadulterated evil.
see you in san diego (and then san jose a few days later)
Tuesday, October 11, 2005
recommended reading
by 11:30 tomorrow i'll be in san diego. i'm running around doing the usual "day before" getting rid routine. so i have no time to actually blog for real. but even if i did, i don't think i would; instead, i'd point people to the recent entries of kevin "ervin" ottens (>here and here>) and john palmieri (here) to see a really encouraging example of how things can work between the open source desktop projects.
i also spoke with ervin a bit about freedesktop.org the other day. well, actually i listened while he shared some perspective on it and i think he's got some great ideas on how to kick it up a notch.
if you are trying to build a cross desktop project (i dunno ... say for icons?) i'd really suggest taking a look at how ervin and john and the others involved with that set of technologies are doing their thing.
i also spoke with ervin a bit about freedesktop.org the other day. well, actually i listened while he shared some perspective on it and i think he's got some great ideas on how to kick it up a notch.
if you are trying to build a cross desktop project (i dunno ... say for icons?) i'd really suggest taking a look at how ervin and john and the others involved with that set of technologies are doing their thing.
Monday, October 10, 2005
add some clarity to my insane proposal
for the record, when i suggested providing a name to help differentiate between "kde apps" and "apps that the kde project ships" i wasn't seriously suggesting getting rid of the term "kde" or changing the project's name either. i mean, even if we wanted to, the sheer weight of trademark efforts, domain names, references and current name recognition rule it out immediately. nor do i think we should rename our libraries as that would mean changing things both for 3rd party developers (who could no long say, "i'm writing a kde app") but also for all our library code that says "KDE" in it.
rather, i was hoping people would think of the challenge of defining what a kde app is, where "kde app" is a superset of "app that the kde project ships". i was even thinking someone might profer that "apps written with kde libs aren't necessarily 'kde apps'"
to be clear: i think that applying a uniform brand to the set of apps that we ship might make sense. consider, for a moment, that we decided to call the set of applications we ship with kde4 "grolabonk". then we could say that app Foo was a grolabonk app. grolabonk itself would be a term we'd reserve for "kde apps that the kde project ships".
this actually isn't very revolutionary of a concept if we consider that koffice already does this. kword is a kde application shipped by the koffice project. it is a "koffice" app. it's also a "kde app". the ownership and grouping is fairly obvious.
as to what we'd name it exactly ... well, that's probably better left to a marketing wonk somewhere. we developers (and end users for that matter ;) tend to suck at coming up with names. for those of us who are members of the kde project, it is less important what the actual name is (as long as we don't hate it, of course =) than it is that we're ok with having such a name (assuming it's a good one).
this is sort of like how i don't try and create icons but let people with artistic talent make them. i do often start out with a "i need an icon that communicates $CONCEPT", but the actual implementation is an artist's job. and so it should be similar with a name IMHO.
of cousre we still get to name the betas ;) (btw, i think "turing", "dijkstra", "nash" and other deceased giants in the field of information science would make a good theme.) and yeah, we need the numbers (e.g. kde x.y.z) for packagers and geeks alike.
anyways.. IMHO a name should:
i also realize that i'm thinking about this a long time in advance of even needing such things. but to be fair to those who would be doing the art and marketing, we need to having something at least 6 months in advance of release. and knowing how involved the process of getting consensus can be within a project the size and nature of kde, i figured now was a good time to start that process. =)
rather, i was hoping people would think of the challenge of defining what a kde app is, where "kde app" is a superset of "app that the kde project ships". i was even thinking someone might profer that "apps written with kde libs aren't necessarily 'kde apps'"
to be clear: i think that applying a uniform brand to the set of apps that we ship might make sense. consider, for a moment, that we decided to call the set of applications we ship with kde4 "grolabonk". then we could say that app Foo was a grolabonk app. grolabonk itself would be a term we'd reserve for "kde apps that the kde project ships".
this actually isn't very revolutionary of a concept if we consider that koffice already does this. kword is a kde application shipped by the koffice project. it is a "koffice" app. it's also a "kde app". the ownership and grouping is fairly obvious.
as to what we'd name it exactly ... well, that's probably better left to a marketing wonk somewhere. we developers (and end users for that matter ;) tend to suck at coming up with names. for those of us who are members of the kde project, it is less important what the actual name is (as long as we don't hate it, of course =) than it is that we're ok with having such a name (assuming it's a good one).
this is sort of like how i don't try and create icons but let people with artistic talent make them. i do often start out with a "i need an icon that communicates $CONCEPT", but the actual implementation is an artist's job. and so it should be similar with a name IMHO.
of cousre we still get to name the betas ;) (btw, i think "turing", "dijkstra", "nash" and other deceased giants in the field of information science would make a good theme.) and yeah, we need the numbers (e.g. kde x.y.z) for packagers and geeks alike.
anyways.. IMHO a name should:
- sound good
- easily support effective marketing messages for each of our target audiences
- provide a brand that we can apply to the apps that ship with a kde.org release
i also realize that i'm thinking about this a long time in advance of even needing such things. but to be fair to those who would be doing the art and marketing, we need to having something at least 6 months in advance of release. and knowing how involved the process of getting consensus can be within a project the size and nature of kde, i figured now was a good time to start that process. =)
a kde app by any other name...
over on theDot there is a thread brewing over a statement that said koffice isn't a kde app. inge took exception to this (and i agree with him there), stating that because it was shipped by the kde project, it's a kde app. this got me to thinking (again) on this: what is a kde app?
IMHO if it's an app written using kde libs, then it's a KDE app. if it is also maintained by the kde project itself (which is also rather nubulous), then it's a kde app maintained by kde. how confusing! =)
here is how i arrived at this point of view: few would argue that an app (no matter who wrote it) written using win32 APIs is a Windows app. even if it doesn't come from Microsoft. fortunately for Microsoft they have two names (Microsoft and Windows) where we have one (KDE) and so they don't suffer from similar ambiguity. same for Apple and Macintosh: not all Mac apps reflect on Apple because not all Macintosh apps are written by Apple, whereas any app labeled "KDE" reflects on "KDE the project" due to confusing naming.
on the one hand we want to say, "digiKam, k3b and amaroK are kde apps" (and most of our users and observers would agree with that statement today) so that we can make the argument for kde having a diverse stable of applications. on the other hand, we probably want to distance the kde project itself from shoddy apps and so hesitate to call all apps using kde libs "kde apps".
so do we change the name of the desktop, or do we change the name of the project? ok, i'm kidding. well, sort of. maybe.
we need a mechanism by which to recognize kde apps that aren't maintained by the KDE project as being "KDE apps" without it being confused as being "an app maintained by KDE". we need two nomenclatures.
maddog suggested to me in january that we ought to create a process by which applications can become certified as kde apps. but i'm not sure that's a workable scenario: it's a lot of overhead for both us and the 3rd party app developers and would require tracking changes from version to version. hell, we don't even do that for "maintained by kde" apps even.
i begin to consider, in a moment of complete insanity, that perhaps we ought to call kde 4.0 something else. let's see: microsoft windows, apple macintosh, ibm os/2, kde ?
IMHO if it's an app written using kde libs, then it's a KDE app. if it is also maintained by the kde project itself (which is also rather nubulous), then it's a kde app maintained by kde. how confusing! =)
here is how i arrived at this point of view: few would argue that an app (no matter who wrote it) written using win32 APIs is a Windows app. even if it doesn't come from Microsoft. fortunately for Microsoft they have two names (Microsoft and Windows) where we have one (KDE) and so they don't suffer from similar ambiguity. same for Apple and Macintosh: not all Mac apps reflect on Apple because not all Macintosh apps are written by Apple, whereas any app labeled "KDE" reflects on "KDE the project" due to confusing naming.
on the one hand we want to say, "digiKam, k3b and amaroK are kde apps" (and most of our users and observers would agree with that statement today) so that we can make the argument for kde having a diverse stable of applications. on the other hand, we probably want to distance the kde project itself from shoddy apps and so hesitate to call all apps using kde libs "kde apps".
so do we change the name of the desktop, or do we change the name of the project? ok, i'm kidding. well, sort of. maybe.
we need a mechanism by which to recognize kde apps that aren't maintained by the KDE project as being "KDE apps" without it being confused as being "an app maintained by KDE". we need two nomenclatures.
maddog suggested to me in january that we ought to create a process by which applications can become certified as kde apps. but i'm not sure that's a workable scenario: it's a lot of overhead for both us and the 3rd party app developers and would require tracking changes from version to version. hell, we don't even do that for "maintained by kde" apps even.
i begin to consider, in a moment of complete insanity, that perhaps we ought to call kde 4.0 something else. let's see: microsoft windows, apple macintosh, ibm os/2, kde ?
Saturday, October 08, 2005
is this why i don't have cable?
i caught a bite to eat in a place that had some t.v.s playing and a condom commercial came on the screen. in it the couple, who were clothed and standing side by side a foot apart, were so amazed by the product (clothed?! side by side?!) that their heads exploded into flame. yeah, these condoms are that good. (whatever)
then i noticed at the bottom of the screen the word "simulation".
what?! is there really someone out there who would see these flaming heads and think that this is what actually happens when you use this brand of condoms? because it's either that or the advertising world thinks were just that stupid. i'm speechless.
i've also noticed that foreign cities look more foreign in movies than they do in real life. and t. seems to see things in hand-to-hand fight scenes that are opaque to me; i see it in her eyes when she watches them. she's working late tonight finishing up a SAN installation post-work-hours. sexy. ;)
then i noticed at the bottom of the screen the word "simulation".
what?! is there really someone out there who would see these flaming heads and think that this is what actually happens when you use this brand of condoms? because it's either that or the advertising world thinks were just that stupid. i'm speechless.
i've also noticed that foreign cities look more foreign in movies than they do in real life. and t. seems to see things in hand-to-hand fight scenes that are opaque to me; i see it in her eyes when she watches them. she's working late tonight finishing up a SAN installation post-work-hours. sexy. ;)
Friday, October 07, 2005
kontact tip of the (or at least my) day
i'm a huge fan of the keyboard, preferring to keep my hands on it as much as possible and viewing the mouse somewhere between "necessary evil" and "niche tool of occasionally surprising usefulness". so one of the things that always bugged me in kontact was that i couldn't (or so i thought) switch between email and the calendar with the keyboard. i could do just about everything else but that.
so i asked in #kontact and it turns out that you can switch between the various parts using the keyboard with control+#. this is one of those things you just have to know as it isn't exposed anywhere in the gui. now i'm a much happier camper (it's the small things in life, really).
but being lazy i don't like to count and i have better things to do than remember that "notes is control+6" (heaven forbid i ever add more kontact plugins ;). so i spent 15 minutes and whipped up a little patch that displays the number of the items in little bubbles when you hold down the control key. you can see the results in the screenshot to the right.
the patch can be had here but note that it's not perfect. it doesn't filter on the whole window (so if you manage to switch to the window without giving the main area focus it won't work) and if you hold down control and open a dialog it won't get the keyrelease event and turn off the bubbles (making the event filter pay attention to ctrl+ keypresses would take care of that, though). it may also be nice to have a slight delay before showing the bubbles so a quick command invocation doesn't cause them to flicker in and out.
too bad 3.5 is already feature frozen. hmm.. maybe i could pretend this is a usability bug and sneak it in after polishing it up? ;P
so i asked in #kontact and it turns out that you can switch between the various parts using the keyboard with control+#. this is one of those things you just have to know as it isn't exposed anywhere in the gui. now i'm a much happier camper (it's the small things in life, really).
but being lazy i don't like to count and i have better things to do than remember that "notes is control+6" (heaven forbid i ever add more kontact plugins ;). so i spent 15 minutes and whipped up a little patch that displays the number of the items in little bubbles when you hold down the control key. you can see the results in the screenshot to the right.the patch can be had here but note that it's not perfect. it doesn't filter on the whole window (so if you manage to switch to the window without giving the main area focus it won't work) and if you hold down control and open a dialog it won't get the keyrelease event and turn off the bubbles (making the event filter pay attention to ctrl+
too bad 3.5 is already feature frozen. hmm.. maybe i could pretend this is a usability bug and sneak it in after polishing it up? ;P
Thursday, October 06, 2005
a video player that just plays video
one of the apps i showed the audience in ohio last weekend was the video player codeine. it's everything i need and just as important it's not anything i don't.when you start it up without specifying a file or url (which causes it to immediately start playing that file), you get this:

as you can see it asks what you want to do, including listing the last few videos you watched. this prevents me from have to jump immediately to the play menu and makes it obvious how to use it. and once you pick what you want to do you get a very sensible window:

when the video starts a little overlay appears in one corner asking if you like it to resize the window the size of the video and if you ignore it for a few seconds it just slides back out of the window.
the toolbar has a play button, a play meter and a full screen toggle. if you go into DVD mode you get a little menu toggle button too. that's it. no volume, no quality adjusters (there's a dialog for that available under the setting menu though), no system tray icon, no playlists, no forward/back/up/down/inside out buttons ...
it just plays video. if i had to vote for a video player for KDE4, codeine would be it.
now the configuration dialog is a bit intense, as it seems to let you set just about everything imaginable in xine (the media engine it uses). but the only reason i know what it looks like is because i checked it just before writing this blog entry. up till now i've never had a single reason to configure this app because it balances features and control with sensible defaults. for me, this is video player perfection =)
so max howell, i take my hat off to you and send my gratitude for codeine. =)
reblog
ben, i agree that if you remove the "web" bit of "web based office suite" and just have nice revisioning and transparent server-side storage as an option, then you could have something that was great. but you know how many "oh my god! word processing and spreadsheets in my web browser! ajax to the rescue! *cream*" articles i've read in the last 2 weeks? the web browser is not and never will be the platform for such apps and i decided to pretend i was david letterman for a bit. ;)
and wow, tuxipuxi, who shit in your cereal? go take a look at most other open source projects for documentation and then come back to this conversation.
now what you and i were talking about are fairly different animals. note that i talked about API documentation. higher level documentation (e.g. "what are these sets of classes for") supports that and we certainly don't have enough of it right now. if you've read my previous blog entries or read my emails on the matter to kde-core-devel, you'll know exactly where i stand on the issue: we need high level documentation that covers comprehensively what we have to offer.
so we're not in disagreement on that matter.
but to say to all the people who have written API documentation, and there is a ton of that available for KDE, as well as to those that have written what higher-level docu we do have that they've failed utterly and miserably is pretty lame imho.
you did mention qt has better documentation, and that's very true. since kde is based on qt, we actually benefit from that. in fact, i consider qt's good documentation coverage a huge asset in its favour and, in turn, in ours.
so, are you planning on going on a documentation writing binge? or was that just a documentation writing "whinge"? ;)
and wow, tuxipuxi, who shit in your cereal? go take a look at most other open source projects for documentation and then come back to this conversation.
now what you and i were talking about are fairly different animals. note that i talked about API documentation. higher level documentation (e.g. "what are these sets of classes for") supports that and we certainly don't have enough of it right now. if you've read my previous blog entries or read my emails on the matter to kde-core-devel, you'll know exactly where i stand on the issue: we need high level documentation that covers comprehensively what we have to offer.
so we're not in disagreement on that matter.
but to say to all the people who have written API documentation, and there is a ton of that available for KDE, as well as to those that have written what higher-level docu we do have that they've failed utterly and miserably is pretty lame imho.
you did mention qt has better documentation, and that's very true. since kde is based on qt, we actually benefit from that. in fact, i consider qt's good documentation coverage a huge asset in its favour and, in turn, in ours.
so, are you planning on going on a documentation writing binge? or was that just a documentation writing "whinge"? ;)
Wednesday, October 05, 2005
web office suites? *rofl*
(i almost forgot that this was sitting on my hard drive from the other day, and we couldn't have a blog entry just go missing, could we? ;)
the top 10 reasons why i fart in the general direction of web based office suites:
10. privacy: aside from yo' momma, who wants their personal data on someone else's servers?
9. the web browser provides an interface (menus, toolbars) and you want to shove another one, even more complex inside of it's little viewing area? this may work ok for email, but .... a word processor? c'mon!
8. jwz hasn't yet figured out how a web office suite will get him (or the average college dorm rat) laid, therefore i must pass on it.
7. the prospect of purchasing new servers for the office to run software we already have working just fine on the desktop is inane, thank you very much
6. training costs, anyone?
5. there have been web based (though not AJAX, granted) office apps for years and they haven't caught on
4. it's bad enough reading email chews up RAM because it's delivered via a web browser, do we really need a word processor that requires 1GB of
RAM?
3. 100% 24x7 networking in the office is a dream we're still years away from achieving
2. even with AJAX, the web browser isn't nearly rich enough to meet the demands of spreadsheet and desktop database users (and no, XUL isn't ev
en close to being wide spread enough to matter). try getting groucho in marketing to let go of his linked-to-million-other-data-sources-realtim
e-updating-charts-with-a-billion-sheets-and-split-frames-with-funky-data-input-widgets-on-top spreadsheet.
1. there's no easily accessible and dependable network on the airplane, most coffee shops, on the highways between major cities on the beach or just about anywhere else that isn't an office or house in a developed country. and if your spreadsheet doesn't let me read and edit my information wherever the hell i happen to be, your app doesn't get used. period.
IMHO, web based office suites are being hyped for two reasons:
0. everyone loves raymond. and by raymond i mean buzzwords. and by buzzwords i mean "AJAX", "browser based apps" and "google".
1. they're trying to solve the ubiquity problem, but there are better ways to do that (and they even run in a web browser if you really must!)
and if, like ben meyer, you too want remote storage and revisioning ... that has nothing to do with the web ;)
so repeat after me: the web is a cool platform, but it's not the best platform for all applications.
the top 10 reasons why i fart in the general direction of web based office suites:
10. privacy: aside from yo' momma, who wants their personal data on someone else's servers?
9. the web browser provides an interface (menus, toolbars) and you want to shove another one, even more complex inside of it's little viewing area? this may work ok for email, but .... a word processor? c'mon!
8. jwz hasn't yet figured out how a web office suite will get him (or the average college dorm rat) laid, therefore i must pass on it.
7. the prospect of purchasing new servers for the office to run software we already have working just fine on the desktop is inane, thank you very much
6. training costs, anyone?
5. there have been web based (though not AJAX, granted) office apps for years and they haven't caught on
4. it's bad enough reading email chews up RAM because it's delivered via a web browser, do we really need a word processor that requires 1GB of
RAM?
3. 100% 24x7 networking in the office is a dream we're still years away from achieving
2. even with AJAX, the web browser isn't nearly rich enough to meet the demands of spreadsheet and desktop database users (and no, XUL isn't ev
en close to being wide spread enough to matter). try getting groucho in marketing to let go of his linked-to-million-other-data-sources-realtim
e-updating-charts-with-a-billion-sheets-and-split-frames-with-funky-data-input-widgets-on-top spreadsheet.
1. there's no easily accessible and dependable network on the airplane, most coffee shops, on the highways between major cities on the beach or just about anywhere else that isn't an office or house in a developed country. and if your spreadsheet doesn't let me read and edit my information wherever the hell i happen to be, your app doesn't get used. period.
IMHO, web based office suites are being hyped for two reasons:
0. everyone loves raymond. and by raymond i mean buzzwords. and by buzzwords i mean "AJAX", "browser based apps" and "google".
1. they're trying to solve the ubiquity problem, but there are better ways to do that (and they even run in a web browser if you really must!)
and if, like ben meyer, you too want remote storage and revisioning ... that has nothing to do with the web ;)
so repeat after me: the web is a cool platform, but it's not the best platform for all applications.
applications: getting to good
alan cox, kernel developer cum mba and red hat fellow, was quoted today as saying that when it comes to the open source desktop, "What matters are the applications."
from a user's point of view, obviously he is correct. when i'm at a convention showing kde to people, for most users it's the apps that make their jaws drop and their feet run to the nearest kde ftp server. from a "getting work damone" perspective, just as your average user doesn't (or at least shouldn't) care what operating system they are using they probably couldn't care much about the underlying desktop technology that makes their email application and word processor go.
this doesn't mean that the desktop framework isn't important, however. now, whether or not the operating system and desktop environment is Free software is no small concern, and i'm fairly rabidly pro-open source; but even looking at it from a strictly nickels-n-dimes sense it becomes obvious that the desktop itself matters a lot because the applications are what matter.
good applications, and more importantly good sets of applications, come from a combination of two things: determined (primarily) and talented (secondarily, but still critical) application developers and a good development framework. you can have excellent app developers, but if you give them crap APIs and technology to work with they'll struggle to make something half decent and spend twice as long getting even that far. and you can forget about good sets of applications.
a good application development framework lets app developers:
to that end, kde has one of the best development frameworks out there today. why? here are my thoughts on that:
the kde project has no corporate agenda like microsoft or apple who have a vested interest in protecting the application spaces they each play in. you think microsoft wants to make it easy for others to create competing word processors? nope. in contrast, kde is a community driven effort whose sole goals are to create awesome technology and get it out to as many users and developers as possible. that means we're incentivated (to use a horrid manageresque term ;) to make a good framework, even when it might help make a 3rd party app better than one of our own.
the kde project is committed to documenting our interfaces. due to the diligence of people such as the folks at the english breakfast network (yeah, i'm looking at you, ade :) and the hundreds of hackers who continue to keep their API docu up to snuff, we have comprehensive API documentation which is further supported with further developer-centric information. the Qt documentation is even more impressive.
and what's nice is that our docs tend to be accurate and we never try and purposefully obfuscate things. we couldn't hide if we wanted to: it's open source! and additions to our documentation are always accepted, making it a community effort.
not resting on our laurels, we've been talking to 3rd party developers and finding out what more they need to really rock the kasbah when developing and i think we have a pretty good handle on it now. things are a-brewing for KDE4 that will take us to the next level in documentation.
we have superb technology. and when i say superb, i mean really nice. from DCOP to KParts to "3 lines of code and you have fully user-customizable toolbars" to XML based configuration definition (complete with the code generation and the ability to drive your config dialogs with it) to zero-fuss network-transparent data access (think "every app can open and save via $NETWORK_PROTOCOL") to quick 'n easy network-distribution of configuration and data updates to consistent and clear API design to ... well, you get the idea.
and that's stuff that's available today in KDE3, which is a platform that's had some 5 years of use and maturation. we're already working on KDE4 which builds upon that and will be bringing even better support for things like multimedia, component technology and more.
you're the app developer, so you choose how you like to develop. prefer python or ruby to c++? hey, go for it! don't like IDE's? (we do have a great one in kdevelop if you do, though) then break out the kwrite/vim/emacs and have at it! don't like developing on linux? do it on pretty much any other UNIX then; and with KDE4 you'll have the option of native environment hacking on MacOS X and MS Windows. just because you write your app with kde libraries doesn't mean kde is going to try and dictate the mechanics of doing so to you.
it's all open source. this means not vendor lock in, no fear building on a toolkit today that you won't have access to tomorrow and every invitation to help refine the platform upon which you base your applications on.
i could go on for another few thousand words, i'm sure .. but that's the gist of it from my perspective. when i look at the amazing applications we have for KDE these days, it doesn't surprise me in the least: we have some awesome app developers out there and they have an awesome app framework to build their programs with.
so when wise people like alan cox say the applications are what matter, he also means is that we better have the best possible application development framework available going for us.
from a user's point of view, obviously he is correct. when i'm at a convention showing kde to people, for most users it's the apps that make their jaws drop and their feet run to the nearest kde ftp server. from a "getting work damone" perspective, just as your average user doesn't (or at least shouldn't) care what operating system they are using they probably couldn't care much about the underlying desktop technology that makes their email application and word processor go.
this doesn't mean that the desktop framework isn't important, however. now, whether or not the operating system and desktop environment is Free software is no small concern, and i'm fairly rabidly pro-open source; but even looking at it from a strictly nickels-n-dimes sense it becomes obvious that the desktop itself matters a lot because the applications are what matter.
good applications, and more importantly good sets of applications, come from a combination of two things: determined (primarily) and talented (secondarily, but still critical) application developers and a good development framework. you can have excellent app developers, but if you give them crap APIs and technology to work with they'll struggle to make something half decent and spend twice as long getting even that far. and you can forget about good sets of applications.
a quick diversion: what do i mean by "sets of applications"? very few applications get used on their own these days. the UNIX shell was the harbinger of this, of course, as it showed some 30 years ago that when applications work seamlessly together it makes for a most compelling environment. so today our instant messaging app is expected to work with our global address book; our web browser and our feed agregator should work together; our office apps should all integrate with each other (not to mention with the groupwware); calendaring and mail being workmates is a no-brainer today as is good groupware server support. this means that applications that stand on their own, while they do exist, are rarer and rarer and of increasingly lesser value than those that play well with others. extra points for apps that give the user a choice in which application and services it will work with. (ok, so that wasn't such a quick diversion)
a good application development framework lets app developers:
- produce less buggy code
- interfaces that conform to standards
- work quicker (less lines of code, fewer unexpected problems)
- integrate and interact easily with other applications
to that end, kde has one of the best development frameworks out there today. why? here are my thoughts on that:
the kde project has no corporate agenda like microsoft or apple who have a vested interest in protecting the application spaces they each play in. you think microsoft wants to make it easy for others to create competing word processors? nope. in contrast, kde is a community driven effort whose sole goals are to create awesome technology and get it out to as many users and developers as possible. that means we're incentivated (to use a horrid manageresque term ;) to make a good framework, even when it might help make a 3rd party app better than one of our own.
example: we ship with juk, a great little media player that is playlist centric, kicks ass at tagging and otherwise tries its best to stay out of your way while playing your music. meanwhile, amaroK is an application that is developed by people in our greater development community which is so amazingly killer in its network integration, hardware player support (think: iPod) and general eye candy and usability sweetness that the Ubuntu project actually bent their freeze date rules to allow it into their next release! and instead of fearing for juk's popularity, everyone (including the juk authors i know) cheer for this success. ask steve jobs what he'd think of someone competing with (and beating out feature-wise) iTunes on MacOS.
the kde project is committed to documenting our interfaces. due to the diligence of people such as the folks at the english breakfast network (yeah, i'm looking at you, ade :) and the hundreds of hackers who continue to keep their API docu up to snuff, we have comprehensive API documentation which is further supported with further developer-centric information. the Qt documentation is even more impressive.
and what's nice is that our docs tend to be accurate and we never try and purposefully obfuscate things. we couldn't hide if we wanted to: it's open source! and additions to our documentation are always accepted, making it a community effort.
not resting on our laurels, we've been talking to 3rd party developers and finding out what more they need to really rock the kasbah when developing and i think we have a pretty good handle on it now. things are a-brewing for KDE4 that will take us to the next level in documentation.
we have superb technology. and when i say superb, i mean really nice. from DCOP to KParts to "3 lines of code and you have fully user-customizable toolbars" to XML based configuration definition (complete with the code generation and the ability to drive your config dialogs with it) to zero-fuss network-transparent data access (think "every app can open and save via $NETWORK_PROTOCOL") to quick 'n easy network-distribution of configuration and data updates to consistent and clear API design to ... well, you get the idea.
and that's stuff that's available today in KDE3, which is a platform that's had some 5 years of use and maturation. we're already working on KDE4 which builds upon that and will be bringing even better support for things like multimedia, component technology and more.
you're the app developer, so you choose how you like to develop. prefer python or ruby to c++? hey, go for it! don't like IDE's? (we do have a great one in kdevelop if you do, though) then break out the kwrite/vim/emacs and have at it! don't like developing on linux? do it on pretty much any other UNIX then; and with KDE4 you'll have the option of native environment hacking on MacOS X and MS Windows. just because you write your app with kde libraries doesn't mean kde is going to try and dictate the mechanics of doing so to you.
it's all open source. this means not vendor lock in, no fear building on a toolkit today that you won't have access to tomorrow and every invitation to help refine the platform upon which you base your applications on.
i could go on for another few thousand words, i'm sure .. but that's the gist of it from my perspective. when i look at the amazing applications we have for KDE these days, it doesn't surprise me in the least: we have some awesome app developers out there and they have an awesome app framework to build their programs with.
so when wise people like alan cox say the applications are what matter, he also means is that we better have the best possible application development framework available going for us.
Monday, October 03, 2005
ohio linux fest
just got back from the ohio linux fest and i can sum it up this way: it rocked!. i have to give mad props to the wonderful bunch of people who made it happen this year. i've put up a small photo album documenting the event on my website.

some of the organizers (and a syphonyOS dev) the evening before the show taking care of last minute details like ... beer ;)
there were 1438 registrees by the time i arrived and over 700 of them showed up to pack the event booths and talks.

hundreds attended the kde talk, here seen piling out of the talk room and heading for the booth which was inundated with people
the booth itself was simple but functional with both kde 3.4 and 3.5 on display. we had three people come out to help keep the booth running: ryan of superkaramba and plasma, jaison of kjots and
steve who's a dedicated kde user/fan and poly sci student at the local university. another kde hacker showed up, madpenguin8, who works on amarok. so we had 4 kde hackers there, three from the columbus area. that number alone surprised and impressed me.

ryan, jaison and steve kickin' it at the kde booth
we had our hands full though as the kde booth was one of the busier ones with everyone at the booth talking about kde and related topics pretty much the entire time. some of the more notable visitors included:
people were particularly impressed with things like kiosk, kstars, koffice, system:/, the add network folder wizard and the overall power, polish and integration of kde. we also blew a few of the developers minds by showing them icecream in action:

the zero config, free software, distributed build, cross-compiling coolness with a cool monitoring app that is icecream
if you're a kde contributor and haven't done one of these kinds of shows before, i really recommend you do so in the near future. there are few things as satisfying as having people come up, one after the other, and say "thank you for kde. it's amazing and i love it."
we also managed to smash some people's perceptions of the whole "kde versus gnome" thing when jorge castro delivered a kick ass presentation on ubuntu and gnome and then popped up a slide titled "kubuntu" with my name on it and asked me to take the stage for a few minutes to fill people in on the kde-ified version of ubuntu.
jorge's talk was after mine, which took place in the morning right before lunch. my kde talk was very well attended and the room packed with people. i covered kde 3.5 and what was in it from multimedia to groupware to educational software to file management and more. my slides were really simple: the first slide asked the question "what is kde" and then the remaining slides simply had the name of the area of the desktop i was going to talk about next with the icons of the apps i was going to demo. then i'd switch desktops and demo those apps. people loved the live demos and i loved not having to type a whole bunch of text for my slides ;)
after the talk a lot of those who were in the audience commented on how they were not aware of many of the features and applications i had shown. there's audio (and maybe even video?) of my presentation and i'll be putting them up online when i get my hands on it.
and of course, we also partied hard. i didn't get much sleep while there, as i went out on the town with ryan the first night (got home at 03:00) and then hit the cool afterparty the linuxfest crew threw on saturday. let's just say i didn't get to a bed until i disembarked the plane on sunday.
i would be remiss to not say "thank you, thank you, thank you" to ryan for sharing his house and car with me, and his wife for letting me keep him out to all hours of the night. dude: you rock.
and to everyone who was there at this year's ohio fest: i look forward to seeing you again next year. and to those who didn't go: you missed an awesome venue, don't make the same mistake twice. =)

some of the organizers (and a syphonyOS dev) the evening before the show taking care of last minute details like ... beer ;)
there were 1438 registrees by the time i arrived and over 700 of them showed up to pack the event booths and talks.

hundreds attended the kde talk, here seen piling out of the talk room and heading for the booth which was inundated with people
the booth itself was simple but functional with both kde 3.4 and 3.5 on display. we had three people come out to help keep the booth running: ryan of superkaramba and plasma, jaison of kjots and
steve who's a dedicated kde user/fan and poly sci student at the local university. another kde hacker showed up, madpenguin8, who works on amarok. so we had 4 kde hackers there, three from the columbus area. that number alone surprised and impressed me.

ryan, jaison and steve kickin' it at the kde booth
we had our hands full though as the kde booth was one of the busier ones with everyone at the booth talking about kde and related topics pretty much the entire time. some of the more notable visitors included:
- a sys admin from the local noaa office who had questions about deploying kde since the noaa has mandated a move to kde and linux on the desktop. the noaa is responsible for weather forecasting among other things in the usa, so this was great news to hear.
- people from the ohio state university and a local library who were deploying kde for the staff
- a group of people from devry who were doing reports on open source, including one fellow who's a recruiter for the national guard and getting his CS degree. his topic was a comparison of kde and gnome, though he is really only familiar with ms windows. by the time he left the kde booth some 20 minutes later he was thoroughly impressed and excited and said he was going to install kde when he got home.
- hundreds of others who had amazing things to say about kde and their experiences with it...
people were particularly impressed with things like kiosk, kstars, koffice, system:/, the add network folder wizard and the overall power, polish and integration of kde. we also blew a few of the developers minds by showing them icecream in action:

the zero config, free software, distributed build, cross-compiling coolness with a cool monitoring app that is icecream
if you're a kde contributor and haven't done one of these kinds of shows before, i really recommend you do so in the near future. there are few things as satisfying as having people come up, one after the other, and say "thank you for kde. it's amazing and i love it."
we also managed to smash some people's perceptions of the whole "kde versus gnome" thing when jorge castro delivered a kick ass presentation on ubuntu and gnome and then popped up a slide titled "kubuntu" with my name on it and asked me to take the stage for a few minutes to fill people in on the kde-ified version of ubuntu.
jorge's talk was after mine, which took place in the morning right before lunch. my kde talk was very well attended and the room packed with people. i covered kde 3.5 and what was in it from multimedia to groupware to educational software to file management and more. my slides were really simple: the first slide asked the question "what is kde" and then the remaining slides simply had the name of the area of the desktop i was going to talk about next with the icons of the apps i was going to demo. then i'd switch desktops and demo those apps. people loved the live demos and i loved not having to type a whole bunch of text for my slides ;)
after the talk a lot of those who were in the audience commented on how they were not aware of many of the features and applications i had shown. there's audio (and maybe even video?) of my presentation and i'll be putting them up online when i get my hands on it.
and of course, we also partied hard. i didn't get much sleep while there, as i went out on the town with ryan the first night (got home at 03:00) and then hit the cool afterparty the linuxfest crew threw on saturday. let's just say i didn't get to a bed until i disembarked the plane on sunday.
i would be remiss to not say "thank you, thank you, thank you" to ryan for sharing his house and car with me, and his wife for letting me keep him out to all hours of the night. dude: you rock.
and to everyone who was there at this year's ohio fest: i look forward to seeing you again next year. and to those who didn't go: you missed an awesome venue, don't make the same mistake twice. =)
Subscribe to:
Posts (Atom)


