Martin Pool's blog

Beyond and Open Source Java

Ganesh Prasad has a brilliant article on Sun open-sourcing Java. This is what ESR's open letter should have been in the first place:

It is definitely in Sun's own interests to open up Java. This goes far beyond Open Source-ing the Java libraries, as we will see. Making the Java language and platform more affordable and friendly will make them more popular than their rivals (not Perl or Python, but C# and .NET).

But Sun has an indisputable right to exploit its creation for its own commercial gain. In fact, it would be illegal for Sun's management to sell out its shareholders by giving away the company's crown jewels.

Raymond recognises the problem, but poses it as an either-or choice. That implies a zero-sum way of looking at things. But it's not about ubiquity versus control at all. It's about ubiquity with commercial advantage.

As Open Source advocates, we know ways by which Sun can achieve both objectives.

We are not going to ask Sun to do something for Open Source (at least, not directly). We will show Sun how they can help themselves by making Java even more widespread than it is, and by harvesting it commercially. We will also show that if they continue to do nothing, they will pay a heavy price.

If, in the process of helping themselves, Sun proves to be a friend of Open Source, that's a bonus.

I think this is probably Java's only real hope of surviving .NET. I think I'd give Sun about a 40% chance of being smart enough to realize it.

parchive - a parity archive tool

PArchive does Reed-Soloman(?) style encoding of arbitrary files. A single input file is split into a number of output files. If only some of the outputs can be restored the original file can still be recovered.

This might have interesting applications in, for example, a distributed backup system, where some of your disks might die during the life of the backup. Or even for regular backups to CDs or DVDs, where a certain fraction of them may die over time.

Rear View Mirror

rear view mirror

Aloft

On a small plane from Queenstown to Christchurch (?) in New Zealand in Winter. The sun has set at just after 4pm.

Ed says this ought to be on a motivational poster.

Tim says it ought to be captioned “You guys can walk all the way to Mordor, I'm taking the commuter shuttle”.

The origin of Hopscotch

Kate Durkes explains.

She also has cool atmospheric photos.

Linux Kernel Development

Robert Love wrote a good book called Linux Kernel Development.

As Tolkein said of the Lord of the Rings, the only problem is that it is too short.

Provenance of Linux errno.h

Warren Toomey has a great groklaw article on the origins of errno.h in Linux.

You might think that since both the names and values of Unix errors are fairly standardized it would be hard to distinguish whether a similarity was coincidental or infringing copying. So SCO's claims are, at first glance, hard to dismiss. But it turns out that it can be proved beyond (I think) reasonable doubt that Linux did not copy errno.h from SysV. Yet another SCO claim bites the dust.

Litigious bastards.

Doug Nassaur on SCO

From CRN:

SCO supporters, many of whom are in the Unix camp, remain convinced that the company has a valid claim. "SCO is right. IBM is trying to steal the code under the cloak of open source," said Douglas Nassaur, president and CEO of True North Technology, a Sun Microsystems partner based in Alpharetta, Ga. "IBM supports open source and hopes SCO gets hijacked so they can steal it. At that point, IBM won't need the open-source community or SCO because they'll have the code."

requires approval

Date: Wed, 11 Feb 2004 20:20:16 +0000
To: distcc-owner
Subject: distcc post from postmaster@solucorp.qc.ca requires approval

Oh, no it doesn't. It requires a great big lart:

Our virus detector has just been triggered by a message you sent:-
To: jack@localhost
Subject: Helol
Date: Wed Feb 11 15:19:29 2004

Dave Winer on Rob Enderle

Dave Winer on Rob Enderle:

Enderle's presence is a warning sign. I see a quote from him I get the message. The reporter is out of ideas and has decided to cut corners.

Plus lots more from iwethey.

SOAP and M-POST

SOAP: The Simple Object Access Protocol

So you want to write airborne software...

From the Birds Project:

This is a brief introduction to certification of aviation software. It is intended for software developers who would like to produce aviation software but who have no idea how to get started. What you will learn is that you probably don't want to do it. Experienced aviation developers will learn nothing new, but I'd welcome hearing if anything I'm saying is wrong.

The difference between creating aviation software and other software can be summarized in one simple phrase: "RTCA DO-178B".

Understatement

Darl McBride is prone to making statements that seem pretty wild to informed observers. So it's good to see SCO can still come out with the occasional deadpan understatement:

