Wednesday, March 28, 2007

it's a beautiful day

guademy was a really nice event. i got to meet up with some old kde friends such as albert and meet some new ones that i've only talked with online such as rafael. it was also the opportunity to meet some more of the gnome developers and several local users. the presentations were quite informative, even if i could only follow the slides and demonstrations as everything was done in spanish (which is unfortunately don't speak =).

the organizers took great care of us all, including taking great pains to get the vegetarians amongst us suitable food so we could keep going. and as if to say "hello!" the day i arrived a spanish t.v. news program, redes, was covering a story on quantum computing and kde was seen a few times in the coverage. huzzah!

yesterday i met with some of the trolltech devs, including brad (we talked about extending the netwm hints to take into consideration the reality of relationships rather than just states of windows), ben, zack (who showed off some cool webkit stuff =) and andreas (we talked about qgrahpicsview, starting with debugging something; some very nice speed improvements in 4.3 not to mention some crazy good news about layouts and widgets on graphicsviews) ... it's always great to see those guys... =)

sebas and i then met with trolltech marketing people (3 of them) along with community manager knut to get working on improved coordination between both of our efforts. it was very productive and we came away with several action items on both sides. there are great things we (kde) can do with our various partners in industry, but it takes a bit of effort.

then i went and presented to a local linux user's group in oslo after some pizza with sebas and knut. more great people, including one person who went to the same british branch of the canadian university that the person i sat next to on the plane from london to a cuna teaches at. woah.

it's a bit exhausting to be in contact with so many people in such a short period of time, but totally worth it. i slept on the airplane here to kristiansand and then slept through until 11:00 .. i'm feeling very refreshed again and am going to go for a walk in the sunshine and find some food. then it'll be time for some work; i've got a ton of changes in kdeui to commit this weekend and andreas has reinvigorated me when it comes to working with the graphicsview stuff for plasma =)

i miss my family back home, but i'll see them soon. love =)

Tuesday, March 27, 2007

how to get to oslo via madrid



guademy was awesome and a coruña is really pretty as can be seen above, but i'll blog about all that a bit later (including about how kde was coincidently on local television). first, however, let me welcome you to my "fancy" and most exclusive accommodations last night:



yes, that is a bathroom in a rural norwegian train station at 3am. i kid you not. how did i end up there? well, let's rewind to 24 hours prior: i'm gently nestled in my bed in the ac hotel in a coruña along the atlantic coast in spain. in less than two hours my wake up call would arrive and i'd head for the shower completely innocent as to what lay ahead.

check out was uninteresting and the cab was waiting to take me to the airport outside. everything was clicking. huzzah! 15 minutes later at the airport i'm informed that they will need to re-route me. i was supposed to go to barcelona and connect on to oslo from there. however, there is a problem with the airplane to bracelona and it is delayed indefinitely awaiting a part to arrive. since i can't carry on my bag (and i'm not about to toss out all my liquids and gels, which include some toiletries i'm pretty attached to) they instead book me on a flight to madrid and from madrid to barcelona where i will catch up with my flight to oslo. this should give me enough time to collect my bag in barcelona and catch my flight even if the airplane part doesn't arrive soon.

travelling a lot, one gets used to the unexpected. detouring through madrid didn't seem like a big deal. who knew i'd end up there twice in the same day, though. but i'm getting ahead of myself.

the madrid flight went fine, though i inexplicably had to go through customs in madrid despite my next flight being a domestic destination. barcelona was next on the (new) agenda and i arrive without much fanfare, except that i have to go through customs ... again. repetition would be the theme, as it turns out.

i then stood in line for 90 minutes waiting to check in because the belt bag was broken and there were mounds of suitcases and other luggage behind the counter in barcelona. they weren't taking any more check-in's until that was cleared out. i was concerned i was going to miss my flight as by the time they did check me in my flight was already supposed to be boarding.

having walked all around a coruña the day before, my legs were already a bit tired and standing around didn't help. nor did it help that i hadn't eaten yet because i hadn't had a chance to; the original plan to eat at the airport in a coruña was foiled by a broken plane and i hadn't had time since.

