Thursday, December 30, 2004

at the end of 2004

as the 2004 calendar year draws to a close, i look back at the year and smile at the memories, both the good times such as those in Germany this year and getting through some of the tougher trials these 12 months brought.

i think of those living through the chaos of the recent tsunami megadisaster and feel saddened and am touched.

i think of my son and all the things we've done together this year and how i'll be seeing my mother again in January and feel very happy and am touched.

i suppose the common denominator is that i'm touched. in what way, i'll leave up to you to decide. ;-)

happy new year, people!

p.s. i see that planetkde.org totally murdered the layout of my last blog entry. *sigh*

Dismantling "'Free' Software Isn't Free"

Lobbyists are a well entrenched tradition of modern Western democracies. The idea is to pay someone (the lobbyist) to "preach your word" to the politicians and decision makers within the bureaucracy with the hope of influencing these people to enact legislation and make decision that fall in line with your personal ideologies and goals. Many lobbyists are not only well funded, but also well informed and skilled within their area of expertise, making the various lobbies around the world extremely powerful and potent groups. But some people who work in this Beltline industry are schmoes who's abilities are limited to producing embarrassingly bad essays masquerading as "analysis". Steve DelBianco is one such lobbyist.

Dismantling the Lunacy



In his recent article, 'Free' Software Isn't Free, Mr. DelBianco manages to commit gaffe after gaffe. Let's take a look at them one at a time.

[A] worldwide movement for "free and open software" falsely promises something for nothing plus the ability to modify code and share changes among users.


Mr. DelBianco is wrong that "something for nothing" has been promised. In fact, Open Source as a machanism is based around the concepts of participation, giving back and the venerable service contract. Ask any of the Fortune 500 companies who are making a killing with that latter item, such as IBM.

Mr. DelBianco then tries to make it sound like the ability to modify and share those modifications is a false promise. He isn't actually saying that, he's just leveraging the ambiguities of English in the hopes to trick someone into thinking that's what he's saying. But really, Mr. DelBianco knows that the right to modify software is as real as the check The Heartland Institute received from Microsoft to write this tripe.

State legislators attracted to the free software flame are likely to get burned if preference legislation opens a dangerous back door to purchasing safeguards and ends up costing more than commercial software alternatives.


I agree with Mr. DelBianco here. Legislation that ends up costing more with no commensurate return on said investment is questionable. Of course, one needs to look at all benefits which is a tricky thing at best since those benefits are far reaching often derivative in nature. But Mr. DelBianco never explains how Open Source software would "[end] up costing more", making this nothing more than a hollow specter dangled to scare the timid.

By the way, I liked his turn of phrase positioning "burned" against "flame". Cute, in a grade 11 AP English class sort of way.

[T]he term "open source" is neither precise nor instructive, since these licenses vary greatly in their terms, and some are actually quite restrictive when it comes to modifying and redistributing software


At this point in his position piece, Mr. DelBianco resorts to lieing. Contrary to what he posits, Open Source is well defined, as is Free software. All Open Source licenses adhere to these definitions.

As for differences in licensing, anyone who has dealt with closed source software knows that licensing terms vary dramatically between such products as well. This is not a new danger, but rather simply par for the course and therefore largely irrelevant. Nice strawman, though, Mr. DelBianco!

Within the context of TCO, an initial cost advantage for free software can be offset by higher life cycle costs.


It certainly can. Which is why people need to do their homework, and if they do they'll discover that when used appropriately Open Source software leads to lower TCO time after time. Note that Mr. DelBianco never actually says that Open Source has a higher TCO. This is likely because he knows it doesn't.

This is a tactic I call "attacking with your weaknesses". If you lead with your weak foot you can deliver it as positively as possible in the hopes of limiting the damage your opponent can do with it. This is why in court lawyers will often race to expose the weaknesses of their own case before the opposing side can.


[W]hen a programmer employed in a state agency changes just a few lines of code, he voids any quality and support guarantees from the vendors who initially provided the software. By modifying the software, the state shoulders the burden of software support.


Unless, of course, your service contract covers this. Or unless you work with the upstream project or your service provider and they deliver supported packages with your changes. This also assumes that one will ever change the software themselves and then put it into production use in the first place. In reality, end users modifying production software is done rarely and only as a last resort. It is done when the benefits of doing so outweigh all the costs. At least with Open Source this is an option that can be called upon in times of need. With closed source software this isn't even an option.

Again, Mr. DelBianco is attacking with his position's weaknesses.

[S]tate mandates for open source licensed software could encourage decentralized purchasing decisions, without regard for a state's broader IT strategy.


Here Mr. DelBianco appeals to a bureaucrat's sense of survival, which is to say the protection of their sphere of control. He threatens IT managers with the spectre of losing control over their subordinate decision makers. He never explains how this might happen nor does he mention that it's equally likely with closed source software. Mr. DelBianco just throws it out there and then abandons the concept without any proof to back it up in hopes some gullible public worker will buy it and act out of fear of losing relevance, which is often equivalent to professional suicide in public service.