If we do not prevail in our action against IBM, or if IBM is successful in its counterclaim against us, our business and results of operations could be materially harmed. The litigation with IBM and potentially others could be costly, and our costs for legal fees may be substantial and in excess of amounts for which we have budgeted. Additionally, the market price of our common stock may be negatively affected as a result of developments in our legal action against IBM that may be, or may be perceived to be, adverse to us.

(From SCO's recent S-3 filing, courtesy of groklaw.)

Katie

Michael Davies writes

Another SCM you could consider / promote is "Katie" written by Geoffrey Bennett. Despite saying pre-release on the web site, it self hosts, and works pretty well (as a Rational ClearCase equivalent).

I have to admit that I think doing software version control in the filesystem is fundamentally wrong. A filesystem that keeps backups or snapshots is cool. Doing things in the filesystem is always going to be harder to install and more prone to nasty failure than a simple userspace application. (I understand Katie is actually a Perl userspace NFS server, which is pretty cool, and much cleaner than putting it in the kernel.)

But several people seem to like Katie, so I suppose I should try it sometime. If you've tried it and like it, why not write and tell me what you think?

Geoffrey says the main features are:

Arch can do something called a "revision library", which is directory tree of selected previous revisions. Identical files are hardlinked together, so it can be quite compact. When you get a new checkout, you can use the --links option to build hard links into the revision library, if you know that your editor correctly breaks hardlinks.

So it approachs the method some kernel developers use, of having many working trees created with cp -al, but it's more systematic.

This makes it pretty easy to use any tools on the trees. For example you can run dirdiff to compare your current tree to any previous revision. Because diff understands hardlinks, comparisons are very quick.

Michael Allen Gelman meets the IETF

Michael Allen Gelman meets the IETF: great thread.

I'm having sex with a beautiful woman and making money while not hurting anyone in any way.

All that whilst typing this e-mail! Well done! I'd try doing that, but I'm in a cybercafe right now and might get some funny looks. Incidentally, how are you making money whilst having sex and writing this mail? Is she paying you? Wow, you are a lucky man. We're sooooo jealous.

Have fun masturbating

Laughs out to the guy who wrote 'is there any other way' in answer to that. Again, I'd try having fun masturbating, but being in the cybercafe and all that...

Also, Gravity explained and illustrated.

Arch vs Svn

Garrett points to Tom Lord's Diagnosing Svn article and Greg Hudson's response.

I think they are both basically correct. (It's always nice to see developers from competing projects be fair, honest and civil.)

I would like to write about this in more detail later. I think it's possible that it's possible there is no single right way to do version control. It's possible that for different projects Subversion, Arch, quilt, monotone, Aegis or something else might be the right choice. In particular Subversion benefits from being a relatively easy change from CVS.

berlios.de has a comparison of different SCM systems, but I don't really think their format addresses the problem: it is too much of a matrix of different features, whereas I think people really want to know what system suits their particular environment.

A draft:

System Good at Bad at
CVS

Trees which don't move around or branch very much. Everyone knows how to use it. Good tools: emacs, viewcvs. Predictable, though often predictably mediocre. The safe choice.

Many features missing: poor support for branching and merging. If you accidentally delete or move a tag, it's gone for good. Renames are changes/adds. Commands are unorthogonal and hard to script.

Subversion

A better CVS. Easy to learn from CVS. Good for centralized trees. Atomic commits make merges a bit easier. Supports Windows. Tags/branches are versioned. Safer handling of binary files.

No really intelligent merge tools. Berkeley DB backend can be flaky. Putting tags/branches into a single namespace gives the risk that people will check out a tree of every tag ever, which might be many gigabytes. Many annoying dump/reload transitions to handle database upgrades.

Arch

Proper changesets. Intelligent merge. Very clean internal design. Great for open source projects feeling a bit adventurous. Completely distributed: built-in support for mirroring, can work on laptop and sync up when reconnected. You can start your own branch from any tree without needing write access to the upstream tree. Archives can be published on any web or FTP server: no need for a special service like sourceforge, and less of a security risk. Support for maintaining a "library" containing hardlinked read-only views of different revisions.

Relatively hard to learn, because of many new concepts and only moderate documentation. Few support tools for browsing repositories. Poor support for Windows, and Windows-like situations such as spaces in filenames. No standard annotate/blame command. Enforces some unixy naming conventions (e.g. hello--mainline--0.1) — which might be a feature, but can be hard to take at first.

Quilt

Keeping track of a set of patches to a tree obtained from someone else. Making short stubby branches easy. Has the unique(?) feature of allowing work in a single tree at the same time on several layered but separate patches -- fix a typo separate from adding new code in the same file.

Keeping track of patches once you've written them. Managing a main tree, rather than a short branch.

Aegis(*)

Enforces process: commits must not break build and test. Distributed repositories. Good for in-house projects that strongly care about testing?

Must run as root. Hard to learn(?) Doesn't follow modern unix idioms(?)

(I haven't used Aegis; don't believe what I say.)

Please mail me with additions/corrections.

Square Rock, ACT

Alpine Bluebells

Bug du jour

Debian #222868:

From: Matteo De Luigi
Subject: aspell: Description says "suggestioning". It should be "suggesting"
Date: Thu, 04 Dec 2003 11:05:57 +0100

Package: aspell
Version: 0.50.4.1-1
Severity: normal

I mean, who would want to use a spell checker whose description contains such an obvious spelling error? :)

SCO abandons trade secret attack on IBM

Andrew Orlowski writes on The Register:

The SCO Group abandoned a major rationale of its case against IBM by dropping its trade secret claims. These were the basis, last June, for SCO revoking IBM's UNIX license. IBM didn't blink, and has simply carried on selling its AIX Unix without blinking. But today SCO dropped the trade secrets and claimed breach of copyright instead.

But such claims need proof, and it proved to be another hearing in which the SCO Group vs. IBM without the Utah company showing any infringing code. SCO also admitted to not producing documents that IBM had requested.

In fact, IBM used Darl McBride's braggadocio performance at Harvard this week against him.

Darl McBride had stated that there "is roughly a million lines of code that tie into contributions that IBM has made and that's subject to litigation that is going on. We have basically supplied that."

"No you haven't" IBM replied, "and if you had we'd be seeing them today," in so many words. "SCO has identified no more than around 3,700 lines of code in 17 AIX or Dynix files that IBM is alleged improperly to have to have contributed to Linux." IBM describes this as a "significant disparity." As indeed it is.

comfychair 0.1 - a cuddly instrument of software torture

I put up release 0.1 of comfychair, a Python test driver I have been using for a while. I find it very useful; maybe other people will as well.

Many Python test libraries are for testing code written in Python. You can do that with ComfyChair, but it is mainly about testing C code from Python. This is a highly useful thing to do: it is much easier to write tests in Python than in either C or shell, because of Python's excellent control, string-handling and error-handling facilities.

It is still a bit rough and a bit underdocumented, but still very useful.

Will people ever pay for privacy?

Adam Shostack has an interesting slideset on whether people will ever pay for privacy.

the timecop troll

gimp thread: cmon guys, no patch from 1.1.32 to 1.2??

keithp's papers

Keith Packard has some great papers on various aspects of X11.

Norton AntiVirus considered harmful

Return-Path:
X-Original-To: distcc@lists..org
From: Norton AV
To: "'distcc@lists.samba.org'"
Subject: Norton AntiVirus detected and quarantined a virus in a message yo u sent.
Date: Sat, 31 Jan 2004 17:04:47 -0500
Subject of the message: Mail Delivery System
One or more attachments were quarantined.
Attachment readme.zip was Quarantined for the following reasons:
Virus W32.Novarg.A@mm was found.
Virus W32.Novarg.A@mm was found in readme.pif.

If it's too stupid to understand that Novarg always forges sender addresses, how can it possibly offer any protection? Who would pay money for such braindead software?

Referrer spam

Somebody is sending fake referrer fields:

66.98.224.39 - - [02/Feb/2004:10:19:45 +1100] "GET /weblog/random/blogs HTTP/1.1" 200 37480 "http://www.pornwizzard.com/review_34950.html" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" 1 sourcefrog.net
66.98.224.39 - - [02/Feb/2004:10:19:47 +1100] "GET /weblog/random/blogs HTTP/1.1" 200 37480 "http://www.pornwizzard.com/review_34950.html" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" 1 sourcefrog.net
66.98.224.39 - - [02/Feb/2004:10:20:01 +1100] "GET /weblog/random HTTP/1.1" 200 46174 "http://www.pornwizzard.com/review_34950.html" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" 1 sourcefrog.net

Archives 2008: Apr Feb 2007: Jul May Feb Jan 2006: Dec Nov Oct Sep Aug Jul Jun Jan 2005: Sep Aug Jul Jun May Apr Mar Feb Jan 2004: Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 2003: Dec Nov Oct Sep Aug Jul Jun May