i rush on my now rather sore feet to the gate and get there just in time to board the bus which takes us out to the tarmac to board the plane. we get on board the scanadanavian air plane and sit. and sit some more. and site a bit more. i hear something about the mechanics seeing some "unexpected oil on a motor" and i groan inside. we sit some more (why not).

eventually the pilot gets on the mic and announces we're getting off the plane while they fix it. so .. back on the bus, back to the terminal and we get to wait for an hour. upside: i get to eat. downside: it's airport food and i'm starving.

i pass the time working on slides and wondering if i'm going to be able to get to an internet connection on time to commit my changes for libs monday. let alone, you know, have dinner with knut from trolltech as we'd planned.

i fall asleep on the airplane but that was short lived. a little less than halfway through the 3.5 hour flight the pilot comes back on the mic and wakes me up with the most disturbing sort of news one can get while 35,000 feet in the air: "that noise you hear is a maintenance bay door that has come open during flight. we're going to have to deviate and return to madrid to get it fixed and get some more fuel. apologies for the delay ... *blah blah blah*"

my faith in this airplane is spiralling downwards pretty quickly at this point. and then it occurs to me: this is going to be my second time to madrid today, and it wasn't even on the itinerary. i chuckle a bit to myself as the city expands below us ... again.

we land but they don't let us off. nope, we get to sit in our chairs while they assess and fix the errant door and then put more fuel in the beast. then we take off. i'm not so excited about re-starting a 3.5 hour flight in that particular machine, but ... why not.

a couple hours later the pilot comes on the mic again. this time to let us know that the flight crew is leaving. yep, they've been flying too many hours and have been ordered down to stockholm schiphol where they will be replaced by a fresh crew. now, stockholm is nearer oslo than madrid, but it's still wasn't on the itinerary. so we add more time to the flight to get to stockholm schiphol, circle around a bit, land and then wait for the flight crew to arrive ... from oslo! and by "wait", yes, i mean "wait in our seats on the airplane".

they arrive and we eventually take off again and do eventually make it to the airport in oslo. by this time a 3.5 hour flight has become a 10 hour marathon. my legs are not happy, i'm grumpy because i've now had all of three sandwiches to eat all day (one of which i had to pull meat out of because that's all they had to feed us on the airplane to oslo... *grrrrr*) and i'm pretty much exhausted.

on the ground our bags take a while coming out (surprise!) but soon enough i'm on my way to the train. nobody loves me in oslo enough to come get me ;) but i've taken this train before. i hitch it the city center, but by this point in time it's midnight.

the train i was expecting to connect to is apparently not running anymore. so i ask one of the people working on one of the still-active trains which train can get me to nydalen station. according to this person, there's only one more train that can do that, but it's a surface train rather than the subway i was expecting. fair enough, it's only a couple more blocks to walk which seems like a small inconvenience given the rest of the day.

i purchase a ticket and head upstairs for a bit of food and a pint of guinness. can things finally be correcting themselves? will i soon be the arms of a wonderful hotel bed? ha!

i catch the train but miss my stop. yep, it blows right past us as i fail to disembark. awesome, just f*&!$ing awesome. eventually i find the train ticket person in another car and ask them what i can do. i figure i'll get off, wait half an hour or so and catch a return trian, but no ... no such luck. i'm on the last train of the night. literally. in either direction.

now i'm really unhappy. the poor ticket woman apologizes for forgetting to let me know that was my stop (i asked her when i got on the damn train), and suggests that the best thing i can do is go a couple more stops to where the first train in the morning starts from at 4:20 (which is a funny time, if you're familiar with the ganga culture). what to do for the next 3 hours? why, sleep!

they let me into the waiting area in this rural train station and one of the people procures a pillow and a rug (which confused me until i realized they meant "blanket") for me and i get about the business of falling asleep on a bench. upon waking, i head into the bathroom you saw in the picture above where i brushed my teeth, washed my hair and generally freshened up as well as i could.