Finally, in an era of viruses, worms, and spyware, IT security has never been more important.


Mr. DelBianco is completely correct here but he fails to mention that Open Source software has fewer of these viruses, spyware and worms that he warns about. Again, by attacking from a position of weakness, Mr. DelBianco hopes to spuriously convince (aka "trick") his readers into thinking that Open Source is less secure when the reality is otherwise. This is a strength of Open Source, despite how Mr. DelBianco attempts to spin it.

Software that's downloaded and deployed without state approval could compromise the security of sensitive citizen information such as Social Security numbers or health records.


Maybe someone should tell Mr. DelBianco that this isn't unique to Open Source software. It applies to all sorts of software, and doubly so to the sort that you can't audit, namely closed source software. Of course, Mr. DelBianco undoubtedly already knows this, but his goal isn't truth but rather to pull the wool over the eyes of our hard working public servants.

The American IT industry predominantly uses commercial licenses for its software and would unquestionably be harmed by state preferences for non-commercial licenses


Now we come to the quick of it! Nestled in amongst all this hoo-hah is the real point Mr. DelBianco wants to make. Everything else is just so much hot air to pad out the article to make this one sentence point.

Yes, Mr. DelBianco's true purpose is to remind legislators that Open Source is a threat to American software companies who are based squarely on closed source licensing and who are unable or unwilling to shift from this model.

He ignores the fact that giants such as Oracle and IBM as well as niche players such as Alias (makers of Maya) and CodeWeavers are doing just fine with closed products on Open Source software plaftorms. He also ignores that "pure play" Open Source companies in the Unite States such as Red Hat and Sleepycat are doing rather well these days, too.

Why does Mr. DelBianco ignore these successes and instead warn about failures? Simple: he is trying to save the buggy whip makers of today's IT industry. He is trying to remind legislators that free market, capitalistic competition is not good for companies whose business model becomes antiquated and who refuse to make the necessary adjustments to remain competitive.

Mr. DelBianco is being used as a hand puppet by the Microsofts of the world to say as non-alarmingly as possible, "We're getting our ass handed to us on a plate and don't know what to do."

Here's my suggestion to those interests: adapt. Others have, and so can you. You don't need second rate lobbyists writing third rate essays. What you need is a desire to compete and the strength to innovate. If you lack that, you don't deserve to survive, and in a capitalistic market you won't.

Tuesday, December 28, 2004

TPOSSCON/FSG Accessibility; kscd & media:/, kicker redux

christmas went quite well. we had two great dinners with the extended family and some real nice visiting time. next year will be odd as Mahlah's parents, who are the traditional hosts of the christmas events, are moving to the West Coast. i don't know what we'll do yet, whether we'll all go out to the coast or just make other plans.

this year Peyton made off like a bandit, as usual. he's the only grandson, and the only child in the family who is around on a regular basis. so he gets spoiled pretty well at times like christmas. this year he walked off with a brand new wardrobe of clothes; a nice library of books, DVDs and video games; some amazing toys such as a robot and set of working (!) plastic kitchen appliances. i think he's just about ready for a place of his own. ;-)

i went to high school in Hawaii, and moved back to Canada when i was 19 after a little over 7 years in the sun. Hawaii was where i learned about surfing, cultural diversity and computer programming. my mother still lives there. so i'm rather excited about being out in Hawaii for a week in January representing KDE at the Trans Pacific Open Source Conference and the FSG Accessibility Workshop. i'll be meeting up with KDE's own accessibility heros, Gunner and Olaf Schmidt, for the latter conference. should be fun times!

JakubS sent me a preliminary patch for adding media:/ support into kscd, which recently got some attention on TUX magazine's website. i like the patch so far and plan on having it in for 3.4. that and a buttload of bug fixes for cddb handling and some play/pause button misbehaviour.

i've been working on better kiosk support for kicker, based on feedback from real life users of KDE in corporate deployments. i owe Waldo, Tackat and a couple of others thanks for helping get the requirements defined for that. so... thanks!

the kicker tooltip effect is also quite a bit more efficient now, the "kicker doesn't get get populated with a new user account" bug is fixed and kicker on dual head now stores and reads its configurations properly again. huzzah! only 2^20 more FIXMEs to go ;-)

oh, and does anyone feel like apoligizing for me?

Thursday, December 23, 2004

Qt Designer redux; KFormDesigner

reading my recent entry regarding Qt Designer in Qt4 it occurred to me that i'd come off sounding a bit harsh. primarily this is due to the fact that i love that bit of software so much that i'm pretty protective of it =)

that said, i'm very aware that it's alphaware at the moment. i really like some of the new directions, and alphaware isn't meant to be unquestionably adored (otherwise it'd be stamped for Fianl Release, right?).

but what i wasn't aware of is that Roberto (who's a cool guy in general, btw =) has only been working on it for about 5 months. holy crap! that's a pretty impressive achievement for one person in 5 months. hopefully Roberto will read what i wrote and pick out the good points, toss the points he thinks i'm off the mark on, and spend the next 5 months making it Seriously Kick Ass.

