... indistinguishable from magic
effing the ineffable since 1977


Show All

Recent Posts



My blog is now running on cmScribe 5.0. This will mean nothing to most people reading this, but it's a big deal to me, because in 5.0 I managed to achieve a whole lot of things that have been goals of mine for cmScribe since before it had a name, and before anyone else who still works at NetReach now was even employed there. Except for Will but he cheated by leaving and coming back.

The upgrade process is fairly seamless but under the hood everything's changed. As well as running on .NET 2.0 (we could run on 3.0, but since the two are identical, why bother?) we're taking full advantage of the new capabilities of the 2.0 version of the framework: every ArrayList and Hashtable in our code has been replaced by a List<> or a Dictionary<> and our custom-coded nullable type wrappers have been replaced by the framework's Nullable<>. Instead of a kludged-together build process, we integrate nicely into Visual Studio's build process using msbuild. We've moved from SourceSafe to Team Foundation internally. And taken advantage of the fact that msbuild and tf are true managed applications by replacing all our hacky vbscript, perl and bat scripts for branching, upgrading and pushing with a single C# application.

The change that's most interesting to me is that in 5.0 we've managed to make cmScribe truly modular. We had something like modules before, but everything got compiled in one go into the same assembly, so there was no way to enforce rules about what code depended on what (except for me going over to people's cubes and saying OMGWTFBBQ at them). We also had a nasty habit of adding customizations to individual customer installations of cmScribe by changing files that were part of cmScribe itself; this was expedient but always caused issues when it came time to upgrade to a newer version.

Today, each module is built separately; dependencies are declared explicitly (and circular dependencies are impossible). And we've added - and enforced the use of - mechanisms to customize the behavior of cmScribe panels by adding extensions to them, rather than changing the original. The extensions typically live in a separate module from the panel being extended, so the base cmScribe modules are used unchanged.

The end result being that cmScribe modules are strictly separated from each other, and customer customizations are strictly separated from core cmScribe code.

Next up: trying to convince the Powers that Be that building a community of developers around some of the cmScribe core modules is possible and valuable and that liberty is the best way to achieve that :)


10 Downing Street responds - "software already unpatentable"

At least, that's how I read the Prime Minister's response. While there's a degree of weasel-wordage as would be expected from a politician, the gist definitely seems to be anti-software-patent. As opposed to parroting the industry party line of "patents are good for innovation"...


A rant about blind spots

This post by Miguel articulates very well something that I've been hoping for a long time that someone would say in the debate regarding ODF and Microsoft's OOXML format: that "ODF good, OOXML bad" is a GROSS oversimplification of the situation. Mainly because ever since it's release, ODF has been content to rest entirely on its laurels as the "Open" and "ISO Standard" office file format specification - completely ignoring the fact that on a technical level it just plain SUCKS.

Isn't the Open Source movement supposed to be all about making software that doesn't suck? Isn't Free Software supposed to be about the freedom to FIX problems? Aren't we supposed to be a meritocracy?

A spreadsheet format "standard" that doesn't define formulas? What the hell? How ANYONE with a straight face can claim that the problem of standardizing office file formats is "solved" by ODF and all we need to do is get people to use it, is beyond me. Maybe it's the best starting point - but where's the group working to fill in the glaring holes and get that standardized too? Free Software interprets sucky standards and glaring holes in standards as damage and routes around them... by forming other groups to specify the behavior, or by moving to other standards that don't suck. See WHATWG. See CORBA on the desktop. See XML Schema. Perhaps OOXML is that better standard, perhaps it isn't, but I don't see anyone on the ODF side even admitting there's a problem to be solved [UPDATE: Apparently there is such a group, called OpenFormula, working to fix that particular hole. That's great and I wish them every success, but it's mostly irrelevant to my main point. See the comments for more...] As long as that attitude persists, OOXML has a better chance of being that better standard than ODF does of evolving into it.

We take pride in the fact that our licenses will never discriminate against any person or organization or field of endeavor. Any licence that passes the DFSG or OSD is GUARANTEED to ensure that the software may be equally used by an evangelical Christian group or an abortion clinic or a gay rights group or a pornographer, by the United States government or by islamist extremists, by the EFF or by patent lawyers, by pacifists or by the military, by spammers or by antispam organizations... I could keep going, but you get the idea. But this isn't just a minor point, this is the CORNERSTONE of what Free Software is all about. Freedom means nondiscrimination. Including against people we as the developers of the software find distasteful.

So why is it that we make a point to treat pornographers, extremists, spammers, and even evangelicals ( ;) ) with fairness and equality, but the moment Microsoft is mentioned we forget all about that freedom and fairness and meritocracy, and immediately object vociferously and almost unanimously, EVEN when what they're doing is RIGHT?