nothing quite like luxury accomodations:



oddly enough, i had the best sleep i've had in a long time. it actually reminded me of when i was a young pup going into vancouver on the weekends to party: we'd end up closing out a club or three which would mean it was too late to get home as the ferries had stopped running hours ago. so we'd usually go grab an early breakfast (oh, how i miss the nam!) and then bum around town until we passed out somewhere from exhaustion. that "somewhere" was sometimes a bench in stanley park, other times a chair in the bread house and yet other times the facilities at the ferry terminal.

here i was, reliving the glory days ... only except instead of being with friends post-party i was alone on the ass end of a 24 hour travel marathon/mishap in rural norway. so .. similar, but different.

regardless, i woke up stupidly refreshed, got cleaned up and boarded the train. they got me complimentary coffee and i paid extra attention to my train map this time. i got off at nydalen, walked a few blocks, checked in, had a shower, grabbed my email (i have a ton of mail to reply to, having been off the net for some 36 hours) and now i am typing this all clean and relaxed in nothing but a towel. i'm about to head downstairs for breakfast and then i'll call knut and arrange to meet up. we have a marketing meeting at 10:00.

and the way i see it: after yesterday, the rest of this trip can only be downhill.

p.s. fresh underwear has never felt so good.

Wednesday, March 21, 2007

off to guademy and beyond

in a few hours i leave for the airport to start the trek to spain for guademy. i'll be overnighting in london, which is a bit annoying but livable i suppose. i fly into la coruna the next day for a few days of hacking and meeting. i even hear there is a soccer/football game being arranged. huzzah! from there it's off to norway to meet with trolltech marketing and hackers (which will be more fun? hmmm.. ;) as well as to speak at the uni in oslo and at a conference in kristiansand.

by the time i get back on the 30th i plan to be in need of a couple days of sleep ;)

i've put my kconfigbase<->kconfig merge patch on the laptop so i can work on it while i'm away and get it ready for inclusion soon.

i still have presentation material to put together, but i suppose that's what airports and hotel rooms are for.

Tuesday, March 20, 2007

.. in other monday news

i had a nice long discussion with one of the katapult devs and we came to the conclusion that we should try to share the plugins between the katapult and krunner. this will allow them to essentially become two different interfaces to the same data sources. that's why i put the Runner class in libplasma in the first place, actually: in hopes that other apps would use it (and other people write plugins so i don't have to ;)

another bit of good news was on riddell's blog: apparently the french parliament are installing kubuntu on their 1,154 desktop computers.

you know, it would've been nice if that detail had been noted in the announcement on the fridge. i understand the desire to promote a single brand, but there's also something to be said about giving props where they are due (e.g. riddell and company, not to mention kde) and building an atmosphere where people feel they are, indeed, peers in the whole deal.