he's got probably at least that much time left before i expect Qt4 to be Ready(tm), by which i mean a bug fix release or two after 4.0 sees the light of day.

go Roberto!




i was asked to provide some comments on KFormDesigner, the Qt Designer like app that comes with Kexi to design forms. it's meant to serve a similar function to the form designer in MS Access as far as i know. and to that end it does a pretty good job.

it follows the style of Qt3's Designer: MDI with toolboxes. but it's very minimal. it's great for whipping up basic forms for things like database apps, but it's not suited for general application development.

it has the nicer layout management that Qt4 Designer shows (add and move objects around without breaking layouts), though i don't know why they hide the layout options in a menu. they belong on the toolbar as much as any widget does as they are very commonly used. GUI designer apps are, IMHO, allowed to break the "keep the toolbars simple" rule-of-thumb because they are meant to be programmer's tools. as it is, there are already a crap load of icons, a few more won't hurt. =)

it is a bit odd, though, that while the layout buttons aren't on the toolbar, there's a combobox for switching styles on the fly! priorities seem a bit off here. i'd put the layout tools on the toolbar before a widget style switcher. i'd also break up the one big widget toolbar into a few smaller ones to make it possible to arrange them as desired.

i do like that they've kept to a fair minimum of widgets. they only show the KDE versions of Qt widgets, not both. obviously Qt Designer can't do this, but it would be nice if Designer allowed one to at least hide certain widgets. however, this spartan approach makes KFormDesigner, more than anything else, not useful for general application development. but this is a fine compromise to make since that isn't the purpose of this app, it's to make database forms.

same goes for the inability to make anything but a QWidget form. no dialogs, wizard, etc. "New" makes a new qwidget form, period. this is perfect for database apps, not so hot for app devel.

there are a number of other flaws, though, which goes to show how difficult it is to write an app of this sort. for instance, although KFormDesigner uses toolbars it doesn't allow one to double click on an item to keep that tool selected for multiple use. when you preview a form it doesn't show the effects of signal/slots connections made in the GUI (something that's always endeared Designed to me). repainting is done far too often, resulting in horrid flickerfests.

Shift+Delete removes a widget, though the context menu doesn't allude to this; i almost thought there wasn't a shortcut after Delete on its own didn't work. i don't know why Delete isn't enough: that's why we have Undo/Redo.

speaking of which, Undo/Redo behaves oddly at times. the worst behaviour is that it causes the the form to resize at times. and why are there widget alignment tools? isn't that what layouts are for? seems like a confusion of paradigms. the tab order editor is a bit clunky.

i also found that it was prone to the occasional crash. i know it's very hard to get this sort of app rock solid, but rule #1 of an editor is never to crash. you're carrying someone's unsaved work after all.

however, i do like the improved layout management and i really, really like that it puts you into edit mode after creating a widget automagically since that's exactly what one does 98% of the time anyways: create a button, change its label; create a label, change its text; etc... the signal/slot connection mechanism is also quite nice: click 'n pick, click 'n pick.

it would be nice if selecting a widget would show all it's connections graphically, ala what Qt4 Designer does but only for the selected widget (versus ALL of them at once, which is a nightmare).

in all, KFormDesigner seems to be shaping up to be quite a nice tool for database app design. i look forward to seeing a polished version of it, then maybe i can start convincing people here to move off of Access ;-)

the run for 3.4

so there are a couple more months left before 3.4 emerges from CVS and is released into the wild. between now and then i have only one more feature to add to kicker (proper Kiosk support). i'll probably be doing that tomorrow. and then it's polish, polish, polish. there are a good 20 or so TODOs with regard to making things work as well as i'd like them to in 3.4.0 so i'll need that time. in the end tally my time on kicker will probably end up looking like this:


  • New feature adds: 20%

  • Bug fixes (inc triage): 30%

  • Polishing new additions: 40%

  • Additional refactoring: 10%



thanks to everyone who have been submitting patches and helping out =)

i also need to spend some time on KsCD's CDDB dialog and a couple of UI glitches.

pow! to the moon!

