a fellow came into #kde on irc today and in the course of conversation noted that he didn't use konsole because it was so much heavier than rxvt. while i was just an observer to the conversation, i thought i'd take a look at the memory usage of konsole and xterm (i didn't have urxvt installed).
now, common wisdom would dictate that if it is a KDE app it must consume more resources, right? and we all know that if a program has more features that it comes at a price in the form of resources, right? and since konsole has an amazing array of truly kick-ass features and uses the KDE libs it must be a behemoth, right? well, that's the position he was operating from. no proof, just relying on logical conclusions based on "common knowledge".
i explained to him that since konsole allows multiple tabs one avoids the overhead of multiple instances of the same app when running multiple sessions; having an equal number of xterms would be "heavier" for some value of N sessions. `konsole -xft` consumes a bit over 6MB of RSS on my machine and each new tab takes <100K, with some additional overhead as it runs over time. in fact, the konsole i've been running for days here with 7 tabs weighs in at ~8.5MB. each xterm on the other hand, takes a little over 3MB of RSS. this means that just 3 xterms weigh more than my 7 session konsole. considerably more, in fact. with far fewer features.
well, the urxvt user didn't believe me. he figured i was just guessing. when i showed him the numbers, he accused me of not understanding how to measure memory usage under Linux. i explained how i measured, which led him to go do his own measurements. cognitive dissonance in action! some time later he returns with the conclusion that my numbers, and conclusions, were indeed correct. oops. konsole is lighter for multiple session needs than urxvt (which turns out to be considerably lighter than xterm, btw).
the moral of this story is that knowledge being common does not make it correct, it just makes it common. in this case the commonly held idea that KDE equates to "heavy" and "bloated" was complete bunk. spread the word.
Sunday, October 31, 2004
double digits
kicker is now under the 100 bug mark, and here's the screenshot from b.k.o to prove it:
i hope to keep it in the double digits, and even continue to push it further away from 100. there are two big areas of difficult-to-solve bugs: dual head (not Xinerama) and the systemtray. the former because i don't have a dual head setup to test on (only Xinerama) and am not about to set up such a system any time soon, the latter because the system tray spec is completely messed up causing all sorts of bugs.
i'd also like to boil the wishes down as far as they'll go. there's over 240 of them still there, even after closing a lot of them. many should be closed for varoius reasons, and they should all be prioritized. interestingly, closing wishes but not implementing them seems to rub some people the wrong way.
besides hacking, i did the weekend house cleaning which i don't particularly enjoy, though i do find it almost meditational. time to think and whatnot. Peyton and i went and caught a movie tonight. the first theatre we went to had a projector breakdown, so they gave us two free tickets for a movie. this meant we had to go somewhere else, however. we caught the train there and back, and Peyton made friends with people on each leg. it's amazing how many pretty women this boy of 4 engages in conversation on a daily basis. anyways, after the movie we went to a bookstore, had hot drinks and read kid's books to each other. kid's books rock.
and yes, Hellen, it's winter:
i hope to keep it in the double digits, and even continue to push it further away from 100. there are two big areas of difficult-to-solve bugs: dual head (not Xinerama) and the systemtray. the former because i don't have a dual head setup to test on (only Xinerama) and am not about to set up such a system any time soon, the latter because the system tray spec is completely messed up causing all sorts of bugs.
i'd also like to boil the wishes down as far as they'll go. there's over 240 of them still there, even after closing a lot of them. many should be closed for varoius reasons, and they should all be prioritized. interestingly, closing wishes but not implementing them seems to rub some people the wrong way.
besides hacking, i did the weekend house cleaning which i don't particularly enjoy, though i do find it almost meditational. time to think and whatnot. Peyton and i went and caught a movie tonight. the first theatre we went to had a projector breakdown, so they gave us two free tickets for a movie. this meant we had to go somewhere else, however. we caught the train there and back, and Peyton made friends with people on each leg. it's amazing how many pretty women this boy of 4 engages in conversation on a daily basis. anyways, after the movie we went to a bookstore, had hot drinks and read kid's books to each other. kid's books rock.
and yes, Hellen, it's winter:
Friday, October 29, 2004
insomniac
i didn't get much sleep last night. tried but it didn't happen until nearly 7am. then i got up at 9:30 for work. so i'm beyond tired at the moment. nothing's getting done today. and there is so much to do.
someone suggested that if i added pictures to my blogs it would make things more fun. fair enough, i'll start doing that. just not today. i'm too tired.
and, again, if you are going to reply to my blog please use a name. you don't have to log in, you don't have to use your real name. but i like being able to connect a name to your words. i read the feedback because it means a lot to me when people take time to share their thoughts, and that's connected to why i like to have name there.
i met a fellow Calagarian in #kde yesterday. always sort of odd, but cool, when that happens.
and a bit more on zoom icons: they don't provide an easier target; it's completely illusory since you have to position your mouse with as much precision with our without them to get the icon to zoom in the first place. we can't make the zoom icons bigger than they currently are because that causes OTHER problems (namely covering up adjacent icons). and we can't do hyperbolic zooming to solve either of those problems, as a certain company that rabidly protects their look 'n feel IP owns patents on that and. but here's my promise to all of you:
whatever replaces them will A) look cooler than the zoom icons and B) make it easy to see what the icon is you are pointing at.
oh, and random acts of poetry is damned cool. more people should randomly inject art and happiness into the world around them.
someone suggested that if i added pictures to my blogs it would make things more fun. fair enough, i'll start doing that. just not today. i'm too tired.
and, again, if you are going to reply to my blog please use a name. you don't have to log in, you don't have to use your real name. but i like being able to connect a name to your words. i read the feedback because it means a lot to me when people take time to share their thoughts, and that's connected to why i like to have name there.
i met a fellow Calagarian in #kde yesterday. always sort of odd, but cool, when that happens.
and a bit more on zoom icons: they don't provide an easier target; it's completely illusory since you have to position your mouse with as much precision with our without them to get the icon to zoom in the first place. we can't make the zoom icons bigger than they currently are because that causes OTHER problems (namely covering up adjacent icons). and we can't do hyperbolic zooming to solve either of those problems, as a certain company that rabidly protects their look 'n feel IP owns patents on that and. but here's my promise to all of you:
whatever replaces them will A) look cooler than the zoom icons and B) make it easy to see what the icon is you are pointing at.
oh, and random acts of poetry is damned cool. more people should randomly inject art and happiness into the world around them.
UI Reviews; a new weekly column; i disturb the peace (again?!)
i put some work in on digiKam's UI this week in prep for a piece i'm writing on it. they've done a really great job with the upcoming 0.7 version, but as with many Free / Open Source apps the UI was a bit loose. i'm not sure if all my patches will make it into v0.7 as its coming out Real Soon Now(TM). some of the digiKam hackers had planned on requesting a UI review down the road at some point, which is good. there's a lot more than can/should be done even taking into consideration the bits i did.
but really, this isn't something to do after a release. why not? because when we release software, the users that use it get used to the way things are and it becomes progressively harder to change things later no matter how bad of an idea the interface was in the first place! even more drastic, many users will stop using software that is clunky. functionality may be great, but a sleek interface, good workflow and sound usage patterns is one of the primary things keeps most users loyal.
this being the case, before releasing the next version of KFooBar, consider taking all the new dialogs, menu/toolbar items and other visible features and conducting a UI review on them. do this before writing documentation or releasing the translators on your software. give yourself enough time to look at each piece and if need be clean it up. enlisting your local friendly usability mechanic might even be an idea.
i've started a new weekly column aimed at third party developers called Spit 'n Polish. i even use my shift key! this week is about using the KDE trashcan. old issues will be archived and show up in the left sidebar. thanks to the peeps in #kde-devel for proof'ing it for me tonight (i was way too tired to be writing)!
if reaction is good, i'll announce it somewhere useful. and if there is enough demand, i'll start up a way for people to sub to that page via email.
oh, and i've been disturbing the peace again. i suppose i should watch what i say on irc more carefully. oh to be a pimply faced youth nobody listened to again! hrm. on second thought, i'll take my lumps.
but really, this isn't something to do after a release. why not? because when we release software, the users that use it get used to the way things are and it becomes progressively harder to change things later no matter how bad of an idea the interface was in the first place! even more drastic, many users will stop using software that is clunky. functionality may be great, but a sleek interface, good workflow and sound usage patterns is one of the primary things keeps most users loyal.
this being the case, before releasing the next version of KFooBar, consider taking all the new dialogs, menu/toolbar items and other visible features and conducting a UI review on them. do this before writing documentation or releasing the translators on your software. give yourself enough time to look at each piece and if need be clean it up. enlisting your local friendly usability mechanic might even be an idea.
i've started a new weekly column aimed at third party developers called Spit 'n Polish. i even use my shift key! this week is about using the KDE trashcan. old issues will be archived and show up in the left sidebar. thanks to the peeps in #kde-devel for proof'ing it for me tonight (i was way too tired to be writing)!
if reaction is good, i'll announce it somewhere useful. and if there is enough demand, i'll start up a way for people to sub to that page via email.
oh, and i've been disturbing the peace again. i suppose i should watch what i say on irc more carefully. oh to be a pimply faced youth nobody listened to again! hrm. on second thought, i'll take my lumps.
Monday, October 25, 2004
zoomers and menubars: answering the questions
(Stage notes: aseigo slips into his Ann Landers outfit.)
> What's this about removing the Desktop Menu option? Sounds very confusing... can't
> be good for usability. Why should one know about Kicker internals (panel this,
> panel that) just to enable the Desktop Menu?
it'll work much like it does now: click a checkbox and you get a desktop menu at the top. but now you'll be able to optionally add applets and other kicker stuff to it. we'll also be able manage the strut geometry properly by having it all in once place (kicker). this will make the menubar just as easy to set up, while killing some bugs along the way! in fact, it will make setting up a more featureful menubar easier by promoting the more flexible kicker approach. this is a win-win situation.
> Could you make the icon zooming thing a choice, instead of just throwing it away?
i could. but here's why i'd prefer not to... our zoom icons are little more than a (poor) rip-off of a MacOS X interface, the dock. it's pretty well known that for all its sex-appeal, the OS X dock sucks usability-wise. ask Raskin or Tog, even.
but our panel in KDE isn't anything like the OS X dock. kicker does a lot more than provide icon buttons and a confused taskbar. zooming buttons make very little sense for menus (right now we unzoom them to make way for the menu), and we get bug reports that zooming doesn't work on the quicklauncher, various applets and the systray. our lack of consistency, which is a rather intractable problem, is sad. just making the zooming smooth isn't enough to make this feature work nicely.
to make matters worse, the code that supports zooming functionality is not exactly pretty. here's a comment from that code that says a lot:
now, i'm all for cool hacks and respect Matthias' abilities as an uberhacker. but kicker has a frightful number of options and the all interact with each other in many splendorous ways. we really don't need more hacks in kicker to make things even less fun to work with.
i'd also note that doing zooming buttons properly (e.g. smoothly in and out) in the panel results in a lot more resource usage. one of my personal goals is to shrink kicker's system requirements.
i'm also sensitive to the eye candy lovers out there. but let's get creative for a moment: wouldn't it be cool if we could come up with something that makes kicker buttons look beautiful that isn't a rip-off of some other interface, that is done Right(tm), that is consistent and remain light on the resources? heck, maybe something that is even useful, too!
and yes, i'm looking for ideas and people willing to implement them =)
> Kde is about choice, don't think the gnome way
KDE is about making software that is better. sometimes that means providing all sorts of choices, but not always. kicker has an ungodly number of features, several of which aren't even in the GUI config dialogs! many of these features interact with each other, resulting in a HUGE testing matrix. this makes development extraordinarily and needlessly difficult. it makes supporting kicker difficult. it makes kicker take more resources than necessary. now, i'm all for choice, but let's try and make them GOOD choices, the burden of which are worth bearing.
> I always thought that the rationale behind growing icons was Fitt's law? IE,
> make the icons bigger when needed to make picking one easier/faster, without
> eating up desktop real estate the rest of the time
you still have to move your mouse those tiny increments in the places this makes a real difference (tiny panels). not to mention that the difference between the zoomed and unzoomed icons on a tiny panel aren't exactly huge.
i do agree that picking a button faster is a good thing though. descriptive text that doesn't obscure the button like our tooltips currently do will go a lot further towards that end, however.
> I believe people use this without kicker in combination with things like *karamba
> or smoothdock(?)
and they will continue to be able to do so. with the removal of Panel::the(), people will be able to optionally remove the "main" panel (since there no longer will be such a thing, really). and if the specter of running kicker is abhorrent to them, then those other apps can provide their own implementation of the desktop menu.
> What's this about removing the Desktop Menu option? Sounds very confusing... can't
> be good for usability. Why should one know about Kicker internals (panel this,
> panel that) just to enable the Desktop Menu?
it'll work much like it does now: click a checkbox and you get a desktop menu at the top. but now you'll be able to optionally add applets and other kicker stuff to it. we'll also be able manage the strut geometry properly by having it all in once place (kicker). this will make the menubar just as easy to set up, while killing some bugs along the way! in fact, it will make setting up a more featureful menubar easier by promoting the more flexible kicker approach. this is a win-win situation.
> Could you make the icon zooming thing a choice, instead of just throwing it away?
i could. but here's why i'd prefer not to... our zoom icons are little more than a (poor) rip-off of a MacOS X interface, the dock. it's pretty well known that for all its sex-appeal, the OS X dock sucks usability-wise. ask Raskin or Tog, even.
but our panel in KDE isn't anything like the OS X dock. kicker does a lot more than provide icon buttons and a confused taskbar. zooming buttons make very little sense for menus (right now we unzoom them to make way for the menu), and we get bug reports that zooming doesn't work on the quicklauncher, various applets and the systray. our lack of consistency, which is a rather intractable problem, is sad. just making the zooming smooth isn't enough to make this feature work nicely.
to make matters worse, the code that supports zooming functionality is not exactly pretty. here's a comment from that code that says a lot:
/* This event filter is very tricky and relies on Qt
internals. It's written this way to make all panel buttons work
without modification and to keep advanced functionality like tool
tips for the buttons alive.
Don't hack around in this filter unless you REALLY know what you
are doing. In case of doubt, ask ettrich@kde.org.
*/
now, i'm all for cool hacks and respect Matthias' abilities as an uberhacker. but kicker has a frightful number of options and the all interact with each other in many splendorous ways. we really don't need more hacks in kicker to make things even less fun to work with.
i'd also note that doing zooming buttons properly (e.g. smoothly in and out) in the panel results in a lot more resource usage. one of my personal goals is to shrink kicker's system requirements.
i'm also sensitive to the eye candy lovers out there. but let's get creative for a moment: wouldn't it be cool if we could come up with something that makes kicker buttons look beautiful that isn't a rip-off of some other interface, that is done Right(tm), that is consistent and remain light on the resources? heck, maybe something that is even useful, too!
and yes, i'm looking for ideas and people willing to implement them =)
> Kde is about choice, don't think the gnome way
KDE is about making software that is better. sometimes that means providing all sorts of choices, but not always. kicker has an ungodly number of features, several of which aren't even in the GUI config dialogs! many of these features interact with each other, resulting in a HUGE testing matrix. this makes development extraordinarily and needlessly difficult. it makes supporting kicker difficult. it makes kicker take more resources than necessary. now, i'm all for choice, but let's try and make them GOOD choices, the burden of which are worth bearing.
> I always thought that the rationale behind growing icons was Fitt's law? IE,
> make the icons bigger when needed to make picking one easier/faster, without
> eating up desktop real estate the rest of the time
you still have to move your mouse those tiny increments in the places this makes a real difference (tiny panels). not to mention that the difference between the zoomed and unzoomed icons on a tiny panel aren't exactly huge.
i do agree that picking a button faster is a good thing though. descriptive text that doesn't obscure the button like our tooltips currently do will go a lot further towards that end, however.
> I believe people use this without kicker in combination with things like *karamba
> or smoothdock(?)
and they will continue to be able to do so. with the removal of Panel::the(), people will be able to optionally remove the "main" panel (since there no longer will be such a thing, really). and if the specter of running kicker is abhorrent to them, then those other apps can provide their own implementation of the desktop menu.
hello kicker helpers! bye-bye icon zooming?
IRC is proving fertile ground for finding kicker janitors. illogic-al provided an update to kicker's documentation. awesome! he's now looking at doing some JJ jobs around the kicker code, which is very cool. another fellow, Oleg_, is also poking around in things, and [mX] is getting his sea legs in the core/ code in order to lend a hand with the de-Panel::the()-ification. wicky's QLayout code for ContainerArea is done and soon to be merged into HEAD.
i've been trying to clean up the kicker bug database and become familiar with the body of reports at the same time, specifically so i know what needs to be addressed.
the DESIGN and TODO documents are shaping up nicely as well.
i'm considering doing two things, both of which may result in some controversy. so i'm going to outline them here so people can yell at me pre-emptively:
1. get rid of the non-kicker "MacOS-style" menubar. instead, this will be replaced with a kicker (child)panel that has some special constraints, such as you won't be able to move it from the top. the menu applet will also disappear from the Add -> Applets menu and will lose its applethandle (hello Fitt!). this change is being promprted because i dislike having duplicated functionality, having to deal with silly bug reports that result from both kdesktop and kicker trying to do fancy workspace strut stuff and because i think having a menubar that allows adding applets to it is far more interesting than the current "MacOS-style" bar. oh, and there won't be a "Desktop Menubar" option, either. instead, i hope Seli will be able to help out with making the Desktop menus appear automagically when the rootwm has focus.
2. get rid of icon zooming. yes, you heard me right. get rid of icon zooming. i've been working on smooth icon zooming and its been fun, but i had an ephiphany: what purpose does it serve exactly? oh, right: eyecandy to look like Something That Isn't KDE(tm). well, screw that. instead, i want the icon title to appear above the icon when its moused-over. no zooming buttons, just useful text. this will provide an indicator of which icon you are over (along with the mouse-over icon effect), show some useful information and make kicker appear a bit "calmer" instead of Inflatable Icons The Grow When You Point At Them.
commence complaining at me now.
i've been trying to clean up the kicker bug database and become familiar with the body of reports at the same time, specifically so i know what needs to be addressed.
the DESIGN and TODO documents are shaping up nicely as well.
i'm considering doing two things, both of which may result in some controversy. so i'm going to outline them here so people can yell at me pre-emptively:
1. get rid of the non-kicker "MacOS-style" menubar. instead, this will be replaced with a kicker (child)panel that has some special constraints, such as you won't be able to move it from the top. the menu applet will also disappear from the Add -> Applets menu and will lose its applethandle (hello Fitt!). this change is being promprted because i dislike having duplicated functionality, having to deal with silly bug reports that result from both kdesktop and kicker trying to do fancy workspace strut stuff and because i think having a menubar that allows adding applets to it is far more interesting than the current "MacOS-style" bar. oh, and there won't be a "Desktop Menubar" option, either. instead, i hope Seli will be able to help out with making the Desktop menus appear automagically when the rootwm has focus.
2. get rid of icon zooming. yes, you heard me right. get rid of icon zooming. i've been working on smooth icon zooming and its been fun, but i had an ephiphany: what purpose does it serve exactly? oh, right: eyecandy to look like Something That Isn't KDE(tm). well, screw that. instead, i want the icon title to appear above the icon when its moused-over. no zooming buttons, just useful text. this will provide an indicator of which icon you are over (along with the mouse-over icon effect), show some useful information and make kicker appear a bit "calmer" instead of Inflatable Icons The Grow When You Point At Them.
commence complaining at me now.
Sunday, October 24, 2004
the importance of beig earnest
it's time once again to steal a movie and title and blather on, but only briefly for it's a sunny day outside and George says i write too much as it is.
so... i'm toying with taking a 3 month sabbatical next year to work on KDE. will see how those plans turn out. i would like to spend most of it working on the linkage stuff with Scott et al.
reading through kicker's bug reports (till 6am last night. ug) is enlightening. learning a lot about how people use it. a lot of silly wishlist items, too. those ones get closed.
i'm getting to know digikam a bit better as i'm doing a write-up on it. fun fun. and i see that konversation is starting to get a sane(r) default UI. kudos!
so, earnest, and the importance of being it: never underestimate how much of an impact enthusiasm and sincerity will have on shaping the world around you. i'm continuously surprised to find out the cool things that happen just because i happened to be earnest somewhere at some particular time. it's a great feeling when positive energy spreads, and its the most potent fuel for building communities full of vibrant people.
ps. George: was this short enough?
pps. Keller Williams and the String Cheese Incident ROCK!
so... i'm toying with taking a 3 month sabbatical next year to work on KDE. will see how those plans turn out. i would like to spend most of it working on the linkage stuff with Scott et al.
reading through kicker's bug reports (till 6am last night. ug) is enlightening. learning a lot about how people use it. a lot of silly wishlist items, too. those ones get closed.
i'm getting to know digikam a bit better as i'm doing a write-up on it. fun fun. and i see that konversation is starting to get a sane(r) default UI. kudos!
so, earnest, and the importance of being it: never underestimate how much of an impact enthusiasm and sincerity will have on shaping the world around you. i'm continuously surprised to find out the cool things that happen just because i happened to be earnest somewhere at some particular time. it's a great feeling when positive energy spreads, and its the most potent fuel for building communities full of vibrant people.
ps. George: was this short enough?
pps. Keller Williams and the String Cheese Incident ROCK!
so you want to be a bug reporter...
maintaining kicker has meant that i'm dealing with the KDE bug tracking system quite a bit, which in turn has reminded me how frustrating it can be to deal with people who report bugs. so here's what i, and likely many other developers, look for in a bug reporter:
thoroughness is wonderful. those who report what led up to the bug, what happened at the moment the bug manifested itself and whether or not the bug is easily repeatable (and how to do so) make finding and fixing bugs so much easier. attaching relevant configuration files, backtraces and screenshots is also greatly appreciated.
clarity is divine. i don't care to read about your emotional state, the weather or other irrelevant details in a bug report. as Sgt Joe Friday used to say, "Just the facts, ma'am". simple, clear language is like fresh spring water on a hot day.
i love people who maintain their bug reports. often more information is needed, and therefore requested, by the developer(s) and having a follow up reply by the reporter within a week or so i really nice. also, if the bug disappears in a new version it's really great when the bug reporter notes that development!
one bug, one report. while it may be faster to plop every problem one comes across into a single report, this makes it very difficult for the developers to use the bug tracker to manage reports. those who open up a new report for each bug/wish add to the value of the system.
vote for bugs, don't duplicate them. it's always appreciated when a reporter looks to see if the bug/wish they are about to file has already been reported. it saves us all time and effort.
staying within the bounds of your knowledge. if you aren't familiar with the source code of the application/component responsible for the bug report, don't try and guess what the solution is. you'll most likely be wrong, so it just adds noise.
be nice. coming across a bug may be frustrating, but its also pretty demotivating to be yelled at. threats and accusations are really not necessary, and may in fact decrease the odds of the report being dealt with. developers are people too.
i woke up yesterday to a locksmith changing the locks on my doors. turns out my landlord had finally gotten someone in to fix the doors and locks, which were in need of some TLC. good thing i had slept it and hadn't yet left for work otherwise the whole "need a key to get in" thing would've been kind of tricky. not that its hard to break into this place, i just prefer not to.
and that night i went to a friend's place for pizza, drinks and conversation. turns out both her and her friend know Amaretto and her friend Crazy Girl that i ran into the night before that.
life is so strange sometimes.
Foreign Affairs Canada has asked me to clarify for those reading my blog that not all Canadians are odd. my being Canadian and odd is just coincidental. they'd like me to note that there are many non-odd Canadians, and that i'd probably be considered "odd" regardless of my citizenship.
besides, we all know that if you are looking for odd ex-British colony type people, you should round up a Kiwi or three. especially the sort that relocate to Northern Europe. ;-P
thoroughness is wonderful. those who report what led up to the bug, what happened at the moment the bug manifested itself and whether or not the bug is easily repeatable (and how to do so) make finding and fixing bugs so much easier. attaching relevant configuration files, backtraces and screenshots is also greatly appreciated.
clarity is divine. i don't care to read about your emotional state, the weather or other irrelevant details in a bug report. as Sgt Joe Friday used to say, "Just the facts, ma'am". simple, clear language is like fresh spring water on a hot day.
i love people who maintain their bug reports. often more information is needed, and therefore requested, by the developer(s) and having a follow up reply by the reporter within a week or so i really nice. also, if the bug disappears in a new version it's really great when the bug reporter notes that development!
one bug, one report. while it may be faster to plop every problem one comes across into a single report, this makes it very difficult for the developers to use the bug tracker to manage reports. those who open up a new report for each bug/wish add to the value of the system.
vote for bugs, don't duplicate them. it's always appreciated when a reporter looks to see if the bug/wish they are about to file has already been reported. it saves us all time and effort.
staying within the bounds of your knowledge. if you aren't familiar with the source code of the application/component responsible for the bug report, don't try and guess what the solution is. you'll most likely be wrong, so it just adds noise.
be nice. coming across a bug may be frustrating, but its also pretty demotivating to be yelled at. threats and accusations are really not necessary, and may in fact decrease the odds of the report being dealt with. developers are people too.
i woke up yesterday to a locksmith changing the locks on my doors. turns out my landlord had finally gotten someone in to fix the doors and locks, which were in need of some TLC. good thing i had slept it and hadn't yet left for work otherwise the whole "need a key to get in" thing would've been kind of tricky. not that its hard to break into this place, i just prefer not to.
and that night i went to a friend's place for pizza, drinks and conversation. turns out both her and her friend know Amaretto and her friend Crazy Girl that i ran into the night before that.
life is so strange sometimes.
Foreign Affairs Canada has asked me to clarify for those reading my blog that not all Canadians are odd. my being Canadian and odd is just coincidental. they'd like me to note that there are many non-odd Canadians, and that i'd probably be considered "odd" regardless of my citizenship.
besides, we all know that if you are looking for odd ex-British colony type people, you should round up a Kiwi or three. especially the sort that relocate to Northern Europe. ;-P
Friday, October 22, 2004
kicker and women
don't let the title of this entry deceive you: kicker and women have little in common, besides both tending towards complexity that often seems less than necessary. no, rather these are the two topics on my mind right now and putting them together in the title sounds salacious. and i'm not one to pass up on salaciousness.
kicker is everything i'd imagined it to be: an unending stream of bug reports and a code base that's so finicky and full of options that doing things in it is often like dancing in a ballet. which is to say it requires a good amount of grace, strength and agility.
ballet dancers tend to have gorgeous backs and legs. and that, my friends, is my oh-so-graceful segue into topic #2.
i have a friend coming next month to keep me company for a week. haven't seen her since august 2003, so i'm excited. she's off in Vancouver at the moment attending a poetry reading by Billy Corgan. lucky girl.
but she's not here, so last night before commencing some hacking on kicker (which didn't happen, as you will soon read about) i went for some food. i had a hankering for nachos (no idea why, really) and so went to the nearest place that makes non-disgusting nachos. that would be the Elephant and Castle. a girl i saw for a while works there, but she works the lunch shift, so i figured it would be safe enough to go there and have a snack in peace without running into her. don't get me wrong, she a nice girl i just didn't feel like entertaining company. i wanted to hack.
i sit down and order and as the food arrives, so does she. apparently she now works evenings in the Sears directly above the pub (yes, it's an odd building). she sits down and we start visiting, which is basically me talking as she's a very quiet girl. rather simple-headed, to be honest, but i'm a sucker for the red heads. she devours much of my nachos, so i offer to buy her something of her own to eat. she orders poutine. i start wondering if this was her first food of the day?
we continue visiting for a bit and i'm planning my escape when a 20-something Russian emigre comes up and introduces himself. he's from Moscow and been here for 2 years. i invite him to join us, he buys a round of beer. i'm now on my third Guiness, two more than i had expected at this point in the evening. he tells stories of Russia, why he moved here, things he's done since immigrating. the girl goes to the washroom and Eugene the Russian asks me if she's my girlfriend. i tell the truth and say no. he doesn't believe me. "How can you know such a girl for almost one year and not be dating her? You must either be gay or you are lieing to me!" uh-huh. i couldn't be bothered to explain my relationship habits to Eugene so i just insisted that we weren't dating. our female company returns, finishes her beer and then excuses herself as she's had a long day and wishes to go home and sleep. she says she'll phone. oh, goody.
Eugene suggests we catch a cab down to the area of town we live in, and that if i buy a round at the neighbourhood pub, that he'll pay for the cab. i agree to the deal. we go into Watchmans and i buy a round of Alexander Keiths for the two of us. he asks if i see any girls that would make for good conversation. i scan the room and point out a table with two girls who are by themselves and are decent looking, at least from the other side of the pub. Eugene, who's name is actually Evgeny, walks right up to them and asks if we can join them. they say sure, so he motions me over and we sit down. he introduces himself (they take to calling him Russia for the rest of the evening, however) and my stomach starts to quiver ever so slightly. i know these girls. but, i think, perhaps they won't remember me.
no such luck. "Hey, I know you!" says one of them, who's name sounds very much like Ameretto, the liquor. "Yeah, we hung out once last spring," i say, knowing that playing dumb is not a viable option. then another girl comes and sits down. the girl i was hoping wasn't with them tonight, the crazy girl with the dark hair. she immediately recognizes me. "Hey! It's you!" Russian/Eugene/Evgeny looks at me and says, "You know these girls?" i nod, but don't bother explaining. crazy dark haired girl says, "He knows us. He said I was fat when we met." Eugene wassn't sure what to say about that. i just took it as par for the course.
but know, dear reader, that i said no such thing about Crazy Girl. i mean, we'd only just met and breaking the Fat News to a girl is second-night-of-drinking material, at least. we'd met by complete happenstance, actually. i was eating nachos one evening in a pub (see the connection? i really need to stop with evening nachos) and these two very pretty girls sitting across from me kept looking at me and my nachos. eventually i said, "Look, would you like some of my nachos?" they dove in with much thanks and what not, introduced themselves (they were sisters) and things were generally good until Crazy Girl showed up. loud, defensive and with a couple of young-dumb-and-full-of-cum goofballs in her wake it immediately made things suck. the sisters did end up dragging me all around the town that night, though, which wasn't horrible. at least not until they insisted on going to Cowboys, my least favourite place in this city. anyways, that was many months ago.
this night would be more fun, however. see, Eugene invites them back to my place (gee, thanks for volunteering me Russia). the girls of course decline (whew!) and then start trying to figure out how Eugene and i know each other. they don't believe that we just met. in any case, Eugene was getting drunk so he excused himself to go home and sleep it off before work in the morning. i bid him goodnight, he asked if i could hook him up with the redhead from the Elephant and Castle, i say i'll see what i can do (suuuuure). i nurse my beer for the next few hours with the table of three girls.
during this time another fellow who is by himself at another table starts listening in to our rather odd conversations. he was obviously enjoying it. i went to the washroom and he followed me in and asked which one was my girlfriend. i told the truth: none of them. he wasn't sure whether to believe me. i was tempted to tell him that i was gay to get him off my back, but instead decided to just pee according as per my original plan. he follows me back out. do i have a sign on my back that says, "follow me for girls"? well, the girls invite him to sit down at the table. he was their problem now.
for some reason (i forget the specifics of the conversation that led to this) i say that Crazy Girl looks like Genine Garofalo. New Guy gets a look of horror on his face, and tries to cover for me. "You don't look like her at all!" hm? what's so bad about looking like Garofalo? well, for some reason my Garafolo comment makes Crazy Girl happy. it turns out she likes film. so do i. so we started talking about film. she pulled out her discman and insisted i should listen to this soundtrack she had with her. i have to admit, it was a really good disc, mellow and melodic. but it made the rest of the experience feel very Salvador Dali. who needs drugs when you've got crazy people and music that is contextually out of place surrounding you?
we continue to discuss film, she writes down a list of films which she hasn't seen in her day timer as i tell her about them. she shows me a poem she wrote about some guy who wasn't nice to her. (i wanted to ask "Did he say you were fat too?" but i successfully resisted the urge) i ended up writing in her day timer before the night was over, and while i'm guessing she's expecting to find my phone number or some other piece of contact information she'll just find a rather cryptic bit of verse. i blame it on her music.
i wonder what the next encounter with Crazy Girl and Amaretto will be like. it is, of course, inevitable. karma has a way of laughing at me like that.
kicker is everything i'd imagined it to be: an unending stream of bug reports and a code base that's so finicky and full of options that doing things in it is often like dancing in a ballet. which is to say it requires a good amount of grace, strength and agility.
ballet dancers tend to have gorgeous backs and legs. and that, my friends, is my oh-so-graceful segue into topic #2.
i have a friend coming next month to keep me company for a week. haven't seen her since august 2003, so i'm excited. she's off in Vancouver at the moment attending a poetry reading by Billy Corgan. lucky girl.
but she's not here, so last night before commencing some hacking on kicker (which didn't happen, as you will soon read about) i went for some food. i had a hankering for nachos (no idea why, really) and so went to the nearest place that makes non-disgusting nachos. that would be the Elephant and Castle. a girl i saw for a while works there, but she works the lunch shift, so i figured it would be safe enough to go there and have a snack in peace without running into her. don't get me wrong, she a nice girl i just didn't feel like entertaining company. i wanted to hack.
i sit down and order and as the food arrives, so does she. apparently she now works evenings in the Sears directly above the pub (yes, it's an odd building). she sits down and we start visiting, which is basically me talking as she's a very quiet girl. rather simple-headed, to be honest, but i'm a sucker for the red heads. she devours much of my nachos, so i offer to buy her something of her own to eat. she orders poutine. i start wondering if this was her first food of the day?
we continue visiting for a bit and i'm planning my escape when a 20-something Russian emigre comes up and introduces himself. he's from Moscow and been here for 2 years. i invite him to join us, he buys a round of beer. i'm now on my third Guiness, two more than i had expected at this point in the evening. he tells stories of Russia, why he moved here, things he's done since immigrating. the girl goes to the washroom and Eugene the Russian asks me if she's my girlfriend. i tell the truth and say no. he doesn't believe me. "How can you know such a girl for almost one year and not be dating her? You must either be gay or you are lieing to me!" uh-huh. i couldn't be bothered to explain my relationship habits to Eugene so i just insisted that we weren't dating. our female company returns, finishes her beer and then excuses herself as she's had a long day and wishes to go home and sleep. she says she'll phone. oh, goody.
Eugene suggests we catch a cab down to the area of town we live in, and that if i buy a round at the neighbourhood pub, that he'll pay for the cab. i agree to the deal. we go into Watchmans and i buy a round of Alexander Keiths for the two of us. he asks if i see any girls that would make for good conversation. i scan the room and point out a table with two girls who are by themselves and are decent looking, at least from the other side of the pub. Eugene, who's name is actually Evgeny, walks right up to them and asks if we can join them. they say sure, so he motions me over and we sit down. he introduces himself (they take to calling him Russia for the rest of the evening, however) and my stomach starts to quiver ever so slightly. i know these girls. but, i think, perhaps they won't remember me.
no such luck. "Hey, I know you!" says one of them, who's name sounds very much like Ameretto, the liquor. "Yeah, we hung out once last spring," i say, knowing that playing dumb is not a viable option. then another girl comes and sits down. the girl i was hoping wasn't with them tonight, the crazy girl with the dark hair. she immediately recognizes me. "Hey! It's you!" Russian/Eugene/Evgeny looks at me and says, "You know these girls?" i nod, but don't bother explaining. crazy dark haired girl says, "He knows us. He said I was fat when we met." Eugene wassn't sure what to say about that. i just took it as par for the course.
but know, dear reader, that i said no such thing about Crazy Girl. i mean, we'd only just met and breaking the Fat News to a girl is second-night-of-drinking material, at least. we'd met by complete happenstance, actually. i was eating nachos one evening in a pub (see the connection? i really need to stop with evening nachos) and these two very pretty girls sitting across from me kept looking at me and my nachos. eventually i said, "Look, would you like some of my nachos?" they dove in with much thanks and what not, introduced themselves (they were sisters) and things were generally good until Crazy Girl showed up. loud, defensive and with a couple of young-dumb-and-full-of-cum goofballs in her wake it immediately made things suck. the sisters did end up dragging me all around the town that night, though, which wasn't horrible. at least not until they insisted on going to Cowboys, my least favourite place in this city. anyways, that was many months ago.
this night would be more fun, however. see, Eugene invites them back to my place (gee, thanks for volunteering me Russia). the girls of course decline (whew!) and then start trying to figure out how Eugene and i know each other. they don't believe that we just met. in any case, Eugene was getting drunk so he excused himself to go home and sleep it off before work in the morning. i bid him goodnight, he asked if i could hook him up with the redhead from the Elephant and Castle, i say i'll see what i can do (suuuuure). i nurse my beer for the next few hours with the table of three girls.
during this time another fellow who is by himself at another table starts listening in to our rather odd conversations. he was obviously enjoying it. i went to the washroom and he followed me in and asked which one was my girlfriend. i told the truth: none of them. he wasn't sure whether to believe me. i was tempted to tell him that i was gay to get him off my back, but instead decided to just pee according as per my original plan. he follows me back out. do i have a sign on my back that says, "follow me for girls"? well, the girls invite him to sit down at the table. he was their problem now.
for some reason (i forget the specifics of the conversation that led to this) i say that Crazy Girl looks like Genine Garofalo. New Guy gets a look of horror on his face, and tries to cover for me. "You don't look like her at all!" hm? what's so bad about looking like Garofalo? well, for some reason my Garafolo comment makes Crazy Girl happy. it turns out she likes film. so do i. so we started talking about film. she pulled out her discman and insisted i should listen to this soundtrack she had with her. i have to admit, it was a really good disc, mellow and melodic. but it made the rest of the experience feel very Salvador Dali. who needs drugs when you've got crazy people and music that is contextually out of place surrounding you?
we continue to discuss film, she writes down a list of films which she hasn't seen in her day timer as i tell her about them. she shows me a poem she wrote about some guy who wasn't nice to her. (i wanted to ask "Did he say you were fat too?" but i successfully resisted the urge) i ended up writing in her day timer before the night was over, and while i'm guessing she's expecting to find my phone number or some other piece of contact information she'll just find a rather cryptic bit of verse. i blame it on her music.
i wonder what the next encounter with Crazy Girl and Amaretto will be like. it is, of course, inevitable. karma has a way of laughing at me like that.
Wednesday, October 20, 2004
dealing with clients who do not listen and things i prefer to do
a client's server got compromised yesterday due to them adding an anonymous FTP server to the machine with uploads allowed, even though i said not to. now i get to waste several hours of my day. why can't people just listen?
hacked on kicker while on IRC till midnight last night. recruited a new coder to work on KDE while doing that. he's starting in on some easier things in kicker. way to go! and wicky has found inspiration to work on the layout code in ContainerArea. it's amazing how activity begets activity. i'm happy about this.
let's see if the same thing happens with the kNX client next week.
i've also been tooling about with a new website where i can shelve patches, scripts and random stuff. it's rather ugly, but i'm not a graphic designer.
hacked on kicker while on IRC till midnight last night. recruited a new coder to work on KDE while doing that. he's starting in on some easier things in kicker. way to go! and wicky has found inspiration to work on the layout code in ContainerArea. it's amazing how activity begets activity. i'm happy about this.
let's see if the same thing happens with the kNX client next week.
i've also been tooling about with a new website where i can shelve patches, scripts and random stuff. it's rather ugly, but i'm not a graphic designer.
Monday, October 18, 2004
optimization by 10,000 commits
this morning while brushing my teeth i remembered an interview i read with some of the PostgreSQL developers around the time of one of the 7.x releases. the interviewer noted how much faster PostgreSQL was compared with an earlier 7.x version and especially when compared to the 6.x series, and asked what they had done to achieve these results. a developer responded that there wasn't any specific development in particular that had caused this speeed boost. rather, they had made a 1% improvement here, and a .5% improvement there, etc. eventually these little optimizations piled up across the code base and their combined weight created a noticeable improvement. a lack of obvious optimization targets led to a holistic approach of "improve whatever you can, even if it seems trivial right now."
coming up on KDE 3.4 and KDE 4.0 after that, i think we're in a similar situation to the PostgreSQL developers above. Qt4 may give us some nice speed boosts and lower our memory consumption in KDE4 "for free" (though the impact of Qt4 is yet to be seen and measured), but we have a large codebase in kdelibs and kdebase that forms the "base KDE platform" that we have complete control over. there may not be any single stretch of code that is needlessly responsible for 5% of execution time, but i be we can find 50 places that are each responsible for 0.1% of execution time that can be optimized.
a nice thing about this approach is that it doesn't require much distraction from other development efforts. improve what's near, and we'll see a cumulative improvement.
(p.s. i'm not suggesting radical, code-uglifying micro-optimizations be applied everywhere, as maintainability and reliability are equally important. but our code base isn't so tight that those are our only optimization possibliities.)
coming up on KDE 3.4 and KDE 4.0 after that, i think we're in a similar situation to the PostgreSQL developers above. Qt4 may give us some nice speed boosts and lower our memory consumption in KDE4 "for free" (though the impact of Qt4 is yet to be seen and measured), but we have a large codebase in kdelibs and kdebase that forms the "base KDE platform" that we have complete control over. there may not be any single stretch of code that is needlessly responsible for 5% of execution time, but i be we can find 50 places that are each responsible for 0.1% of execution time that can be optimized.
a nice thing about this approach is that it doesn't require much distraction from other development efforts. improve what's near, and we'll see a cumulative improvement.
(p.s. i'm not suggesting radical, code-uglifying micro-optimizations be applied everywhere, as maintainability and reliability are equally important. but our code base isn't so tight that those are our only optimization possibliities.)
kicker maintainership, pundits, sabatical?
recently took on maintainership of kicker since it was in need. there's now a HACKING file and the start of a DESIGN file. patches are welcome and will be quickly processed; please follow the style in the HACKING document, of course. =) i've been working on three things in particular: taskbar, smooth icon zooming and getting rid of the hardcoded panel. Panel::the() is nearly gone on my machine at work; the icon zooming is now in its third revision and, while buggy, at least stable; a lot of optimization work and some feature additions have been done. with all this happening, kicker really needs testing. please bug me by email about any regressions. anybody looking to get into kicker hacking is welcome to pester me as well ;-)
now... is it just me, or are there way too many people writing about things in Open Source that they just have no idea about? i mean, i have opinions on the space programs of various nations, sure. but you don't see me writing articles in nasaobserveronline.com offering critique and advice on how the space shuttle should be engineered. i feel that if you don't have the qualifications to actually do the work you are "analyzing" then don't analyze it because you'll almost certainly be wrong. many of our current herd of pundits love to editorialize on all sorts of topics they are not even remotely involved with and, even more astonishingly, they will argue against those who are both qualified and involved (and who usually lack soapboxes of equal statue since they're busy DOING things). having opinions is a fine thing, don't get me wrong; but sharing them from a position of self-made authority when you lack any claim to such authority is just wrong.
why do i care? because it slows us down, causes strife and friction where there need be none and sometimes even causes well-intentioned people to chase white rabbits down blind alleys. this doesn't help us in the least.
the written word is a powerful thing and should be used with responsibility and respect. if you aren't qualified in the topic you are writing about, then just report the facts and keep the editorializing for the airmchair in the den.
in other news, i'm considering taking a sabatical of some sort next year so as to work on KDE concertedly for a few months. i want to be able to concentrate on some KDE4 things. financing it will require some creativity, but i think it's doable.
now... is it just me, or are there way too many people writing about things in Open Source that they just have no idea about? i mean, i have opinions on the space programs of various nations, sure. but you don't see me writing articles in nasaobserveronline.com offering critique and advice on how the space shuttle should be engineered. i feel that if you don't have the qualifications to actually do the work you are "analyzing" then don't analyze it because you'll almost certainly be wrong. many of our current herd of pundits love to editorialize on all sorts of topics they are not even remotely involved with and, even more astonishingly, they will argue against those who are both qualified and involved (and who usually lack soapboxes of equal statue since they're busy DOING things). having opinions is a fine thing, don't get me wrong; but sharing them from a position of self-made authority when you lack any claim to such authority is just wrong.
why do i care? because it slows us down, causes strife and friction where there need be none and sometimes even causes well-intentioned people to chase white rabbits down blind alleys. this doesn't help us in the least.
the written word is a powerful thing and should be used with responsibility and respect. if you aren't qualified in the topic you are writing about, then just report the facts and keep the editorializing for the airmchair in the den.
in other news, i'm considering taking a sabatical of some sort next year so as to work on KDE concertedly for a few months. i want to be able to concentrate on some KDE4 things. financing it will require some creativity, but i think it's doable.
Subscribe to:
Posts (Atom)