and i learned about rxart, a kde based operating system that works in the south american market, via the guys who staffed the kde booth at cebit (who, i've heard, did a bang up job!). the fellow who visited with the kde people from rxart claimed some rather impressive numbers (seven figure numbers for copies sold annually, for instance!). if anyone knows more about this product first hand, i'm quite interested in hearing about your experiences with it.

i also read about how red hat is looking to get back into the desktop side of things in a serious way. this makes it a great time for the first release of the official fedora project kde spin to be debuting, as those wanting red hat and kde will have a better set of options than ever before. this should also help (re-)legitimize the desktop to those who listen to red hat for linux guidance. huzzah. i think we're going to see some good things come out of red hat in this regard in the days to come.

i then stumbled across this "gem" from microsoft and wasn't sure at first whether to be slightly envious of their market research and presentation slickness there, cry at the obvious spin they put on it in several places or laugh out loud at how this validates what the free software community is doing more than anything red hat could ever say. eventually i caught my breath after all the laughing subdued ;)

speaking of marketing, in addition to hacking dates with people at guademy and in oslo (i've heard nice things about the widgets-on-graphicsview stuff going on up there; i'm on the edge of my seat waiting to see what's up!) i also have a marketing meeting with trolltech and kde people. i hope to have some nice things to share coming out of that.

so while kdelibs made some big strides today towards getting ready for 4.0, i was kept happy (if tired and overly busy) with little bits of good news dribbling in throughout the day =)

kdelibs monday

so today was kdelibs monday and boy was it ever a busy day in libsland; i count just over 100 commits to kdelibs today, in fact.

david faure committed the mimetype stuff he's been working on, so as of today kde uses the fd.o mimetype spec. the big upshot of this is that we can now share databases and settings with applications that aren't kde based and configuration tools only need to target one solution.

pino toscano put the icing on the mimetype cake by converting the names of the oxygen icons to match the new mimetype system names.

jos went nuts on strigi tweaking the api's for analyzers and what not. now that we're using strigi more aggressively in kde, it's interesting to see how it really exposes the strengths and weakness of its current api. thankfully everything is fixable, as they say, and strigi is still very malleable in its current stage of developnent. jos is also very responsive. i have high hopes for indexing in kde4 =) when nepomuk finally hits kdelibs (went through an api review last week, so it is getting closer!) we'll really have some fuel to burn.

alex "i am a cmake god" neundorf up'd the minimum cmake version required to 2.4.5 as he announced he would a couple weeks ago and went about cleaning out cmake files that now had unnecessary hacks in them. if for no other reason, cmake was a good choice because it came with alex welded to its side ;)

kevin ottens went crazy on kjob refactoring, making things more beautiful in there. he also added a class that lets kjob progress to be tracked, pretty much just as kio provided but now it's available to all kjobs. a ton of work done there and it's looking good =)

david "mimetype system merge isn't enough" faure and thiago also picked out some of the final remaining bits of gui classes from kdecore. kconfigskeleton and klibloader are the last offenders now, with the former probably moving to kdeui and the latter needing some work to do with qlibrary (or at least, that's what i heard thiago going on about at some point =)

and that's of course not an exhaustive list of everything that happened. winters was in there fixing exports, i saw commits from the win32 guys fixing stuff for msvc as we broke it throughout the day ;), a bunch of ebn fixes went in, andreas pakulat added proper kurl support to kconfigxt .... and me, i committed various fixes to kdecore: we're pretty clean now when it comes to dptrs, exposed members, unnecessary classes, namespaces-pretending-to-be-classes and what not; i also managed to merge kconfig and kconfigbase to the point it compiles and works without regression, though i have a bit more work before it will be ready to go in. in particular, it's now ready for the refactoring between kconfigbackend and kconfig; i've done that once before already so it should be less painful this time around.

not bad for a monday. =)

sadly for me, the next two days will be a little less fun: prepping my presentations for next week (i've been procrastinating, bad boy that i am! =) and getting ready to travel. hopefully i'll have time and energy to hack on things as well.

Friday, March 16, 2007

too busy to blog

this week has been just insanely busy for me. i've been playing with kdecore, dealing with various devel issues around plasma land, participating in the release schedule discussion and the p-man was out of school for the last day and half. i have to finish up 3 presentations for my trip next week ... it's just one of those weeks where i feel a bit run ragged. and so not much blogging =) i wanted to show the neat new animation stuff in krunner, but the screencast one of the guys made for it didn't actually show it.. so.. yeah =P

some really good news, though, was found in mauricio's blog entry on kde computers sold in brazil. 18% of systems shipped with free software desktops there, making 1.5 million systems. the supported distros are all kde centric, so it's safe to assume they were installed with kde when they left the store.

if we use last year's numbers for retention (1 in 5 keep linux on the system, with the other 4 simply installing an illegal copy of microsoft's products) we end up with a number of 300,000 systems in the last year. that's five times what last year's data indicated. nice =) i can't wait to see things first hand next month at FISL.

now to make more countries like brazil ;)

Tuesday, March 13, 2007

@internal

libs monday, so once i got to coding that's where i headed.