thanks to Canllaith the Naiad (who also happens to be one of KDE's newest CVS account owners and our new FAQ maintainer) for the well-timed screenies below of the new kicker crunchiness. still not as cool as seeing it all happen in realtime, but this should give you an idea...

zoom!

zoom!

zoom!

w00t!

Qt4 beta 1 Designer

as i alluded to in my last blog entry, Qt Designer in Qt4beta1 is not so hot. which is a bit disappointing and quite disconcerting given the amount of time i spend using it. in fact, right now it pretty much sucks. i understand that it's a work in progress and probably pretty much just alpha, but boy is this thing an ugly duckling right now.

a large part of my disapointment stems from the fact that Qt Designer in Qt3 is not only really quite good, but i'm also really quite familiar with it.

here's why, in no particular order, Qt4's Designer is leaving me cold thus far:


  1. A Tree view for widgets? - i understand that stacker widgets kind of suck, toolbars get cluttered quickly, but a tree view? do these people understand how many freakin' widgets i have in Qt Designer? a tree view is horrendous for this task. already i fear the scrolling up and down, up and down that this widget choice will inflict upon me. a toolbox window with a few tabs (think the tool windows in photoshop or gimp) would be far better for this IMHO.

    but just picking a dubious widget isn't the end of the pain. layouts and spacers take up valuable space at the TOP of the tree when they are already (more easily) available from the toolbar right about the tree. alphabetizing things in the tree would also be a half decent idea.

  2. Drag and WHAT? - that'd be "drag and drop", which is how one is supposed to create widgets. you drag them from the tree view onto the form. how inane. this much slower and harder on the wrists than the two (unconnected) clicks of Qt3's Designer. worse, one can't click a widget entry and then "click click click" to create multiples of the same widget. one now has to drag from the tree to the form, and repeat. even the shortcut of Ctrl-dragging an existing widget to clone it isn't as nice or fast.

  3. Double what-ing? - double clicking. you know, that thing i've come to expect to open up edit dialogs? well, it doesn't do anything anymore. i truly hope this is just one of those feature sets they haven't gotten to yet.

  4. A horrible toolbar - the default toolbar has buttons for layouts and spacers, which is a good start. but who picked a combobox for switching between adding widgets, managing signal/slot connections and editting the tab order? could this be made any less efficient? what was wrong with the toolbutton group in Qt3's designer? it was quick and obvious. now it's just slow: not only does it take two clicks (versus one previously) and quite a bit more mouse navigation, it forces me to READ because there are no icons in it.

    and to make things even more fun, the layout items in the toolbar work totally differently than the drag'n'drop abominations in the treeview.

  5. Connections tool - connecting signals and slots in a GUI is really cool. but it's really broken right now. a picture's worth a thousand words here:

    and yes, it's as hard to use as it looks.

  6. Button order on dialogs - this is a small one, but c'mon, did they have to switch the order of Cancel/Ok on dialogs? is the author of this working on a Mac or GNOME? i can't imagine they are doing this on KDE or Windows with that button order.


there's more. a lot more. some of which they note are not finished in the release notes, but a lot of things weren't. i don't want to kvetch too much here (though i probably already have ;). i do hope the people responsible for Designer get it into usable shape by the time Qt4 actually ships.

there are bright spots though: i can now take advantage of my dual head Xinerama set up more effectively now that the MDI pain is gone. i like some of the visual effects and the interactivity seems to be better. i do like the ability to clone widgets and how you can add widgets to existing layouts w/out breaking them first. so there is promise in this new revision of my beloved Designer, let's see how it unfolds.

new kicker eye candy, kicker in kde4, Qt4, xmas

behold:



what you can't see is the cool fade in animation. (thanks Zack Rusin, you rock!)

zoom icons are now gone as per the plan. the bugs just kept mounting on them and they were looking dated. not to mention this trumps those annoying (and IMHO ugly) yellow tooltips that would obscure buttons. i'll also be able to get rid of another, now unnecessary, layer in the class hierarchy. this new bit of eye candy should also help give KDE a more distinct (and therefore recognizable) look.

truth be told, i'd love to see these new mouse overs dressed up even more. i'd like kicker to look nicer in general. which is why in KDE4 it will receive a new theme engine (along with cool things like floating panels, the groundwork for which has already been laid). the configuration dialog is way too complex and a lot of that is because the theming is so primitive. witness the tiles settings, and the transparency and background and... making kicker look more modern will hopefully make KDE4 more appealing, but it will also help with the configuration problem.

since i'm no artist, kde-look.org is going to be running a series of contests this spring to get (implementable and usable) concepts to spiff up the look and feel of kicker in KDE4. and speaking of kde-look.org, they are running a very cool SVG background competition. i'm on the judging panel to help select the four pieces of art that will end up in KDE 3.4, so i'm doubly excited.

and as if that weren't enough, there was a beta of Qt4 released today. and boy is Qt Designer a disaster at the moment.

and of course, Christmas is but a few days away. there are a lot of things i don't like about the Christmas season, but there are a lot of things i do. it struck me today that i should pick one of those things that i do like and do it again when the weather warms up. random happiness.

Thursday, December 16, 2004

paranoid androids invade my secret hiding place

i went out last night to my Secret Hiding Place, which happens to be a seedy little dive of a karaoke bar that i go to from time to time to get away from the usual pace and colour of my life. i even get up and sing. i believe that stretching one's limits and willfully engaging in potentially embarrassing situations is healthy for soul.

anyways, it didn't quite work out as expected this night.

first, when i sat down at a table some people came over that i'd met some weeks prior briefly on one of my out-on-the-town prowls. they remembered my name and everything, which sucked because i'm horrible with names and didn't remember theirs. (it's so much easier when its a mutual affliction.) i did remember their faces and where we met, though, so that counted for something. they asked how i was doing and i did my usual "answer with honesty" thing and said it had been a long, hard day. they asked why and i told them that i'd spent the day fixing an application at work that broke and dealing with a blog entry of mine being linked on a popular geek website. i left it vague because i didn't feel like getting into the details of my day. i mean, that's why i was at my Secrete Hiding Place, right?