Why is it that Groklaw, the site that earned a reputation for fairness and objectivity by making a point to give SCO's claims every possible benefit of the doubt and patiently examine every one of their claims including any time there was the ghost of a chance they might have some semblence of a real point - why is it that Groklaw had a fit when someone wanted to submit a Microsoft license to the OSI for evaluation, when by all accounts the license in question DOES pass the OSD and DFSG?

Why is it that Groklaw reported the MS-Novell deal with the headline NOVELL SELLS OUT - long before there was ANY chance for ANYONE to have examined the nature of the deal to know whether it was actually problematic or not? Why are otherwise reasonable people like Bruce Perens claiming that Novell is the next SCO, when it's completely obvious that Novell's lawyers simply made a mistake and are working with a perhaps intransigent group of MS lawyers to figure out a way to fix the problems? Even one of MS's lawyers has come out and said this outright.

So why are we vilifying Novell and treating them as outcasts, rather than recognizing that they, like IBM with patent lawsuits, like Sun until very recently with their Java licensing, like Canonical with binary drivers, and even I'm sure like Red Hat although I can't think of a blatant recent example - are a company that does a lot of good things but have made a bad decision?

And why are we treating Microsoft as the embodiment of pure evil rather than a company that does a lot of bad things but in the case of OOXML is actually doing the right thing - coming up with a file format that is by all accounts a vast IMPROVEMENT over ODF, is freely licensed including patents, independently implementable, doesn't have any HUGE GLARING HOLES in it, is actually documented and specified in detail, and being submitted to ISO for standardization.

Yes, there are problems with OOXML. It's stupid to standardize options for backward compatibility with old proprietary software when you've gone to all this trouble to invent an extensible format with all sorts of ways to embed extra proprietary information. Using that extensibility to support the legacy crap should be a no-brainer, and I hope this will be fixed in the ISO comments period. I'm sure there are other issues too. Maybe lots of them. But at least it's (almost) fully specified, open, and freely implementable - of which ODF manages only two out of three.

If you want a child to learn good behavior, it isn't enough to point out and punish the bad behaviors. You have to point out and reward the good ones too. It's well established that rewarding the good behaviors has a vastly greater effect, in fact. And punishing the GOOD behaviors is OBVIOUSLY counterproductive. Microsoft obviously isn't going away any time soon; to ignore them or think we can make them irrelevant is delusional. If we ever want them to be a good citizen, if we ever hope for them to become a productive MEMBER of the Free Software community, we should be pointing out the - perhaps small and rare - good things they do and making a HUGE deal about them.

I'd bet quite a large sum of money that in ten years time Microsoft will be the largest producer of Free Software in the world; that Windows and Office will both be released under Free, Open Source, DFSG-compatible licenses by that time. We can bring that day about sooner by working with the elements within Microsoft that are pulling in the same direction as us, or we can delay it by treating Microsoft as the enemy which only strengthens the elements within Microsoft that think of US that way. I know which future I'd rather see.

As a footnote: Microsoft just released the ASP.NET AJAX client libraries under a DFSG compliant license. I don't know if that will be the first package in Debian main with Microsoft as the upstream, but I am completely sure it won't be the last...


Dear Lazyweb

Anyone know of a good Jabber client library for Java (that works with Free implementations) or C# (that works with Mono) - and, more significantly, some clear understandable sample code for said library to implement a bot that can talk to people and react to things said to it, and respond to their presence or absence?


Gmail + Talk

I'm annoyed at Gmail today.

Its new integrated chat feature is quite possibly the killer app that will drive adoption of Google Talk, which up until now has been fairly uninspiring compared to the other networks, mainly because it didn't have any compelling features and everyone you might want to talk to is on one of the other networks already. Or to put it another way, it was missing the single most important feature of an IM network - users.

But since half the world has Gmail accounts these days, Google Talk just inherited a whole bunch of users for free. And running inside your browser window that you already have open for mail is a pretty compelling user interface benefit too: no client to install and available anywhere with net access. I was really looking forward to trying this out.

With all these advantages, why am I annoyed? Well, because Gmail's chat features don't work over https. Why? It's not like advanced dynamic AJAX functionality can't work over https, because Gmail itself does. This means I have to choose between the convenient in-browser chat interface and the security of ensuring that my password and cookie aren't being sent in plaintext. Especially since they encourage me to store my entire chat history in my gmail account, I'd think they'd understand the value of having a little security to go with that. For now I've decided I'll do without the chat. And that hurts Google more than it hurts me, because the thing they need most is passionate users...

Oh, and Janene, dear, I hope this counts as not sounding like binary or leet speak. If it's still too technical for you, I suppose I could blog about your new DVD instead?

Previous PageNext Page