whilst working, i came across a small class that was marked as @internal that was being used in a number of places in kde, though it wasn't necessary in any of them, really. when a class or method is marked with @internal, don't use it. if you must use it, then something is broken and a rational for its use needs to be made and then the problem documented until it can be fixed.

i know that all sounds very obvious, because it is, but ... it evidently still needs to be said =)

on the other side of that fence, if you mark something with @internal see if you can prevent the export of that symbol so others can't stub their toes on using it. if that's not possible, try putting it somewhere that others can get to such as in an uninstalled header or in the implementation itself. sometimes that's not possible because internal subclasses need to get to those symbols; in that case it may be worthwhile to consider marking it with uglyness such as prefixing the name of the class or method with something suitable off putting.

i started doing a header-by-header inspection of libkdecore looking for things like missing dptrs, member variables, inlined methods, etc. i'd really like kdelibs to be as clean as possible in kde4, so it seems worthwhile. unfortunately it became tuesday all to quickly in europe (i'm gmt-7 and had various communications to attend to in the morning). this has left me with:

aseigo@liberty:~/kde4/KDE/kdelibs$ svn diff kdecore/ | wc -l
3083


ugh. i'll have to carry this over to next monday. at least one more class moved into kde3support and out of kdecore in the process (krfcdate, which is completely superseded by kdatetime). i didn't bother going into network since i know thiago is going to raise a storm in there soon, and i still have the kernel, sycoca, text and util subdirectories in kdecore to get through. then i can move on to kdeui, and after that kio.

Monday, March 12, 2007

kdelibs checklist

kde4 is a long term process, and 4.0 is just the first whistle stop. the important milestone there is our libraries start to cement and we have a workable desktop that we can start putting into shape. we do have more work ahead of us and with a release schedule being defined, the deadlines are becoming real.

there are classes in kdelibs that sill need to get some love in prep for 4.0. a lot of that is pretty basic stuff, such as:

  • figuring out what to do with kdelibs/kdeui/klanguagebutton.cpp

  • tracking down abuses of bools in the API (hello KIO::NetAccess!) and replacing them with enumerations for readable code

  • making sure no classes have any data members other than the Private* dptr in the public interface

  • getting rid of any inlined methods in public interfaces



some of it isn't as trivial, such as:

  • finishing out changes to kconfig (i know of two sets of work going on there)

  • going over and essentially rewriting large parts of the kde file dialog so it uses qt4/kde4 properly

  • icon loader improvements (so that app devs, such as the amarokers, can rest easily knowing their icons are going to look nice without screwing over those using comprehensive icon sets in the process)

  • nepomuk

  • oxygen style

  • knewstuff2? (plasmagik will be shipping with plasma for 4.0)

  • ... other stuff people are working on ;)



the list is shorter than it was, but it's still longer than short. hopefully we'll punt on as little of this as possible, but i feel it is inevitable some will as it is simply not possible to have everything one could dream of in a given release. there are things that can be added or fixed post-4.0 and so isn't a big deal. and things like nepomuk, even if they do make it in for 4.0 (and that's not a requirement at this point), still won't fully see their potential realized for a few releases as applications tool up to use the new goodies. it'll also take the serious usage that only a stable release sees to really get solid, phonon, decibel, et al to the point of being able to take them for granted much as we do now with many of the technologies that debuted with kde 2.0.

but yeah ... lots of work ahead between now and akademy.

sunday, sunday

today i had plans for some kde stuff, but it got put to the side to deal with other matters in life. that and the daylight savings time switch i forgot about ;) thankfully the computers didn't.

after getting the p-man up and going, we grabbed some falafel sandwiches and humous and picked up his mom and t. we then headed downtown to join the "canadians for kyoto" rally with signs we'd painted friday night in hand. the rally was held in cities across canada today to show support for kyoto. while it is certainly not the silver bullet solution, it is a useful first step and show of good faith between the nations of the world that we can and will start to rectify the environmental problems we have created for ourselves and everything else on this planet.