well, one of them says, "which geek site, slashdot?" i couldn't believe my luck. here i am trying to escape my digital life for a few hours and the first people i talk to read slashdot. i nod, they ask me what my last name is, and then get all excited about having read the article. life is BIZARRE.

and then came the paranoiacs. i was up singing my first song when in walks some people i'd done business with previously. they see me up there and hoot and holler encouragement. so much for anonymity, for the second time. after my song i went over and had a beer with them.

one of the guys is convinced that this other person who had invested in a business deal that didn't work out was out to get him, and that he'd come in on their wireless LAN connection and stolen all their corporate data. "ALL of it!" he kept going on and on with this rather implausible sounding story full of scheming and High Conspiracy. the IT guy that was out with them has a pretty odd story about it as well. what's the bet a disk failed or a backup went awry and Evil Man got tagged with the blame by IT Guy?

reality seemed to be optional at this point and Paranoid Android asks me if i want to have some "sport" and "hack [Evil Man]'s network" for him. needless to say i finished my beer and went back over to the relative shelter of the slashdot reader's table.

i got invited to have early-early morning breakfast with a rather nice girl i met there, but her friends had other plans (namely going home and sleeping, apparently) and they were her only ride home. she asked if i had a car there and i explained that i don't bring my car with me if i'm going to drink because if i do i'm apt to drive and that's a Bad Thing(tm). i do question the sanity of requesting a ride home from someone you've only talked to briefly twice, though. she took my phone number instead, and that was that. what a boring end to the night.

i think it's time for a new Secret Hiding Place.

a startling realization

after reading the bajillionth talkback, email and blog that arrived in response to my blog's slashdotting today i came to a startling realization:

the vast majority of people out there who use Open Source software don't know how it gets made and what makes it possible to compete in a world of standards and technologies that are a mixed bag of open and not-open.

hacking together a 10k line program to do something specific in your spare time is one thing. creating a desktop platform, a file & print service, a web server and attendant software stack, an operating system or a world-class database is something totally else.

two things (among others, of course) are required to have large scale, complex Open Source software packages that rival or surpasses that of commercial, closed-source equivalents:

1) resources. conferences, standards committee involvement, hardware, bandwidth and even a few salaries here and there are pretty critical to getting large scale Open Source programs off the ground and sustained over the long haul.

look at the recent FireFox funding drive, or how Sun almost exclusively bankrolls Open Office development (Novell's been getting involved lately too) or how MySQL Inc drives MySQL development, or how many of the main Linux kernel developers work during paid hours on it or the size of the yearly budgets for projects like KDE and GNOME. it's undeniable that these things take resources. in fact, most of the projects could do with a lot more resources, but make do with what they have.

these much needed resources come from those who have them, and usually that means companies, governments and to a lesser extent educational and R&D institutions. that means having these people interested, which means offering something they need and/or want in return. that "something" is usually an attractive technology stack with a large user base. and this is not evil or anti-Open-Source-ethic: this is fair trade.

2) developers. developers aren't magic time-traveling elves (though that is one of my favourite sayings these days ;). in fact, developers come almost exclusively from the user base. a small user base means a small developer pool. look around and check out the user base <=> developer ratios in projects. projects with low visibility and small user bases tend to have small numbers of developers relative to the developer pool available in that niche.

now the commonality between the two points above is that for Large Scale Open Source projects to be sustainable (aka "viable") they need a large user base. take away the user base and watch the resources and developers evaporate. without resources and developers watch the development slow down like a mountain stream during an ice age.

that's why i ponder the future of our user base and why i connect that future to the viability of large scale Open Source projects. that's why i grow concerned when i see a way for a vested interest to cut off our air supply (our user base) being handed to them.

this isn't about taking over the world, or the Free Software Fanatics club or any sort of weird incomprehensible agenda. it's simply that i've seen first hand by being involved in the trenches what fuels the KDE's, samba's, Linux and BSD's, Firefoxes, PostgreSQL's and OOo's of the world. take that fuel away and Open Source development will return to what it was in the early 90s: a very cool but pretty much irrelevant topic.

personally, i don't want to see that happen.


p.s. for those who seem to think i'm some sort of Free Software zealot: i get paid to write closed source software. i even own the copyrights to a few pieces of commercial, closed source software that are in production use by clients of mine right now. i'm a pragmatist, which i know is a bit hard to grok in this day and age of popular reactionism.

if i do have any agenda, here it is: i nearly left the computing industry for good in the mid-90s because it became boring and a world of corporate controlled lock in. Open Source made it interesting for me again. i also see great, non-trivial social benefits that can come from Free Software. ergo i want to see it succeed, which means be around in a form that is useful to may day-to-day needs in 20 years.

Wednesday, December 15, 2004

days like today

mahlah's having an off day today; winter time / xmas blues. we're going to meet up for coffee and console each other. =)

it's days like today that remind me what an effort it is to be less than private. the masses were freed upon my blog about Open Source targetting windows and predictably they read but don't comprehend.

endless comments about the same three things:

