The following question appeared in my mailbox today:
If a certain program (that you need) was proprietary, and its open-source counterpart was (currently) 40% slower. Which would you use, the open-source one or the proprietary one?
The answer is: it depends. I’m going to answer this one in public because it’s a useful exercise in thinking about larger tradeoffs.
My usual audience is well aware why I am qualified to review Gabriella Coleman’s book, Coding Freedom, but since I suspect this post might reach a bit beyond my usual audience I will restate the obvious. I have been operating as the hacker culture’s resident ethnographer since around 1990, consciously applying the techniques of anthropological fieldwork (at least as I understood them) to analyze the operation of that culture and explain it to others. Those explanations have been tested in the real world with large consequences, including helping the hacker culture break out of its ghetto and infect everything that software touches with subversive ideas about open processes, transparency, peer review, and the power of networked collaboration.
Ever since I began doing my own ethnographic work on the hacker culture from the inside as a participant, I have keenly felt the lack of any comparable observation being done by outsiders formally trained in the techniques of anthropological fieldwork. I’m an amateur, self-trained by reading classic anthropological studies and a few semesters of college courses; I know relatively little theory, and have had to construct my own interpretative frameworks in the absence of much knowledge about how a professional would do it.
Sadly, the main thing I learned from reading Gabriella Coleman’s new book, Coding Freedom, is that my ignorance may actually have been a good thing for the quality of my results. The insight in this book is nearly smothered beneath a crushing weight of jargon and theoretical elaboration, almost all of which appears to be completely useless except as a sort of point-scoring academic ritual that does less than nothing to illuminate its ostensible subject.
This is doubly unfortunate because Coleman very obviously means well and feels a lot of respect and sympathy for the people and the culture she was studying – on the few occasions that she stops overplaying the game of academic erudition she has interesting things to say about them. It is clear that she is natively a shrewd observer whose instincts have been only numbed – not entirely destroyed – by the load of baggage she is carrying around.
A couple of weeks ago a friend asked me how he could become more charismatic.
Because the term “charismatic” has unhelpful religious connotations, let’s begin by being clear what he was actually asking. A person is “charismatic” when he or she has the ability to communicate a vision to others in a way that makes them sign up for making it real. Sometimes the vision is large (“Change the world!”) sometimes it is relatively small (“Become as cool as me!”).
My friend asked me how he could become more charismatic because he has seen me do the charisma thing a lot. This relates to my previous blogging on practical prophecy. A prophet has to be charismatic, it’s a requirement to get people to actually move.
Before he asked me about it, I would not have thought charisma was something that could be explained in detail. But questions properly posed sometimes elicit knowledge the person answering was not consciously aware of holding. That happened in this case; I found myself explaining four modes of charisma.
Here is what I told him.
A friend of mine recently posted this image of a hideous network-cable tangle:
A hideous tangle of network cable.
I have invented an algorithm for fixing this kind of mess. Probably other people have developed the same technique before, but it wasn’t taught to me and I’ve never seen it written down. Here it is…
For those of you who have been following my work on tools to muck out the swamp that is CVS, a new shovel: cvs-fast-export. Note, this is an alpha release for testing purposes; double-check the quality of any conversions you do with it carefully.
You bait a trap for a mouse with tasty food. How do you bait a soul-trap for people too smart to fall for conventional religion? With half-truths, of course.
I bailed out of an attempt to induct me into a cult tonight. The cult is called Landmark Forum or Landmark Education, and is descended from est, the Erhard Seminars Training. The induction attempt was mediated by a friend of mine who shall remain nameless. He has attended several Landmark events, praises the program to the skies, and probably does not realize even now that he has begun to exhibit classic cult-follower symptoms (albeit so far only in a quite a mild form – trying as hard as he did to to recruit me is the main one so far).
“But Eric. How did you know it was a cult?”
Oh, I dunno. Maybe it was all the shiny happy Stepford people with the huge smiles and the nameplates and the identical slightly glassy-eyed affect greeting us several times on the way to the auditorium. Maybe it was the folksy presenter with the vaguely Southern accent spewing pseudo-profundities about “living into your future” and “you will get Nothing from this training” (yes, you could hear the capital N). Maybe it was the parade of people telling stories about how broken they were until they found Landmark.
The 2.13 release of reposurgeon has in it maybe the coolest new feature I’ve ever implemented in five minutes of programming – graphical visualization of a repository’s commit DAG.
Last month I added CVS-reading support to reposurgeon. The reason I haven’t blogged in ten days is that this pulled me down a rathole out of which I am just now beginning to emerge. And now I have a a request for help – I need to collect some perverse CVS repositories, preferably relatively small ones.
Today’s very special non-world-ending software release, triggered if not originated from here at Eric Conspiracy Secret Laboratories is the amazing Zen simulation, Robot Finds Kitten. I bow in respect before Leonard Richardson and the other giants of kitten-finding history and am humbly proud to be counted among the select few who have contributed to this monumental, er, monument.
Get yer hot fresh tarball right here. It will improve your sex life, clear up your financial problems, cure your acne, and make you as a god among men. Would I lie?
Well, er, no. Actually, it attacks CVS.
Yes, that’s right, the just-shipped reposurgeon 2.11 can now read – though not write – CVS repositories. To get it to do this, I got my lunch-hooks on a relatively old program called cvsps that assembles changesets out of CVS repositories for human inspection. I gave it a –fast-export reporting mode that emits a fast-import stream instead, so now CVS has a universal exporter that will talk to any version-control system that speaks import streams. Oh, yes, and I’m maintaining cvsps now too – applause to David Mansfield, who both did a very good job on that code and sees clearly that its original use case is obsolete and –fast-export is a better way forward.
Two substantial releases of different projects in a day is a fast pace even for me. cvsps-3.0 and reposurgeon-2.11; two great tastes that taste great together.
Fear the reposturgeon!
Well-designed software suites should not only be correct, they should be able to demonstrate their own correctness. This is why the new 2.10 release of reposurgeon features a new tool called ‘repodiffer’. And yes, that is what it sounds like – a diff tool that operates not on files but entire repository histories. You get a report on which revisions are identical, which are different, and in the latter case where the differences are, down to which files don’t match. Commits to be paired are matched by committer and commit date. Like reposurgeon, it will work on any version-control system that can emit a fast-import stream.
Evan Miller’s essay The Mathematical Hacker is earnest, well-intentioned, and deeply wrong. Its errors begin with a serious misrepresentation of my views and my work, and fan out from there.
I should have known it. I really should have expected what happened.
So it’s about week 7 at kuntao training, the tasty exotic mix of south Chinese kung fu and Philippine weapons techniques my wife and I are now studying, and we’re doing fine. The drills are challenging, but we’re up to the challenge. Our one episode of sparring so far went very well, with Cathy and I both defeating our opponents decisively in knife duels. The other students and the instructors have accepted us and show a gratifying degree of confidence in our abilities. Our first test approaches and we are confident of passing.
The only fly in the ointment, the one silly damn thing I’ve had persistent trouble with, is spinning my escrima sticks. Last night I found out why…
I had said I wasn’t going to do it, but…I experimented, and it turned out to be easier than I thought. Release 2.7 of reposurgeon writes (as well as reading) Subversion repositories. With the untested support for darcs, which should work exactly as well as darcs fast-export and fast-import do, this now brings the set of fully-supported version-control systems to git, hg, bzr, svn, and darcs; reposurgeon can be used for repository surgery and interconversion on any of these.
I have submitted an essay to the Stanford Law Review for publication. I didn’t tick the box for “exclusive”, so I think I can blog it as well. It’s a reply to Andrew Tutt’s essay on Software Speech.
Here’s the most interesting adventure in linguistics I’ve run across in a while. Two professors in Norway assert that English is a Scandinavian language, a North Germanic rather than a West Germanic one. More specifically, they claim that Anglo-Saxon (“Old English”) is not the direct ancestor of modern English; rather, our language is more closely related to the dialect of Old Norse spoken in the Danelaw (the Viking-occupied part of England) after about 865.
The bolster their claim by pointing at major grammatical traits which English shares with Old Norse rather than West Germanic languages – notably, consistent SVO (subject-verb-object) word order rather than the SOV (subject-object-verb) or V2 (verb-second) orders that dominate in languages like German, Dutch and Anglo-Saxon. The practical consequence they point out (correctly – I’ve experienced this myself) is that English and Norwegian or Swedish are quite a bit closer in mutual intelligibility than any of this group is with German or Dutch or Anglo-Saxon. I had actually noticed this before and been puzzled by it.
The professors think the reason for this is that rather than evolving into Modern English, Anglo-Saxon actually died out during the two centuries between the invasion of the Great Army in 865 and the defeat of Harold Godwinsson in 1066. They propose that Anglo-Saxon influenced, but was largely replaced by, the Norse dialect of the Anglo-Danish Empire. Which, SVO North Germanic grammar and all, then collided with Norman French and evolved into English as we know it.
This isn’t crazy. It may be wrong, but it isn’t crazy. Two centuries is plenty of time for an invading language to reduce a native one to a low-status argot and even banish it entirely; we’ve seen it happen much faster than that when the invaders are as culturally and politically dominant as the Anglo-Danes were in England at the time of Cnut (1016-1035).
Even in the conventional account of the evolution of English, modern English is supposed to have derived from the Anglo-Saxon spoken in the East Midlands – which, as the professors point out, was the most densely settled part of the Danelaw!
All of this gave me an idea that may go beyond the professors’ hypothesis and explain a few other things…
One of my regulars, contemplating the increasingly pathetic series of clusterfucks that have passed for exciting new products at Microsoft, wonders why a company with all its advantages – more money than $DEITY to hire the best developers, lots of experience, dominant position in a major technology market – can’t seem to release a decent product any more.
The answer is simple and deep. It’s because evil is inefficient.
Last night I utterly trounced three opponents at the slick new Fantasy Flight reissue of a classic interstellar trade and exploration game, Merchants of Venus. My end score was nearly three times that of the runner-up, and I had acquired so many fame points (which each become 10 victory points at game end) that we ran out of fame tokens.
One of the other players half-humorously protested that I had gotten incredibly lucky. “Nonsense”, I said, “it was planning”. He sputtered that I had frequently had the victory conditions for lucrative missions apparently drop in my lap. Which was true, and he was right to view those individual occurrences as luck. But it was also true that I planned my way to victory.
I made chance work for me. Pay attention, because I am about to reveal why there is a large class of games (notably pick-up-and-carry games like Empire Builder, network-building games like Power Grid, and more generally games with a large variety of paths to the win condition) at which I am extremely difficult to beat. The technique is replicable.
I shipped reposurgeon 2.0 a few days ago with the Subversion support feature-complete, and a 2.1 minor bugfix release this morning. My previous release announcement was somewhat rushed, so here is a more detailed one explaining why anybody contemplating moving up from Subversion should care.
To go with this, there is a new version of my DVCS Migration HOWTO.
I’ve just shipped reposurgeon 2.0, a power tool for editing and interconverting version-control repositories. This is a major release, adding the capability to read Subversion dump files directly.