p. and the "save the earth" sign he made with remarkably little help from his mom and i was very popular with the cameras. i heard we even ended up on the evening news; by choice we don't have cable television in the house, but others who do phoned to say that the story on the rally ended with a shot of p. =)

after that, t. joined us at the mall for a quick shop. i realized last week that i was starting to run out of presentable clothes. i'll happily wear the same old things until they literally start coming apart at the seams. as it turns out, i've pretty much exhausted my supply of presentable pants and my runners are looking less than healthy. t. guided me towards some slightly more pretty clothes while we were there, including a nice, light natural-coloured linen suit that will do great when i give presentations in slightly more formal settings, not to mention restaurant outings, nicer clubs and the opera (carmen in april!). all in all, i'm a little less threadbare now though i do need to pick up a couple more pairs of casual pants and some shoes.

we then went back home and watched a few episodes of heroes (t. is several episodes behind) while munching on some healthy snacks and drinking tea. all in all a great day, if a little lite on the tech.

but i suppose i can get back to that tomorrow; i have a couple of commits for kdelibs though nothing overly breathtaking. that is the idea, i suppose, as we start to wind our ways towards feature freezes and what not. i do have one more biggish set of things to do for kconfig, and we still have classes in kdelibs that have outstanding issues. hm... next blog entry perhaps =)

Thursday, March 08, 2007

oxygen icons

so oxygen is now the default icon set in kde4. if you update your sources from svn, you'll find quite a few related changes, including kicontheme now defaulting to oxygen, crystal moved to kdeartwork/IconThemes and huge numbers of icon name related changes in applications.

that's another thing that oxygen is bringing to kde4 besides just new icons: new icon names. these are in line with the icon naming spec that is still being added to and tweaked under the freedesktop.org umbrella. that means we can share icon themes between toolkits much more easily since apps targetted at the free software desktop will use the same names for similar icons. hooray!

of course, this means you need to port your app to these new names. oh no! enter Luca Gugelmann who whipped up a very cool python script which you can find in kdesdk/scripts/qt4/adapt-to-icon-spec.py.

it's an interactive script which you run from the root of your project. it catches the obvious things, like uses of KIcon and KIconLoader and skips things it can figure out can't be icons. for the fuzzies, it asks you as can be seen in this screenshot:



ok, the screenshot is a bit ugly but i had to get it down so it would fit decently on the blog ;) as you can see it shows context and you can request more of it by pressing 'm'. there is a help menu ('?'), but generally you just hit 'y' or 'n'. voila. couldn't be easier, really.

things left to do:
  • port the remaining handful of modules: hopefully will be done by end of today

  • modify the icon themes in kdeartwork/IconThemes to also use the new names. taking Luca's script which lists all the name changes and working from there would be a good place to start. just a bunch of svn mv's really, perfect for scripting.

  • figure out the legality of the CC 3.0 SA-BY license for use with artwork loaded from disk when it comes to, say, being Free enough for inclusion in even Debian and how it interacts with both proprietary and *GPL software. obviously a job for a lawyer.

Wednesday, March 07, 2007

efficient scallable icons

anyone looking for an interesting kde4 programming problem to tackle? well, i just might have something for you.

we now have a set of high quality svg icons sitting all pretty like in kdelibs with the oxygen theme. unfortunately, svg is not as fast to render as, say, blitting a pixmap to screen is (duh!). zack's done amazing work, but svg is still svg. =)

which leads us to the following problem:

how do we use svg and get perfectly scalable icons without sacrificing speed? in fact, could we even get better speed? i think we can. how? by having the icon loader render the svg's on demand into a shared, on-disk binary cache. in fact, such a cache could even be generated at installation time for the default icons.

the benefits?

well, first the obvious: we get to use svg at arbitrary sizes with the speed of blitting pixmaps minus a one-time rendering fee.