1) it's all about Freedom of choice (my argument says nothing about limiting Freedom of choice; in fact, it's not about Freedom at all)

2) i shouldn't be pushing people towards Linux (good, because that's not what i'm advocating; i was actually talking about Windows here)

3) migration is easier with common applications (well no kidding! it's about trade offs, though, and i tried to make that part clear)

and almost nobody addresses the issue i brought up: will Microsoft allow Open Source to co-exist on their platform and will Open Source on Windows actually provide a good showing for Open Source?

so 99% of people missed the point. fair enough. nobody said i was a good writer, nobody said my ideas bore the clarity of fine diamonds.

at least now i know that i don't care about portability and that i'm completely full of myself. *rolls eyes*

i am glad that people are talking about it though. i am glad that we can see the attitudes and viewpoints of people in and around the community on the matter. these are the things that matter because we have not generally paid much mind to the consequences of what we do as a part of this wonderful Open Source community, and if we wish to survive (not take over the world, just survive) in the face of popularity some of us need to start doing so.

Tuesday, December 14, 2004

the HCI apprentice; search networks; neighbours

today Peyton switched from using the Plastik window decoration to using the laptop window decoration. he's pleased with it with one exception: the close (or, in Peytonese, "the ecks") button is on the left. after hitting Apply in the configuration dialog, he turns to me and say, "I think I've found a bug." he then showed me that the ecks is on the "wrong side." i explained that the decoration put it there on purpose. he got his "I'm thinking really hard about this" look on his face and then asked, "But why isn't that a bug?" oh yes, already he's learning the basics of HCI, starting with consistency. fear his arrival on kde-usability-devel ;-P

i'm currently reading "Modern Information Retrieval" by Ricardo Baeza-Yates and Berthier Ribeiro-Neto (ISBN 0-207-39829-X). the preponderance of hyphenated last names aside, this book rocks. there are a number of structures detailed in the book that are hauntingly similar to what Scott, myself and others have been looking at for desktop searching.

the parts on distributed and parallel searching are very interesting, and it's good to be able to start learning some of the math behind these data structures in general. it's a little unsettling that the book seems to imply that the least developed area of this field of study is the user interface. apparently to date user interfaces on these sorts of systems have pretty much sucked. looking around at what's available in the industry for actual users, i'm not going to argue much.

my neighbour knocked on the door that opens up onto the shared basement area at nearly 11am. why would i be home at 11am? i have a day job. well, i was home, so i'm probably not helping with her misjudgement of my home time frequency, but that's because peyton was not in the mood to go to preschool today so i cut him some slack and am working from home. she's working on the whole "getting her mail to her house" deal (because it's obviously tricky, right? *rolls eyes*). she's not sure how mail is delivered (i suggested to her box and the 'B' version of our shared numeric address). she's looking into it, but if they don't do delivery to 'B' (of course they do) she wants to have her mail delivered to my box. weird.

well, at least she bakes cookies and stuff and then shares them.

our company's yearly christmas party in Banff was this past weekend. boy was i sore on Sunday. partying in the mountains seems to hit me harder.

kicker's coming along. mostly layout-related bugs left. Kiosk functionality, better keyboard accessibility and a new mouse over are the only major features left to do. i worked on keyboard accessibility yesterday, and i'm nearly complete with that. the only really big trick was dealing with autohiding panels and knowing when an applet should actually have keyboard focus.

Thursday, December 09, 2004

redux on my last blog

there were a lot of great comments on my last blog; thanks to everyone who took the time to read that monster of an entry and then took even more time to reply. this is, IMO, a very important topic for our community to discuss.

some, however, got lost in inventing political motivations i don't have (lock in? Free Software zealory? lol), others got lost in creative accounting exercises that count OOo/FireFox migrations on Windows as free but OOo/FireFox migrations on Linux costly while some others just dissed Open Source in general.

i really don't want the central concept to be lost in that noise, though, so here's an executive summary without all the confusing logic:

if Free Software desktop applications were viable on Windows i'd be a huge supporter of this trend.

but they aren't. they are only viable for a relatively short period of time until they threaten the owner (Microsoft) of the platform (Windows), at which point they will have the complete ability to crush Open Source on their platform.

which means we have a small window (excuse the pun) of opportunity to migrate people to where Open Source is viable by leveraging the supposed motivational factors of people using Open Source on Windows. but the motivational factors Free Software on Windows brings are low and in many cases retrograde.

and that is the strategic blunder we are making.