the almost-as-obvious: by putting icons into a single file, application start up should get faster as we will only need to do the "seek to a million locations on disk per icon" for that one-time rendering. ok, it's not a million locations, but it can still easily be a dozen or so. and since moving physical parts == slow, this should result in a speed up. in fact, talking with someone some months ago who had experimented with caching even just the current png's into a single cache file that is loaded on app startup showed user noticeable start up improvements. note that this is different than suggesting an icon server.

the perhaps not-so-obvious: this would open the door to doing run-time composition of icons. e.g. we can make it so the icon theme can be queried for "mimetype for foo" and if there is no mimetype-foo icon, but there is a foo icon, then it could take the generic mimetype icon, draw the foo icon into it ("into" is key; there's probably need for under- and over-lay to get things looking properly). the beauty of this is that apps can then stop shipping their owm mime type icons which look out of place, or which look good today but end up looking like crap later when the base icon theme changes. and that's just one example. while tagging he icons in crystalsvg as research for the oxygen artists, it became apparent that most of our icons are simply composites of standard elements with zero or one custom elements added in. while we certainly won't be able to provide all icons that are composites of more basic elements, we can get a lot closer to dynamic icons than we are at now.

the down side is that it will result in more per-user disk space. so this probably needs to be configurable in the loader, though with disk as cheap as it is the tradeoff should be well worth it.

it's also not completely trivial: to really be effective, it needs to be fault tolerant (e.g. detect cache corruption; having messed up icons isn't an option =), multi-reader, multi-writer and random-access efficient. it needs to be indexed for fast look ups, etc. the usual, really. so there's almost certainly existing libraries that can be used for this.

of course, i could be completely, totally wrong and this could end up being little or no better than straight up old-school icon loading as we currently do it. so there is a bit of risk involved, but i'm guessing the speed boost will be real and noticeable. assuming our runtime svg rendering is good enough, we should see improvements in icon presentation, particularly when we aren't using one of the "standard" sizes. this neatly gets around the problem of not having 24 pixel icons in a lot of themes, for instance.

if nobody steps up to do this, i'll eventually get to it someday. but i'm completely stuffed for 4.0 at this point. however, i'm happy to help mentor someone through the requirements and it would make a positively awesome SoC project. *hint* =)

daytime excitement

today was just full of excitement.

the bank across the street got robbed, but the idiot let the tellers bag the money. as he was trotting across the parking lot the die bomb went off scattering bills and ink everywhere. the police were along shortly to collect the mess and sort things out. but hey, nothing like a bank robbery in the neighbourhood to liven up the morning, right?

i walked pass the mess on the way to lunch with a friend at soba ten. mmm.. edamame, tempura, soba noodles oh my! found out she's vegetarian as well, something i didn't know about her. then again, i don't think we'd ever actually shared a meal before. in any case, during opening conversation i mentioned what i'd done this morning ...

which brings us to exciting thing #2: the oxygen icons are now in kdelibs and licensed under a creative commons v3 attribution, share-like license. libs and base are ported to the new icon names, and will be committed in the coming days along with a switch to oxygen as the default. at which point we need to port the rest of the modules (lucag has some scripts whipped up, huzzah!), document the process in the kde3->kde4 porting guide and start q/a'ing the new icons.

so after explaining the icons moving and the artwork project in kde4 she says, "hm. yeah, when people ask me about my work," (she's an environmental engineer), "i realize that they don't even know what questions to ask. sometimes the details of one's work can be pretty esoteric." which is to say, translated out of canadian-polite-ese, "you did what with your morning?"

on the way back home i bought some new altec lansing speakers for the computer as the old ones, which i got for free due to a mess up with a computer order some 8 years ago, were busy dieing a slow and agonizing death over the last 6 months or so. the p-man is busy setting them up as i type.

i also noticed i have only two weeks left to write three presentations i'm giving. thankfully i'm giving one of them twice, but still. ugh.

Tuesday, March 06, 2007

lug radio live

jono was good enough to invite me down to lug radio live 2007. conveniently it falls directly after akademy 2007; well, they overlap by a day actually. my plan at this point is to leave akademy a day early and head down to wolverhampton for the lug radio live event.

i'll need to arrange transport from glasgow and lodging in wolverhampton. if you're a kde type person and want to hook up for this jaunt in early july, let me know. it'll be a blast, though i'll probably be a wee bit exhausted by the end of it all. =)

ksnapshot region sizing

celeste opined in her blog that " It would be great if when using the region selector to be able to resize the box before commiting, sort of how the crop tool works."

well, celeste, you have a gift waiting for you in kde4 from one luca gugelmann:



luca appeared on irc recently looking for things to do. i steered him towards celeste's blog (among other things; he's been producing a few patches lately =) and a couple days later there it is. cool ...

now, that said ... i don't scale very well. people come on irc and ask me for tasks fairly regularly. this means i have to take a break from my own coding to pay attention to the request and come up with something. sometimes i'm not even there on irc (i know, amazing and shocking! ;).

so let me suggest that if you'd like to get involved with kde4 that you try the following instead:
  • pick an app in one of the modules, such as kdeutils or kdeadmin, and try it out. i guarantee you'll find layout or other issues that need to be resolved before 4.0. if you have questions about the app, ask on irc in #kde4-devel or on the kde-devel mailing list. this is the self-starter method.

  • subscribe and then send an email to the kde-devel@kde.org mailing list letting people know you are looking for tasks.



for other kde regulars working on kde4 already: can we please put together lists of things that need to get done that people might be able to pick away at? i know that kopete has such a page, as does plasma. this would make it so much easier for people such as myself to steer others your way and speed up devel where it needs to happen.

in fact, perhaps someone would like to set up a page in the "contribute" area of techbase for these things?

Saturday, March 03, 2007

dolphin gets a treeview, krunner gets prettier

peter penz committed a treeview for dolphin to svn today. it really angers me to watch people piss and moan about that whole situation when 4.0 is months away and when they aren't going to be losing a damn thing since konqueror is still there and still maintained. the attitude some of these people are demonstrating is the perfect way to chase away enthusiastic new developers like peter. making kde an enjoyable place to work on code something we in the development community try pretty hard to realize; when the beneficiaries of that start sabotaging it with ill-informed whinging, it's pretty disheartening. i have no issue with constructive criticism, but i'm seeing very little of that.

in more happy news, krunner is getting prettier with transparency on the widgets, pretty buttons and the listview soon to be replaced by the "icon parade". the latter is something of an interface experiment, and i'm hopping to receive some of the artwork i need for it tomorrow. if it pans out i'll post a screenshot or three.

it's also getting more functional as the feature set comes together. matt broadstone has also got the start of a qgraphicsview based implementation for the desktop going that we'll be building the visual elements on plasma on top of, and wirr has started bringing over some of the widgets he'd ported from superkaramba to graphics view. so, bit by bit things are coming together.

on inline methods

while doing some research for krunner i came across a memory leak in KUriFilter which happens to get used quite a bit by konqueror and kdesktop (the latter for the current run dialog). it was a pretty innocent mistake in the code; in fact, i can see how it probably happened even: the initialization code was later re-used in a setter (also inlined, for good measure) but never ported for such use.

unfortunately, the bug isn't fixable in stable releases because the class's constructors are inlined as well as many setters, and the constructors in particular require modification so that fixing the memory leak doesn't cause crashes.

i'm always reminded of gems like this when people shrug off the seriousness of inlined methods in public interfaces. "but," they often say, "this'll never change. how could it? it's a single line of code and totally obvious!" indeed. getters you may be able to get away with; maybe. but setters and constructors? tempting fate just isn't worth it.

there are a lot of classes in kdelibs right now that still have inlined methods. from kurl in kdecore to classes in kio. there are also a number of classes in kio that still have strings of bools in their api, e.g. what does this do: KIO::listDir(path, false, false) ? yeah.

we've still got time to fix these things for kde4, namely the time between now and the 4.0 api freeze which is some months away. if you're looking for some entry level work that will get you aquainted with kdelibs, this a great opportunity.