there are some apps that do have a strategic benefit on Windows, such as multimedia codecs (ogg/theora) and maybe even web browsers (FireFox, though i'm still on the fence on that one). but the vast majority don't.

it's all about viability, long term.

right now we're Napolean in Moscow and the winter's setting in.

How To Kill Open Source on the Desktop?

I've quietly expressed the thoughts you are about to read before, but i feel the need to grow more vocal about it. We are at a cross roads that we may not get a second chance to visit as KDE, Mozilla and OOo make determined pushes on win32.

As you read on, please keep in mind that I'm not trying to make the blanket statement that developing software for Windows is Evil. I'm speaking strictly about Free Software desktop applications being ported to Windows (and to a somewhat lesser extent MacOS X, too).




It's All About the Applications



All other things being equal (which they aren't, but that's another story), the vast majority of users select which operating system to run based on the applications available for it.

This is not a modifiable behavior because applications are what enable people to get things done, be that making a spreadsheet or playing a game. If the applications people want are available on Windows, they will tend to stick with Windows. Conversely, if the applications they want are to be found only on Linux/BSD, they will eventually end up using Linux/BSD.

By porting Free Software to Windows one increases the number of valuable applications on that platform, and since application availability is a key factor in operating system usage, we can do the math pretty easily: if Windows has Microsoft applications plus the stable of Free Software apps while desktop Linux/BSD/etc has only the Free Software apps, why would anyone in their right mind switch to Linux/BSD (and incur the training and data migration costs) when they already have all the software they need and want right in front of them? They have no reason to. None. Ergo, they won't.

To see how this plays out, let's look at an example ripped from today's headlines: FireFox.

FireFox: Enabling Windows Users .. To Use Windows



I think we can all agree that FireFox gives Windows users a way out from the security nightmare and feature desert that is Microsoft's Internet Explorer. At least, Internet Explorer as it appears in 2004. FireFox does this while allowing users to stay on the Windows platform. Meanwhile, Microsoft is not porting any applications to Linux/BSD, nor will they start to do so anytime soon. And so the application imbalance begins...

Survey people using FireFox on Windows. How many of them are saying, "I'm so impressed I'm going to switch to a Free Software desktop." Virtually zero. Too many of us in the Open Source community naively expect people to draw conclusions that today's technology consumers are not motivated, let alone empowered, to make.

The more software we port to Windows the more we reinforce this application availability imbalance and strengthen the user's inertia to stay on Windows. If users had to make a choice between Windows or Linux (or BSD) when it came to getting access to better applications they would find they had a motivation to switch. And switch they would.

Consider: why do you think Apple invests so heavily in their iApp series of programs? and why was Apple so hesitant to port iTunes to Windows?


This implies that there's a downside for Open Source when users stick with Windows. What is that downside?

The Downside



As long as Microsoft can keep people on Windows they will have the necessary time to improve their applications and more importantly the supporting software stack. That stack includes the kernel, system libraries and application components that enables their own software to integrate and perform better than the competition's. They used this before to root out competitors like Lotus 1-2-3 and DR-DOS and they'll do it again. It's too easy and too obvious not to.

As FireFox takes market share from IE, Microsoft will fight back not just with improvements to Internet Explorer but with investments in operating system and "desktop environment" development that will give Internet Explorer unanswerable advantages over FireFox. People will once again switch back to IE and FireFox will be Netscape all over again. Worst, the Mozilla project will not be able to muster a meaningful response because they do not have access to the playing field (the underlying software stack) that Microsoft will have beat them on. You can not compete on a playing field to which you do not have access.

This is why FireFox needs Linux/BSD to survive in the long term: we aren't trying to kill FireFox, but most importantly we don't have a way to kill FireFox even if we wanted to.

On Windows it's a very different story. As long as Microsoft controls the Windows technology stack (and they will never give that control up) they will have the ultimate ability to out-compete any 3rd party software on Windows that they wish to. Because the pain of millions of Windows users is eased by FireFox, Microsoft has been given the space they need to improve their software without people leaving the Windows platform while they perform the needed improvements.

By porting software to Windows, we eliminate the majority of the competitive advantage of Free Software desktops in the eyes of the overwhelming majority of consumers while Microsoft has all the rope they need to shut the door once again on us. We have left our flank exposed while expending our efforts improving the position of the unfriendly force.

Meanwhile We Starve Ourselves...



Making the situation even worse, by keeping people on Windows we decrease the odds of them getting involved and contributing back to the community. This is because the tools necessary to do so are relatively rare on Windows. How many Windows users have debuggers or compilers or even receive awareness marketing on the part of their primary software vendor (Microsoft) to "Get Involved and Give Back"? Moreover, resources that could be spent making the Open Source desktop environments more compelling are instead being spent on making Windows more compelling in the form of superior applications.

Microsoft owes us a big "thank you" when you think about it: we are giving them the opportunity to react on the playing field they most effective on while we are limiting our own resources.

Who Needs Friends?



This "strategy" ensures Free Software desktops remain a 5% fringe in the market. This translates to ISV interest in desktop Linux/BSD being kept to a barely noticeable minimum. In turn this means fewer software packages, which in turn means even fewer reasons for people to use Free Software operating systems. Can you hear the dominoes falling as they approach?

Free Software desktop applications on Windows represent a no-win situation for Open Source, but Open Source desktops on Free Software operating systems do. It's now up to us to pick our directions and to pick them carefully.

Today, I look at kdelibs/win/ and grow concerned.

Monday, December 06, 2004

cool things peyton said this weekend

Peyton is 4 years old, which makes his at-times-precocious turns of phrases so cool. let me share this weekend's gems:

at a coffee shop, talking about the full-size metal "palm trees" outside: "They have lights around the trunk, but only some snow on their leaves, alas!" who uses the word "alas" in serious conversation anymore? haha.. he rules.

while watching some videos from the net, in particular this one of a kid doing yo-yo tricks (hamncheez.com ROCKS!): "He's naked except for his underwear and he's got a yo-yo in his hands. That's hilarious." oh yeah, even at this tender age his sense of humour is appropriately bent.

referring to some video game characters: "Look at how small they are. They're adorable." it's one thing to use polisylabic words, but to do so appropriately and with emphasis is impressive.

looking at the kweather applet: "It's snowing outside. And damn cold." haha...

if you could see his facial expressions when he talks. they kill me.

Sunday, December 05, 2004

finishing our UIs

today Charles added a little image viewer part for Konqueror so you can have a cute little view for viewing image albums in Konqueror. note that this adds one more button to the toolbar, and weighed against that the feature really isn't that compelling IMHO. neither are several of the other views that each result in a toolbar button. bottom line is that this system simply isn't extensible: having more than even a couple view plugins makes the toolbar far too cluttered with stuff you will use rarely if at all.

the situation is similar with other parts of Konqueror, such as embedded previews. there is no way for the user to know they are in a view-only mode (unless they already know that's how it works) and there is no easy way to jump into an edit mode. this has resulted in many mimetypes being set to "Open in New Window".

konqueror is very well designed under the hood. but this great design is betrayed by the interface that wraps it. yes, the GUI is a bit cluttered but that's not the biggest problem (even if people relentlessly rant about it). it's a big problem, but not the biggest. it's more a symptom, really.

the Real Issue(tm) is that Konqi's user interface has never been finished.

view plugins should be coallesced into a single menu on the toolbar. it would even be cool if clicking on the menubutton would by default select the most appropriate view for the currently viewed contents.

there should be a visible indicator that one is in "View only view mode" with a way to easily launch an editor for that mimetype if any exists (this means it must be easily visible, not in a context menu or in the menu bar).

there are many such items in our user interfaces in KDE: well designed technologies that lack a finished user interface to them. we really need to get better in this regard and _finish_ our user interfaces so that we can enjoy those awesome technology decisions and designs fully.

of course, not everything is bleak. there are some apps in KDE that i think are doing a great job in this regard, in particular the PIM space. kopete and kontact have made great progress and a lot attention is being paid to the UI there. kudos.

Saturday, December 04, 2004

3rd oldest kicker bug closed

sometimes it's the little things that get me excited. like closing a really old, nasty set of bugs. in the process of working on kicker i ripped out the code that prevents panels from overlapping one another. while it was annoying for those of us who use multiple panels to have the stacking completely messed up, it was worth the (temporary) pain because i've written a new implementation and this one actually works.

pictures speak louder than words, so here's a screenshot:



yes, your eyes do not deceive you. there are three panels in that shot, one pf which shares a screen edge with the other two. panels that do collide are stacked one atop the other in the order they were created, just like before.

kicker and kwin also get along better now. in xinerama, window maximizing is constrained only to the panels on their screen, not to panels on other screens. here's a shot showing a couple panels on screen 0 (my left monitor) and a window maximized on screen 1 (my right monitor) showing that this now works properly:



the only major caveat left is that autoexpanding panels will expand to the width/height of the screen, and not the width/height available to them. this needs to be fixed, but it depends on getting autoresizing working properly in the first place.

there are still regressions left to fix, but they are dwindling in numbers. i may even get to some multihead fixes along the way. gasp!

Wednesday, December 01, 2004

refactor vs rewrite

recently i've seen the work being done on kicker referred to as a rewrite by a couple of people. this meme may have been started by the November 19 issue of the KDE CVS Digest whose opening sentence line was, "Kicker rewrite merged into HEAD for further testing."

i'd like to clarify that a bit because "rewrite" is not particularly accurate nor fair to those who went before me. what i'm actually doing is refactoring kicker. a rewrite is exactly what it sounds like: rewriting from scratch. it's starting all over again. refactoring, on the other hand, is starting from the existing code base, asking how it could be better designed and then reshaping that code base to reflect those answers.

this means that a lot of the kicker code that was written from KDE 2.0 on up through to KDE 3.3 still remains. those who contributed code to kicker still deserve props for their work, as much of it will still exist in 3.4.

this preservation of code is good from a technical standpoint because a lot of bugs were fixed in this code and a number of rather tricky things had been achieved. had i entertained a rewrite, many of those bugs would likely have resurfaced anew and the work required to get kicker "in shape" would've been much larger.

most of the problems with kicker were simply due to a lack of maintainership, incomplete implementations of generally decent designs and the occasional conflict between design concepts. it really needed to be sorted out, but not rewritten.

that isn't to say that the code base hasn't changed radically, and some parts have indeed been completely rewritten. it just means that i can't take all the credit for kicker as it will appear in 3.4, and that it should be a better product when 3.4 hits because it was refactored versus rewritten.

i'm not the only person who feels this way about refactoring versus rewriting, either.