Wednesday, December 27, 2006

Wikipedia kills Virgin dead

So, starting at 0000Z on 12/28/2006, Virgin Unite, the charitable arm of Virgin Group, is matching donations to the Wikimedia Foundation as part of its current fundraising drive. As part of the matching agreement, the Foundation agreed to run a small thank-you at the top of each page with a link to Virgin Unite's website. The thank you note went live at 0000Z. At 0012Z, Virgin Unite's website died.

Wikimedia quickly changed the notice to point to a thank you comment hosted on Wikimedia's own (far more robust) servers, and Virgin Unite's site is back up again.

The moral of the story: If you offer to sponsor a matching program at Wikimedia to bring traffic to your site, make sure your site can handle the traffic.

Wednesday, December 20, 2006

Quietness

I have been uncharacteristically quiet in here lately. This is because my life away from the computer has been busy, and I haven't had much time to post here. Sorry.

Greg Maxwell recently pointed me in the direction of several useful bits of software for doing panorama processing, which I have been abusing to reprocess some pan-intended shots from my image archive. It's a long and tedious process, but it does yield nice results. I've also been uploading other stuff to Commons and popping it into articles where I can.

I've also offered both a bounty and a reward for articles on plants and animals. So far I've heard from a couple people who are trying to earn one of the awards.

Monday, December 04, 2006

The ArbCom elections

I left comments for ArbCom candidate Geogre on his talk page, answering his inquiry as to "why I am here" (here presumably being either Wikipedia or his talk page). He removed them, presumably because he is afraid that people will read them.

They are reproduced here, below. Geogre will no doubt accuse me again of personal attacks for doing so. If he does so, he accuses himself of personal attacks in the same breath, for the statements he has made about me are far more egregious than anything I say below.
I am here (on Wikipedia) for the reasons detailed in my candidate statement and elaborated on my candidate questions page. It pains me that you are unwilling to credit enough good faith to accept that the statements I have made in those locations are truthful representations of my intentions and beliefs, and definitely, in my mind, calls into question whether you should be an Arbitrator, or in fact have any role on Wikipedia other than author.

I am here (on your talk page) because you are once again running about Wikipedia spouting off falsehoods as if they are truths. The falsehood (which you have at least admitted on this page, but not, as far as I know, in the other places where you have presented it) about the timing of your pledge is merely one of the more minor of your misrepresentations; your persistent misrepresentations of my positions and my actions (as evidenced by your hostile and offensive questions on my candidate questions page) are far more serious. It is my considered opinion that a person who will stoop to misrepresentation because the truth is inconvenient is not the sort of person who should be serving on the Arbitration Committee. Neither is someone who would brazenly assume bad faith of another Wikipedian, as you did in your communications with Cyde a day or so back. And on this latter issue, especially, I believe you will find that Jimbo concurs with me.

You are certainly free to change your mind; you are not free to do so and then pretend that you didn't, and you are not free to use false statements as justification for why you should not be considered to have changed your mind. That privilege is apparently reserved to your not-quite-namesake in the Oval Office.

Some free advice, Geogre: make a more concerted effort to concern yourself with that which is actually true, and less of an effort convincing yourself (and others) of the truth of falsehoods. You'll benefit from it in the short, and the long, run. And people might not be so inclined to call you a liar. I need not remind you of the Latin legal maxim, "falsis in unum, falsis in omnibus".

I find it outrageous that people are willing to vote for this individual. He has no concern for the truth, a characteristic that one would think would be totally incompatible with serving in a quasijudicial capacity. That he has any support at all speaks volumes about the grave illness of Wikipedia's community.

Wednesday, November 29, 2006

Not dead yet!

Things have been a bit screwy around here lately; therefore, I haven't had time to finish up the post I'm working on right now. Maybe in a few more days.

At least I finished A Clash of Kings.

Friday, November 24, 2006

Lots of stuff, all mixed together!

I recently commented on the idea of automated page expirations. Someone mentioned the oft-promised dewiki stable versions proposal in respect to this. Almost immediately after hearing about stable versions I realized how powerful and useful they would be for Wikipedia. They were promised for delivery "soon"; the timetable was presented as sometime in October, maybe even earlier, right after single-user login, which was supposed to be available "very soon" in August. Well, it's November, almost December, and single-user login isn't here yet, and neither are stable versions. My patience is starting to wear thin....

Another commenter suggested that Wikipedia has too few editors to have "content administrators". Wikipedia has thousands of editors. I find it hard to believe that there aren't enough people in those thousands who would be willing to do that sort of work if asked. Wikipedia does a poor job of managing its volunteers, and especially of advertising ways that volunteers can help the project. There is some sort of weird belief that it's wrong to ask people to do things for the project, or expect people to hold to their promises to do things, once made. Are Wikipedians afraid of commitment? (Is this a consequence of the relatively young age of most Wikipedians?)

The discussion of this brough to mind another idea, one Greg Maxwell had: have a bot go through the database, marking (at a relatively slow rate) pages which lack sourcing with a tag that declares that the article is not sourced and will be deleted if not sourced within one month. Any page which, after that month, is still unsourced is then deleted. The tagging rate has to selected to balance the desire to get all articles sourced in a reasonable time (there are something like 250,000 articles which lack sourcing on the English Wikipedia) while at the same time not putting too much demand on the editors who know how to properly source material. Pretty much everyone I've talked to about this thinks it's a good idea. I believe the only reason Wikipedia is not currently doing this is the lack of a working enwiki replica on the toolserver (another issue the developers seem not to care about very much).

The Esperanza dispute that I wrote about was deftly deconflagrated by Kim Bruning, who quite wisely recognized that no consensus could possible arise from that train wreck of an MfD and closed it early. I understand that he was criticized for doing so by a few sore losers. Kim's a tough cookie, though; he can take the heat. I can only hope that in the long run some good comes out of the secondary discussion.

I've had several people ask me recently if they should run for ArbCom. Why are people asking me this? Maybe they should listen to what I had to say in Episode Five of Wikipedia Weekly about the elections and people who think they might want to run for Arbitrator. Still, I'm not happy about the current slate of candidates: of the thirty-one candidates who have declared so far, I really think that only two or three are qualified and suitable. There's maybe a half dozen more who I don't know well enough to know whether they're suitable or not; the rest are, in my eyes, unsuitable in some way or another, some very much so. There's five seats open, which means that the chances of electing an unqualified candidate are quite good. And while frankly I think the ArbCom is losing relevance, it still remains an important entity; it would certainly not be a good thing for the ArbCom to become home to one, or worse yet, several, people who have no business sitting in judgment on their fellow editors. (By the way, the people who've asked me have generally gotten back a generalized "meh". Nobody who I really think belongs on ArbCom has asked me if they should run. Fortunately, nobody who I really think shouldn't be on ArbCom has either: I haven't had the displeasure of telling someone that they really shouldn't run.)

In a related topic, Werdna mentioned to me that he's working on an essay on how to improve Wikipedia. He's pretty much spot on on a lot of the issues. I'm looking forward to seeing what his solutions are, beyond exhorting readers to behave differently.

Onto another topic entirely: in last week's Wikipedia Weekly we briefly talked about universal wiki markup languages. Some listener mentioned Wiki Creole to Andrew, who shared the link with me. This project is working on developing a subset wiki markup that would be supported across multiple platforms and allow editors moving from wiki to wiki to use the same basic markup set no matter where they are. A MediaWiki implementation is promised. I noticed they've not made the MediaWiki mistake of using quotes for both bold and italics, but they still have the equals problem (both of which introduce unlimited lookahead, although in the equals case it's at least bounded to end of line instead of end of document, and the equals problem can be avoided if you have reasonable error recovery semantics, which MediaWiki doesn't).

Happy Thanksgiving, everyone (in the US, at least). Don't forget to check out next week's Wikipedia Weekly on Monday!

Tuesday, November 21, 2006

Of WikiCouncils

My gnomes have mentioned to me that there has been, since the October board retreat, some discussion about some sort of "WikiCouncil", consisting of respected members of the various communities, brought together to discuss issues and advise the Board. The exact details of the proposal vary depending on who makes it, and from moment to moment, but in general there seems to be some significant support for this amongst most of the vested parties at the Foundation level, with one notable exception: the Board's newest member, Erik.

I have long supported having a council of this sort. A council of Wikimedians, chosen by the communities to represent them, and wielding at least some influence over Foundation matters, would go a long way to restoring the sense that the community has real input into the operation of the Foundation—something which has, of late, been largely lacking. In the long term and in the ideal case, I actually think that an assembly of delegates elected from the various project communities (with the number of delegates from each community being decided by some fair and agreeable method and the method of election left largely up to each community) actually replacing the Board as the ultimate controlling authority would be the best model for long-term governance of the Foundation. (This assembly would meet once a year, immediately before, during, or immediately after Wikimania, and elect a Board, which would then govern between these annual meetings.) The Foundation is probably not ready at this point in its existence to move to such a governance model, however, and I do not today advocate it. However, efforts to establish a possible precursors to such an entity would be a good thing, in my eyes, not only for the potential it would offer for a long-term move toward true community governance of the Foundation, but also the shorter-term value of better community input into the strategic vision of the Foundation with today's governance (which quite frankly has almost no obligation to the community at all).

I freely admit that I have not read any of the discussion surrounding this concept on the Wikimedia public mailing lists; those lists are full of sound and fury, signifying almost entirely nothing. In almost every discussion on a public Wikimedia mailing list, the discussion is dominated by the noisy fringe, and in general the reasonable people bow out of the discussion because they do not wish to argue pointlessly with these fringe elements, who in many cases border on trolls. Nor have I read any of the private discussions—even when I was still involved in Wikimedia activities I only had access to the ComCom's mailing list, and certainly never to the vaunted internal-l or private-l, which is supposedly where all the real dirty business takes place. The Wikimedia Foundation has long been the home to some very ugly turf games and internal politicking, and I see no reason why that would have gotten any better with Erik's election; in fact, I would expect that it has gotten much worse. (I cannot begin to imagine how ugly the politics of the executive search and the discussion regarding Tim Shell's replacement must be.)

What I find interesting, though, is Erik's strident opposition (and I characterize it as "strident" based on what my gnomes are telling me; I have no direct experience with it myself, as I generally avoid talking to Erik, for reasons I may share at a later date, and as mentioned I have not read the mailing lists). I can only assume that this is because Erik feels that such a council would diminish his own importance. Sadly, this should not be a factor that a responsible member of the Board of Trustees of a nonprofit organization would use in decisionmaking for that organization, but I have seen decisions made for the Foundation in the past with equally questionable motives, as well, so I shall not waste too much time applying the tar and feathers to the Board's newest member. But I most definitely do call into question his motives for opposing what is quite clearly a very sensible means of establishing a viable channel for community feedback into the Foundation, something which both the Foundation and the communities need, in order to ensure that the Foundation is actually serving the communities' interests and that the communities feel that they have some real stake in the operation of the Foundation. It is my understanding that virtually everyone at the board retreat—save Erik—supported some sort of council. And yet, now that the retreat is over, Erik is building a grassroots campaign against what would normally appear to be the sort of thing the grassroots would want. (Is this grassroots, or astroturf? Hm.....)

Anyway, very curious situation. Makes me glad that I'm just an observer, not a stakeholder.

Monday, November 20, 2006

How to make MediaWiki better

MediaWiki, at least when used to support Wikipedia, could use at least two additional features.

The first is a workflow system. Right now, there are four outcomes that can occur when someone goes to edit an article. First, the user may be refused permission to edit at all. Second, the edit may be accepted and stored. Third, the edit may be rejected due to an edit conflict. Fourth, the edit may be rejected because it contains content deemed inappropriate (e.g. links to a "bad image" or to a spamblocked URL). I would like to have the option to add a fifth option: defer the edit until it has been reviewed by a content administrator. (Edits made by a content administrator would possibly bypass these checks.) This could be used to deal with editors who are on probation, or for edits which insert certain URLs which are frequently, but not always, spam (e.g. youtube, myspace). Right now, Wikipedia cannot add youtube.com to the spam link list because doing so makes editing [[YouTube]] impossible. This would allow people to edit articles containing questionable content, subject to a review process. (A generalized improvement of the methodology by which certain content is unacceptable would be useful too.)

The other addition would be the ability to add an expiration date to an article. This would be useful in the case that an article contains content which will be known to be out of date at some future date. Upon expiration, the article will generate a work queue item. Users with privileges on a work queue will be presented (upon request) with items on the work queues they have access to and asked to resolve them; in this case by updating the page. This could also be used to handle, e.g., AfD closures, RfA closures, proposed deletion, and lots of other things. I believe there's already a tasks extension, which is not implemented on the English Wikipedia for reasons that are not known to me, but I think this goes somewhat beyond what is offered by that extension.

I'm starting to think that I'd be better off reengineering MediaWiki rather than continuing the port, keeping these (and other) considerations in mind. MediaWiki's design is rather wedged, and I don't see any real value in continuing off of that design.

Friday, November 17, 2006

Wikimedia needs a TechCom

One of the things I've noticed in the past year and a half or so of watching Wikimedia operate is the way that MediaWiki development (which is at least partially paid for by the Foundation) seems to lurch about almost at random, with development being driven as much by what the devs feel like doing as what Wikimedia needs. Now, I realize that MediaWiki has customers other than Wikimedia. However, Wikimedia is the only customer that is paying them; they should get a much larger say in what gets developed.

On top of that, there is relatively poor communication between the communities (who have the desire for technical changes) and the developers (who are in a position to implement changes). Community-driven changes only take place when someone in the community manages to find a developer and convince that developer that the change is a good idea. This forces developers to be judges of consensus in communities that they are likely not even members of. There is no established mechanism for communities to come to a consensus regarding a change which requires either technical assistance (change of a configuration setting for the software) or software development, and, having come to that consensus, then request that the developers make that change. This isn't to say that such changes don't happen, it's just that there is no established mechanism. Whether or not a community can get a change executed comes down to whether or not they can successfully convince a developer that it's worth doing, which is a battle entirely independent to winning the consensus of the community for the change.

Another problem is the fact that many developers do double duty as system administrators. As a former developer turned system administrator, I will testify that this is one of the worst possible ways to run a development operation. There are endless reasons for this; I am not going to get into all of them, nor do I suggest that Wikimedia's operations team is guilty of all of them. However, I am a strong believer in a clear separation of responsibility between developers and administrators, especially on production hardware. (To be fair, Brion has done a decently good job of managing this, although there have certainly been some very egregious exceptions.)

On top of that, Brion is currently managed by Brad. Brad, while more technical than most CEOs I've run across, is neither sufficiently technical to direct Brion effectively, nor does he have the time to do it on top of all the other stuff he has to do. Nor is there any guarantee that the permanent ED will be even as technical as Brad. Brion is not sufficiently skilled (or, more pertiently, experienced) a CTO to effectively keep Brad appropriately informed on technical matters or, from what I've seen, to manage Wikimedia's technical assets and contracts in a fiscally prudent manner. As as result, the Foundation wastes money on poorly-considered purchases (and, especially, on its strategy of "throwing hardware at the problem" of its grossly inefficient software) and contracts, and doesn't get a whole lot of value out of funding MediaWiki development. It's clear to me that Wikimedia needs to shake up its technical side somewhat.

My recommendation is threefold. First, appoint a true CTO: someone who has the technical skills to manage both developers and operations, without actually having to be either a developer or a system administrator, and also the managerial skills to interface effectively with the nontechnical people in the ED's office, the CFO's office, and the Board. The role of the CTO (a title which Brion currently holds, but he does not really perform the duties of the office) is to direct operations, infrastructure investment, and development to ensure that the goals of the Foundation are being met by those activities, to keep the leadership of the Foundation informed on technical developments in a manner that is comprehensible to them, and to ensure that the directives that are set by the leadership are met in a timely manner by the technical staff and volunteers who report to the CTO.

Second, appoint a Technical Committee (or TechCom). The purpose of the TechCom, which would be a committee operating under the auspices of the Board, is to determine the technical needs of the Foundation and of the communities and convert those into directives to be given to the CTO for implementation. They would do so in consultation with the Board, with representatives of the communities, and with the CTO and other technical personnel. The CTO would probably be ex officio a member of the TechCom. The TechCom would be the entity to establish the mechanism by which a project requests a technical change; once the TechCom has evaluated the request and prioritized it, the CTO then decides how to make the request happen and assigns it to the appropriate teams for implementation.

Third, separate the technical staff into development and operations teams. The development team, led by a Senior Developer (a role for which Brion is probably most appropriate), would develop MediaWiki and other software required to meet the objectives and directives determined by the TechCom and the Board, and would report up to the CTO. The operations team, led by the Director of Technical Operations, would be responsible for maintaining the servers, hosting arrangements, and other such things as are required to maintain the day to day technical operation of one of the Internet's more complicated sites.

The Senior Developer will likely have to do a lot of volunteer coordination, since most of the MediaWiki developers are volunteers. However, it would likely make sense to allocate some budget to either contracting out development of code and/or hiring programmers, especially where such development could increase the efficiency of the systems used by Wikimedia. Current management strategy gives the developers no real incentive to improve efficiency because they have control over both operations and the hardware acquisition budget; therefore, they can simply solve performance problems by throwing more hardware at them. This has resulted in the Foundation being significantly overinvested in server hardware. On top of that, having Brion doing so many different tasks prevents him from doing any of them as well as he could. Divesting him of his operational and hardware acquisition responsibilities would free him to actually develop the code as well as give him time to recruit and manage volunteers for the project, which hopefully would lead to a better completion rate on outstanding projects. We've been promised SUL for what, over a year now, and stable versions on dewiki is now overdue as well. I cannot help but imagine that this is in part due to Brion being stretched too thin; but I also suspect it is due to inadequate supervision of Brion and the other technical resources as well.

Tuesday, November 14, 2006

The ethics of editing encyclopedias, and of deleting social groups

This just in, from Wikimedia Commons: apparently having ethics, and expecting others to have them too, is contrary to Wikipedia's NPOV policy. I've heard some real doozies in my time hanging around Wikipedia, but this one takes the cake. I sincerely hope that rklawton retracts this outrageous statement with all due haste; if he fails to do so he really should be disinvited from the project. The idea that encyclopedia editors are not only not bound by ethical constraints, but must not be so bound, is flatly absurd.

Meanwhile, there is apparently a proposal to delete the Esperanza project on Wikipedia. I commented on Esperanza earlier, identifying it as one of the mechanisms by which nongeeks manipulate social networks, and explaining why it is reviled by geeks. Well, against my advice, the geeks have moved to delete Esperanza's pages out of the project space. The deletion attempt will almost certainly fail, and furthermore it will even more polarize the conflict between the geeks and the nongeeks. I have been encouraging people to quit Esperanza, even denounce it, but to move for its forcible deletion is inherently a violent act (in Meatball terms, a "DirectAction") and as such will tend to polarize the community instead of lead the community toward consensus.

There was no imminent need to delete Esperanza. Whatever damage it was doing was being done slowly, and a more deliberate discussion initiated in a less confrontational manner than the heated, high-pressure environment of a deletion discussion will necessarily force. In general, this is always the problem with deletion discussions on Wikipedia: they presume the conclusion. Instead of discussing generally the merits of the content in question, with many possible outcomes, the discussion is forcibly channeled into an up or down decision on deletion, with a fixed instead of open timeframe for discussion. Both of these structural features work against development of a true consensus, and instead turn the deletion process into trench warfare, which is what the deletion "discussion" of the Esperanza project is clearly turning into. I would have far preferred for there to be an open discussion on the merits of Esperanza as an encyclopedic organization, hopefully leading, at its conclusion, to a consensus decision to disband it, or at least reform it to reduce some of its more odious qualities. But I fear that the current deletion demand will merely galvanize the Esperanzan diehards into defending their plaything, and building up its bulwarks to defend against further such actions.

Monday, November 13, 2006

Playstations, price gouging, and anticompetitiveness

So, Sony, manufacturer of the PlayStation 3, which is being released in time for Christmas, is apparently offering a special deal: pay extra for the box plus a bundle of games of and we'll guarantee delivery by Christmas. This sounds like a neat deal to me, and perfectly reasonable: consumer pays a premium for guaranteed delivery of a desired good. Consumers who don't want to pay the premium can compete with everyone else on the open market for the residual inventory. Because of market competition, of course, they might end up paying more than they would have with the premium, but that's the risk you take with such deals.

So why are people complaining that this is price gouging? First of all, price gouging is not really possible for luxury items like Playstations. Nobody is forced to buy a Playstation; if merchandisers refuse to sell Playstations at prices that the market will bear, they will not sell any and they will not make money. This is not like charging $6 a gallon for gas immediately after 9/11. On top of this, merchants aren't jacking up the basic retail price; they're simply offering consumers the option to pay a premium to avoid the risk of shortage.

The objections being raised to this (see the comments at the Techdirt article) are just silly. Some of them are people who seem to think that they have some sort of right to a PlayStation 3 (well, guess what, you're not). Others are quite likely speculators who are moaning over how this is going to take a big whack at their plans to buy up as many PS3s as they can and then sell them at massive markup on eBay in late December. And, of course, I'm sure the other game manufacturers are less than thrilled; consumers who elect to accept the premium offer will likely buy less of the competition's products. But price gouging? Don't be so freaking histrionic. It's just a game.

Random stuff from other blogs....

First, here we have a proposal to recreate Nupedia. Hey, might work, now that Wikipedia has critical mass, but it'll take a very long time to actually create an encyclopedia with only seven people... Still, the fundamental complaint is failure to maintain neutrality. Maybe someone should point this guy at Citizendium?

Here, we have another editor who claims he has been chased off over neutrality issues. Seems none too happy about, too, and judging by his response in the comments probably deserved what he got. Still, it's a negative outcome; someone should do a RCA and find out why he's so pissed.

Meanwhile, Joystiq writes about vandalism to the Nintendo article.... Yeah, vandalism happens. Maybe someday Wikipedia will implement that "stable version" thing they were talking about at Wikimania. That would be nice. Wasn't that promised by like end of September? Oh, and by the way, just what happened to single user signon?

Saturday, November 11, 2006

Colors

I've added a bunch of new colors to my cooperative color naming system. I'm working on a way to group the color list by color (the database was recently sorted alphabetically) to make it more interesting to look at. I also need to convert this to something more AJAXic so I can store the colors in a database on my server and fetch and save them dynamically instead of the rather dumb way it works now.

I'm also working on trying to generate "light" and "dark" characterizations on the fly. Using existing characterizations for dark and light colors, I've been able to discover that, in most cases, the various characterized colors are more or less on a line through Lhabcab space. This means that I should be able to characterize a color as a midpoint vector and a scaling vector, the midpoint being the value of "medium", and then generate light, dark, very light, very dark, etc. by adding appropriate multiples of the scaling vector to the midpoint vector. I've determined these for sapphire and emerald so far. The linear interpolations generate pretty good matches. It appears that "deep" means the same as "very very dark", for example (both are a lightness index of -4). In case anyone is interested, sapphire has a midpoint vector of (67.332, 245.564, 0.368) and a scaling vector of (9.227, 2.699, -0.131), emerald has a midpoint vector of (76.166, 56.050, 0.584) and a scaling vector of (4.416, -5.959, -0.075), and amethyst has a midpoint vector of (70.415, 332.846, 0.226) and a scaling vector of (8.125, 3.357, -0.085).

I'll probably generate another doohickey sooner or later to display the results of my meanderings.

Friday, November 10, 2006

The last few days...

I haven't had a lot to say here the last few days. Mainly, I've been tired, between a busy week at work and a busy week of watching politics on TV.

Yes, yes, I'm quite happy with our new Democratic overlords. And I'm impressed with Senator Chafee for telling George Bush where to stuff his nomination of Ambassador Bolton. Lets hope that someone will stand up against adopting that hideous domestic surveillance bill that Bush also wants adopted before the end of the term, too. (So much for bipartisanism. Not that we expected Bush to actually be bipartisan....)

I was thinking about writing up comments on the candidates for the Arbitration Committee, but I don't really see the point. I've lost most of my respect for the Arbitration Committee, and don't really care who gets elected to it. Even if I ever do start editing again, I don't think that I'll have much need to interact with them. The current candidates, last I looked, ranged from lackluster to atrocious, with nobody in the entire lot that really inspired me to positive comment. I've since removed the RSS history feed for the page from my blogroll, and am officially paying no further attention to the topic. My single comment to voters: do not elect good writers to the ArbCom. Unless they use speed, or have no lives at all, they will not have time to be both good writers and good arbitrators. In most cases, someone who is a good writer is better off serving Wikipedia as a writer than as an arbitrator. And given the increasing lack of relevance of the Arbitration Committee, it seems like a double waste to put a quality writer on it.

The MediaWiki port moves slowly. Semirelatedly, I am looking at JavaCC, both as a possible tool for developing a markup parser and as a tool to assist in writing a generalized PHP to Java converter. Unfortunately, I haven't been able to get the JavaCC Eclipse plugin to work right yet. This is not critical, but it qualifies as annoying, and I don't like annoying.

Product endorsement: Sensaphone makes very nice infrastructure monitoring systems. We deployed one of these at work, and it is a very nice, easy to use system, and the monitoring devices are also very reasonably priced, as well.

Oh, and kudos to Liebert. I mentioned them a few days ago in my blog (without even linking them!), in my rant about Wikipedia's lack of an article about drycoolers. Apparently their marketing department pays attention to the blogosphere, noticed my post (in this truly insignificant blog), and forwarded it on to an engineer, who sent me some materials that included information about drycoolers. As this appears to be sales literature, I will gladly forward it on to anyone who wants to use it to improve Wikipedia's content about drycoolers, or about precision cooling generally (or even Wikipedia's nonexistent article about the Liebert Corporation). Anyway, good customer relations, there.

Wednesday, November 08, 2006

Presidential product placement?

In Bush's comments to the press today, he included the phrase "carnage on their Dell television screens". Why in the world would George Bush mention Dell in this context? Why is our President giving product endorsements during press conferences?

Monday, November 06, 2006

Victory over the evil Apache Proxy!

Adding "AddDefaultCharset utf-8" to my proxy definition in httpd.conf dealt with the minor issue I've been having with some page rendering badly because of UTF-8 content that apparently was being interpreted as ISO-8859-1. I am much happier now.

SPUI

Someone mentioned on IRC that someone proposed a community ban of SPUI. This is an extraordinarily stupid idea, for reasons that will be obvious to anyone who has taken the time to understand SPUI. Below is an email I wrote to the ArbCom about how to manage SPUI. I am reproducing it here (slightly edited) for the general betterment of mankind. This was written on June 30, 2006.

I've been evangelizing on IRC about how to handle SPUI for some time now. Basically SPUI is a continuous breaching experiment -- he is constantly testing the limits of our collective patience. He is going to do this; that is the nature of SPUI. The problem is that banning him -- or any sort of long term block -- will just encourage him to try to subvert the system in less obvious ways. It is my opinion that we'd rather have SPUI editing as SPUI rather than as an army of SPUIsocks, which I firmly believe is what would happen if he ever gets blocked (and remains blocked) for an extended time. And we all know how hard it can be to deal with that sort of thing.

Fortunately, one thing about SPUI is that he stops when he finds the boundary. So really all that need be done to manage SPUI is to "smack him on the nose with a newspaper": give him a short block (3 hours to 1 week, depending on circumstances) whenever he goes too far. He seems to accept short blocks in good grace (he knows what he's doing, after all) and after his blocks clear he almost always goes back to his usual editing, which, by and large, is productive and useful.

Psychim complained to me [on June 30th] that if we only block him for a short time when he does these things, then SPUI will have won. This is the real problem here: admins who see this as a contest. Too many people are now trying to "beat SPUI" and that has resulted in a great deal of misbegotten vehemence toward him as a person, rather than at his individual actions. (This is also a large part of the problem with the highway naming case, actually; a number of people opposing him there seem to be opposing his position simply because he's SPUI, and not because of any substantial fault with the position he takes on the substantive issue. The ArbCom should be giving those people a firm rap on the knuckles for making it a dispute of personality instead of a dispute over policy, but I have little hope that that is what you'll actually do in that case.) Many of our admins have decided that he is a troll (and, to an extent, he is, but he's a manageable troll who happens to be useful), and as a result they no longer give him any semblance of good faith even when he is trying to contribute in good faith. To be fair, SPUI brings this on himself by being so tendentious in his breaching experiments, but that doesn't excuse people from treating with him fairly the rest of the time.

Generally put, SPUI is a valuable contributor who is also a low-level annoyance, and our admin corps is not good at managing people like that, because their operational mindset is one of combat instead of one of management. Whenever he goes outside the boundaries of acceptable behaviour, he should be promptly given a short block (from a few hours to a few days, at the longest) with a clear and polite message as to what he did to get blocked. Hauling him before a firing squad for what would otherwise be minor offenses just riles him up more and allows him to start his usual campaigns (which is also why I think short blocks are a good idea; he doesn't have time to build a campaign against the block if it's only for a few hours). Conversely, NOT blocking him for minor offenses encourages him to commit more major offenses (remember, he's seeking limits, and he will continue to probe until he finds the actual limit). Also, he knows that long (and especially indefinite) blocks won't stick anyway.

(Update: Stupid missing parentheses.)

Sunday, November 05, 2006

Web2.0: For men only?

I happened to be looking at digg.com's "about" page. There is there a collage of photographs of their staff. All but one of them are white men. The sole exception, Nicole Williams, holds the position of "Digg Ambassador" (which presumably means that she does public relations; I would not be surprised to find out that she is their receptionist). Her personal profile starts out by describing her as their "Rude Girl", and talks not at all about her professional qualifications, or even about what she actually does for digg.com. Contrast this with, say, the profile for Steve Williams, which talks in some detail about his other activities.

So, why is there only one woman at digg.com, and why is her job so vaguely defined?

Long-term Wikipedia vandalism exposed

Long-term Wikipedia vandalism exposed: "No, I think the fault here lies ultimately with the structure of Wikipedia itself. The website's openness both allows an enormous amount of vandalism to filter through every day, not all of which can be removed within minutes, and relies on ordinary people to catch hoaxes like this and remove them."

Indeed, that is one of Wikipedia's largest faults. Open editing got Wikipedia to where it is today, but left unchecked it will take Wikipedia to where it is going tomorrow: the occasional jewel of a good article, surrounded by a mix of mediocre topsoil and outright stinky crap, like the nonsense in the article referenced in the article above.

Open editing may be a good way to start an encyclopedia, but I am starting to think that it is not a good way to finish one.

New color scheme

I never really cared for the black & gray scheme, but I was too lazy to change it. Well, I got a burst of unlazy today. Hope y'all like lavender. (The background color, however, is very close to one of the colors known as "why can't we be antisocial", which I find somehow appropriate.)

(The other two colors called "why can't we be antisocial" are this one and this one, although I just deleted the second one as it was clearly the result of someone who did not understand the interface.)

Friday, November 03, 2006

Wikipedia as an encyclopedia of technology

Background: At work one of the things I am responsible for is the cooling of the equipment in the computer room. We have a Liebert Foundation XDF cabinet, a cutting-edge design that uses a digital scroll compressor, a local R-407C refrigerant loop to provide cabinet cooling, with heat elimination via a plate condenser into a water-glycol loop that transfers the eliminated heat to a drycooler mounted on the roof. Now, I learned in high school chemistry about gas laws and catabatic expansion and the general principles by which refrigerators work. However, I have never had a reason to learn any practical knowledge of this, or even think very hard about the details of the technology. Our XDF unit has had some difficulties in the past weeks, which have finally been traced to a refrigerant leak and today finally repaired, permanently, we hope. In any case, I wanted to learn more about the technology we're using, and specifically about drycoolers, a technology that I freely admit that I don't really understand. So I tried to research them on the web. Sadly, Wikipedia has no article on drycoolers. None of the industrial refrigeration articles mention them, even though they're widely used in commercial and industrial refrigeration systems. In fact, neither "drycooler" nor "dry cooler" appears in any article on Wikipedia at all. (I still don't know exactly how one works. I suppose I should ask my sales engineer sometime.)

In general, Wikipedia's coverage of technical topics not related to computers, airplanes, or trains, is spotty. The other area where I've specifically noticed this is electrical distribution systems. One of my other responsibilities includes ensuring that the computers get enough power. We upgraded our UPS from a 12kVA single-phase unit to a 20kVA three-phase unit. At the time, I was not really clear on how three-phase works, and so I researched the topic. Wikipedia has ok, but not good, coverage of this topic. It has much poorer coverage of the power distribution grid and the technologies used to accomplish power distribution. The article on power conversion states that "power conversion is the process of converting power from one form to another" and then goes on to list several forms of power that one might convert between. It also lists a few methods used. It does not discuss the relative merits and disadvantages of each method, or talk about which ones are predominant. The discussion of why one might want to convert power is superficial and conclusary. No major vendors of power conversion products are listed. All of these things that I would expect in a decent technical encyclopedia article. The current article is woefully inadequate.

Surely there are some people out there with expertises in these areas who might do something about Wikipedia's poor coverage of commercial power systems and commercial refrigeration systems. I suppose the main reason there is not good coverage of these topics is that these are topics that tend not to be studied in colleges; they are skills normally learned initially in trade schools, and mastered eventually in on-the-job apprenticeships. And these people, I strongly suspect, are not on Wikipedia, and even if they are are more likely to write about professional wrestling, NASCAR racing, or football than they are about the secrets of their trade. Still, there are engineering students who must learn at least some of this stuff (someone has to design power converters and refrigeration systems, and those people generally have gone to college and garnered at least one degree in engineering). Is Wikipedia not appealing to engineering students? If not, why not?

Tuesday, October 31, 2006

Topics of the day

First, in the world of intellectual property abuse, we have coffee farmers attempting to trademark coffee beans, tax accountants attempting to patent tax avoidance strategies, and Yahoo attempting to patent "interestingness". Not quite all the same thing; Starbucks is trying to eliminate competition while the other two are attempts to milk money out of the competition, but it's all still corporate greed at work. A not-quite-the-same-thing issue, but related again to intellectual property rights, is the use of bad-faith DMCA claims by organizations against their critics in an effort to ferret out the identities of the critics, or alternatively to shut them up entirely. The DMCA requires service providers to disclose such information on the receipt of a properly-formed request even if the request is patently meritless, and several organizations have lately gone to the trouble of using the DMCA's identity-disclosure provisions for reasons not legitimately related to the legitimate prosecution of a copyright interest.

On the Wikipedia front, the "webcomics are evil" people are going after Ubersoft now. Here's Christopher Wright's take on it. And while we're talking about webcomics on Wikipedia.... More generally, the Chronicle of Higher Education ran an article on Wikipedia's general respectability with academics (or lack thereof), and why it's not as good as some people might like it to be. Meanwhile, a local student was arrested apparently for making threats against his high school on Wikipedia. The threats themselves appear to have been deleted by admins, which led the Tribune to mistakenly report that they were "never posted". Sloppy reporting, there, Mssrs. Ford and Meisner.

Meanwhile, Jimbo Wales and Jason Calacanis have been trading barbs over advertising on Wikipedia. I truly think that Calacanis simply does not get it; like so many web marketers, he only sees readers as sellable inventory. Calacanis simply doesn't understand that Wikipedia is about content, not about traffic; once you get past this, understanding why he doesn't see why his proposal won't work is easy. (Parse that!)

Elsewhere, Credit Slips muses on whether student loans create a form of debt slavery for students who obtain degrees in lesser-valued fields. As someone who will be paying off student loan debt for the next 25 years, I definitely see where they're coming from. And in the "stupid legal tricks" category, a man in Ohio has been paying child support to his deceased wife since April, and will have to continue doing so possibly until at least January, even though he has custody of the children and the money is going to "nobody in particular". (In theory, he will get the money back when the order is finally dissolved. Let's hope.)

We have been watching a lot of Robot Chicken lately. Although not as much as we might like, because Robot Chicken is definitely not "family-friendly" so we can only watch it when the sprog is asleep, which is not often.

NASA declared its intent to repair the HST, a pleasant reversal of course over the previous NASA administration, which had elected to let the telescope die. The HST is a singular instrument; its value to cosmological research is difficult to overstate, and to let it die without prospect of replacement would be terribly irresponsible.

And, finally, for those of you in Cook County, don't forget to vote. Early voting ends Thursday, so if you want to vote early, do it quickly. Otherwise, you have to vote at your normal polling place next Tuesday.

Update: corrected misstatement regarding the coffee beans.

Sigh. Wikipedia needs better admins. Really.

This evening an editor came to me and asked me if was an admin. I told him I wasn't, but asked him why he asked. He proceeded to tell me how he had been blocked for 96 hours for being "too argumentative" and his talk page protected in order to keep him from continuing "personal attacks". I looked at the incident. The individual in question is certainly being argumentative, but his arguments appear civil, if emphatic, and certainly are not personal attacks unless one considers a statement that "you are abusing your authority as an admin" as a personal attack. (Hint: it is not.) Furthermore, the event which apparently earned him his block was his declaration that he was going to gather evidence for an RfC. So, apparently, a group of admins blocked this individual (and substantially curtailed his ability to appeal that block by protecting his talk page) simply because he declared his intent to avail himself of Wikipedia's formal dispute resolution process.

Even if this guy really does deserve to be blocked -- and I am certainly not convinced of that -- conduct such as this just stinks. If someone says "I'm going to sue you" you do not shoot them in the knees, or hire thugs to tackle him should he make a move toward the courthouse. And yet this is basically what has been done here. What saddens me even more is that several of the parties involved here are people who I thought were reasonable admins. By blocking this guy after his declaration of intent to file an RfC, you effectively tell this guy "no, dude, you won't do that. We control you. You will do what we say, or you will leave. Get it? Good." That might not have been the intended message, but it certainly is the delivered message.

I hope this guy gets the chance to actually file his RfC, and I hope that it's not another one of those silly mutual backscratching sessions that most RfCs filed by combative but well-meaning editors turn into, where the target of the RfC gets all of his friends to pile on comments about how he's the best admin in the history of Wikipedia and the complaintant is nothing but a whiny troll who is just upset because X didn't go the way he wanted it to. Editors get upset for all sorts of reasons. Admins should try to make them less upset, not beat them up because they are upset. Nice job, guys. Now not only is the editor still upset, but now he's mad at being blocked, in his opinion unfairly, and he wants vindication.

When the hell will these people ever learn?

Monday, October 30, 2006

A Group is its Own Worst Enemy

I set up the del.icio.us bookmarking tool for Firefox, just to experiment with it, and as a result have been looking at some of my old saved bookmarks. And I ran across this one, an essay by Clay Shirky on group dynamics in online groups from 2003. And it is remarkable how much of what it says is relevant to Wikipedia today.

Three patterns in online groups:
  1. Sex talk. Anybody who spends much time on any of the wikipedia-related IRC channels will notice this.
  2. Identification and vilification of external enemies. Check, got lots and lots of that. Sollog, Wik, Lir, Daniel Brandt, Karmafist, Willy on Wheels, you name it, Wikipedia has lots of identified and vilified enemies -- whether or not they really deserve it. In most cases, the enemies have earned at least some of their ill repute, but it invariably gets blown up to epic proportions to the point where even contemplating whether the enemy du jour should be considered an enemy is grounds for sanctions within the group. (Part of me wonders how long before I become identified as an "enemy" of Wikipedia....)
  3. Religious veneration. This is quite evident in the IRC channels too. Jimbo as Godking. Danny as his right-hand man. There are lesser cults around other prominent figures, such as Raul654, Geogre, SlimVirgin (while this one mostly avoids IRC, it's very active in email), and even myself (although, thankfully, that one is breaking up now that I've left Wikipedia).
The author (a psychologist named Bion) who originally noted these patterns noted them in his group therapy sessions for neurotics. However, they seem to apply to nearly any group. What Bion noticed is that these behaviors actually work to undermine the purpose for which the group exists, by subverting the group's ostensible goals and replacing them with goals related to basic urges of human dynamics. Shirky goes on to suggest that groups have to have rules and structures to protect themselves from themselves.

Shirky later mentions Wikipedia positively in the article -- but it should be noted that he wrote this in 2003. Wikipedia was much smaller then and did not have the disordered group dynamics it does not, or at least they were still in a very juvenile state. The current state of Wikipedia very much resembles the anecdote he tells of Communitree, an online intentional community that was overrun by teenagers and destroyed, because their community was too open to assimilate the teenagers into a structure that would channel their activity into the goals of the group.

Shirky lists three things that must be accepted. First, that one cannot separate the technical and the social. I think his main point here is that technical solutions to social problems may (and generally will) have unintended results, either failing to solve the original problem, creating new problems, or both, and that one must not rely on purely technical solutions to resolve social issues, or vice versa, for that matter.

Second, that members are different from users. (This is one Wikipedia sadly gets very wrong.) Any successful group, says Shirky, is going to have a core group that "gardens effectively". The obvious group to be doing this in Wikipedia is the administrators -- but administrators, as a group, do not do this. Administrators on Wikipedia are far from homogenous. Wikipedia does have a group of gardeners, and certainly a great many of them are administrators, but not all. One of the problems that the gardeners are having is alluded to in Shirky's article: such groups tend to establish alternate communication channels (such as the "Old Hats" list from a.f.u) in order to communicate in a lower-noise environment. Other people in Wikipedia are objecting very strongly to such channels, and doing everything they can to undermine them.

These same people also object to the third point: the core group has rights that trump individual rights. The same people who object to "backchannels" routinely make accusations of cabalism -- and essentially that is what is going on. The problem, as I see it, are people who complain about the gardeners forming a cabal, while at the same time doing no gardening themselves. (I'm sorry, but writing featured articles, reverting vandalism, or really most of the actual work on the encyclopedia itself are not "gardening". Gardening, from this point of view, is maintaining the community, and more specifically conveying the norms, expectations, rituals, and practices of that community to newcomers so that they may know what is expected of them. It is something that Wikipedia does not do a very good job of, and it is why most Wikipedians today have little or no sense of community.) This is exactly what Shirky (and Bion) are talking about when they talk about letting base instincts override sophisticated goals.

Shirky identifies four things to design for. Two of them seem especially relevant to me here, the third ("establish barriers to participation") and the fourth ("protect the group from scaling"). Wikipedia suffers badly from the lack of both of these design characteristics. Wikipedia does have barriers to participation, but they are terribly low and easily gamed. And its conversational systems scale terribly, as anyone who has been involved in a heated policy discussion on the wiki can testify. It is small wonder that so many groups have retreated to other communication channels (IRC, email, whatever) for their discussions: it is impossible to hold them in the wiki itself because there are simply too many potential participants.

Reading this article (written over three years ago) really reinforces my belief that Wikipedia's culture has headed off in the wrong direction and is not only ill-suited to serve its main purpose, but will become increasingly more so until major corrective action is taken. I don't know what that action is, or even if any action is possible at this point (the current community norms have become quite soundly entrenched and there is nobody with the power to alter them significantly in any sort of smallish timeframe) short of forking, but I'm quite certain that the horse is definitely not still on the track.

Sunday, October 29, 2006

How to make progress by shoving problems under the carpet

I just commented out all of the loadbalancing code in the java port, on the grounds that it makes far more sense to develop loadbalancing at a JDBC driver level (the same place one normally does connection pooling). Once I get the application working with a single server, I'll come back to the problem of loadbalancing, which should, if done correctly, be almost completely transparent to the application anyway.

I'm certain that this problem will prove to be challenging, but I think it makes far more sense to reengineer it than to try to perpetuate an implementation which is designed for a totally different environment (specifically, one without a database abstraction layer).

No daily linkspam, so I made it live instead

I can't get del.icio.us's daily linkspam posting functionality to work, so I added it as a sidebar to my blog template, instead. Enjoy.

I have been having terrible problems with headaches all day today. However, the headaches are manageable as long as I stay sitting. So I've been hacking. I made significant progress on the java port today, and just committed a rather large set of changes.

I have discovered a new liquor!

In the course of making holiday fruitcakes, we macerated pecans with brandy. This morning, I happened to taste the residual liquor from the jar in which the pecans were macerated. It is absolutely delicious. It is what Frangelico wishes it were. I am going to have to start making this myself, by macerating pecans (with a bit of candied citron, probably) in brandy for about seven days, then filtering off.

Saturday, October 28, 2006

Antiequivalence

An equivalence relation, as many of us already know, is defined as a relation which satisfies reflexivity, symmetry, and transitivity. This afternoon, I was musing about an "antiequivalence relation": a relation which is irreflexive (for all a, a R a is never true), antisymmetric (for all a and b, if a R b, then b R a is false) and intransitive (for all a, b, and c, if a R b and b R c, then a R c is false). And, after some thought, we came up with one: "a is the biological mother of b".

For some reason, I felt the need to share this.

Friday, October 27, 2006

iTrip makes unlikely bedfellows

Apparently Christian broadcasters and National Public Radio both agree on the same thing: iTrips are evil. These devices, which have been banned in the UK, act as little FM remodulators so that you can listen to your satellite radio (or iPod) in your car even if your car only has a wimpy little FM radio, by (re)broadcasting the signal at a supposedly low power such that your car radio will pick it up. The problem, according to NPR, is that a substantial fraction of these devices exceed their FCC-mandated power restrictions. These systems are often set to use channels at the lower end of the FM band (most commonly 88.1 MHz), which is principally occupied (per the FCC's licensing plan) by community and non-profit radio stations, a space mainly occupied by Christian broadcasters and public radio stations. The Christians presumably aren't happy by having their worship services randomly interrupted by someone else's gangsta rap, or by Howard Stern, just because one of their listeners drove by someone with one of these devices set with the power higher than it should be. NPR is bothered enough by this that they've petitioned the FCC to recall the devices. The FCC has already said that many of XM's devices exceed the legally mandated power limitations, a finding that could easily lead to a required recall for XM.

(From TechDirt.)

Headaches

I was looking forward to getting some work done tonight on celeritas (my interim project name for the Java port of MediaWiki), but shortly after dinner I got hit first by an attack of extreme tiredness (which is actually pretty common; I often crash around 6-7 pm) and then after that by a rather nasty headache. I did manage to get a tiny bit of work done, but not much, and the current tangle of code I'm looking at is sufficiently ugly that I doubt I"ll be able to make headway on it while only operating on two cylinders mentally. I might be feeling better later on, once the caffeine and alcohol have had a chance to work (I usually have one cup of coffee with a shot of Bailey's in the evening), but I'm not counting on it.

At least I got to watch two Robot Chickens and part of a Psych (hopefully we'll watch the rest later). Maybe I'll do some reading; I've managed to put a few pages behind me in A Game of Thrones lately.

I've also started doing del.icio.us tagging again, and there should be a daily linkspam post in here later tonight when the autoposting thingy fires. And I'm testing using SEMagic to post to Blogger, just to see if it works.
Froosh, over at HipMojo.com, estimates that Wikipedia is worth about $580 million, based on traffic, advertisement rates, and industry valuations of similar ventures.

Of course, this analysis assumes that adding advertisement would not chase off contributors, which it likely would. But there would be so much extra revenue that it would likely be possible to pay contributors enough to make up for the loss of volunteers.

Wednesday, October 25, 2006

Another compilation unit completed, although tonight's (LinkBatch.java) is really quite small. Latest commit is always here. WebSVN even allows you to subscribe to an RSS feed now, which you can find here.

In other news, current polling data suggests that the Dems will definitely take the Senate, 52-48. Sadly, I suspect this is more because of Mark Foley than because of the suspension of habeas corpus, even though the latter is what will make Bush go down in history. People are apparently more influenced by the rumor of simulated sex with teenage boys than by the revocation of a centuries-old legal right to not be imprisoned arbitrarily. How sad.

Quote of the day: "It is said that if you place a million monkeys in front of a million keyboards, they will eventually produce the works of Shakespeare. This is simply not true. They cannot even produce an encyclopedia."

Quote #2 of the day: "A wok is wot you thwo at a wabbit when you havwent got a wifle."
I said in my last post that I didn't get any work on my java port project done tonight. Well, I lied. My headache got better and not only did I finish FileStore.java, but I got websvn set up on my SVN server, too. This means that, for example, you can see my last commit with ease now. If there is actually anyone out there watching me do this silly project, well, I just made it easier for you. I've also nearly decided on a name, but that won't show up until I finish with the first pass (since I don't want to try to do the refactor by hand).

I've also been thinking about how to handle MediaWiki's handling of quotes in the parser. The approach currently used by MediaWiki is such that it makes the language require arbitrary lookahead/lookbehind, which is bad. However, I think I can avoid that at the cost of making certain nonstandard markups parse "differently". Mainly, sequences of either exactly four quotes, or more than five quotes. I would make two quotes be one lexeme (call it 2Q), three quotes another different lexeme (3Q), five quotes yet another lexeme (5Q), and sequences of four or six or more probably be syntax errors. I might allow for four quotes and six quotes to also be lexemes (4Q and 6Q) that are basically treated as null strings, since they can conceivably occur during template expansion and when they do the user's intent was probably to output nothing. There is no excuse for seven or more quotes; that should be a syntax error.

The downside is that I don't think I can easily enforce pairing at the grammar level; it will have to be enforced at the conversion layer instead. I'm not sure this is really a bad thing. The problem is that 2Q ... 3Q ... 5Q is semantically valid, as is 2Q ... 3Q ... 2Q ... 3Q, and 5Q ... 3Q ... 5Q ... 2Q. But 3Q ... 5Q is not. It might be possible to enumerate all the possible combinations and do so in a way that doesn't break LL(1)/LR(1), but I'm not sure about this yet.

Tuesday, October 24, 2006

Tiredness

Another day with little to show for it... Got called into work early because the cooling system in our server room conked out again; we clearly have a refrigerant leak but we don't know where yet. They left us a bottle of R-407C so that the next time it happens we don't have to wait for them to go back to the shop to get one (the shop is a half hour away from the office, and that means an hour wait for them to get a reload). Now if they'd just leave me a charging manifold... I've watched them do it enough times that I can probably do it myself now, and I know both the total charge and the normal operating head and suction pressures for this unit as well as they do. Anyway, it's fully charged again, this time with a fluorescent dye load so hopefully we'll be able to locate the leak and fix it.

As a result, I missed lunch. When I miss lunch, I usually get headaches. And today was no exception. Came home with a splitting headache, which has not let up much at all. On top of that I am sore from trying to bring order out of the upstairs chaos on Sunday and Monday. I think tonight will be an early night, so no coding for me; what little time I had this evening was spent on the Sims. Maybe tomorrow. At least the last few days up to now have been relatively productive.

Monday, October 23, 2006

In case you hadn't heard, the United States has apparently banned vegemite, a yeast extract which is extraordinarily (one might even say unreasonably) popular in Australia. This appears to have happened six months ago. Recently, however, US Customs has apparently started interrogating travelers with Australian passports at the border to ensure that they're not sneaking little jars of salty yeastiness into the country. You see, Vegemite has folate, a vitamin that the FDA already requires to be added to flour and bread product, and which is a major component of the prenatal vitamins that we push so hard on pregnant women (and for good cause). And, apparently that's bad. Getting your folate from a salty yeasty paste instead of from a pill is bad, because if you eat an entire jar at once you'll get so much that you might not notice that you have vitamin B12 deficiency.

I have some vain hope that our customs agents have better things to do than search travelling Aussies to make sure that they're not sneaking any jars of salty yeasty contraband, but apparently not. Then again, Customs put a lot of effort into stopping rogue Beanie Babies in 1998, too. Now if they could just do something about the terrorists...

Sunday, October 22, 2006

Programming pet peeves

First, a pet peeve: using a language's internal array types as an ad hoc structured type. This occurs most commonly in languages like Perl and PHP (which have easy to create array types) for functions which need to return "more than one value", for whatever reason. The correct thing to do is to declare a class to hold the necessary values and return that object. Instead, many lazy programmers instead pack the values to be returned into an ad hoc array. MediaWiki is full of instances of this. (I am guilty of it myself, having done so many many times in throwaway code.)

Second, a grouse about languages that allow code to manipulate the (global) symbol table. For example, PHP has a function called "extract" which instantiates new global symbols on the fly. Such techniques make for difficult to maintain code -- they cause variables to appear out of nowhere. This makes static code analysis very difficult (in many cases impossible) because there's no way to know what variables will exist without actually running the code. All great ways to make code difficult to maintain -- and even harder to convert to languages that don't allow for runtime alterations to global or local symbol tables, which is most of them. A similar, but slightly different, nasty behavior is PHP's mysql_fetch_object, which creates an anonymous object whose instance variables correspond to the fields returned by the database query, which (again) cannot be absolutely known without running the code.

Both of these are examples of convenience techniques that surely make life easier when writing quick and dirty throwaway code, but should never be used in any application intended to be maintained over time and especially by more than one or two programmers.

Saturday, October 21, 2006

Distractions

I haven't made a lot of progress on the MediaWiki port this week. I blame this mainly on two things. First, Sims 2 Pets came out recently and I have been wasting a lot of time on exploring the new features this expansion pack gives.

Second, I have been perfecting my economic strategy over at Londinivm, which is one of those vaguely silly online MMORPGs that happens to have a somewhat interesting economic model. I think it was Luigi30 on #wikipedia who introduced me to it. Anyway, I've finally got enough of the details of the economic system down to navigate it in a manner that at least most of the players I talk to seem to lack. If you do happen to find your way there, look me up; I'm karynn there (id 19564) (and, yes, my tribe is accepting recruits). And yes, I know, the player image is male; I'm not overly happy about that. Player images there are determined by class, and the only two classes with female pictures are classes that don't fit with my style of play. Grumble, oh well, I don't care that much. :)

I am also starting to think about writing more automated PHP to Java conversion software. There are some sticky wickets that would probably make doing generalized conversions nearly impossible, but I suspect that I can automate 80% of the conversion process without too much effort. Still musing this possibility. If I go that route, I might just start over on the MediaWiki port.

Tuesday, October 17, 2006

Completed the rough port of another module (Language.java) tonight.

PHP arrays are more annoying than I originally thought, and the number of odd functions which I deferred to later implemention by stuffing them into the MW module was annoyingly large for this compilation unit. Also, it's quite obvious to me that I'm going to have to infer an interface for LanguageConverter and apply that to both LanguageConverter and FakeConverter as the two have incompatible constructors, yet are clearly intended to be interchangeable otherwise. But I can't use eclipse to infer an interface until the compilation unit is compilable, which means I have to get through cleaning up LanguageConverter first. Oh well. I suppose I could infer the interface by hand, but what fun is that?

I am getting much faster at converting foreach() constructions into Iterator .. while (hasNext) .. next() constructs.

Sunday, October 15, 2006

A great deal of the complexity in MediaWiki's language support appears to be related to PHP's relatively poor support for Unicode. Java's "near-UTF-16" support is a lot less complicated to deal with (although not entirely perfect; it will treat a character represented by a surrogate pair as two characters, at least with 1.4 JREs; fortunately there are relatively few such characters). Another large hunk of it is to deal with transitioning between older MediaWiki databases and current Unicode-based databases; I can reasonably insist that the database be UTF-8, UTF-16, or UCS2. (UCS4/UTF-32, not so much...) and not have to worry about on-the-fly conversion of outdated database formats. I don't expect the schema to survive intact, either, although I've not made any schema changes, yet; the most I promise to provide is some means to make a one-time nonreversible conversion of a MediaWiki database to whatever I end up naming this thing in the end.

The other thing that makes this irritating is that, in MediaWiki at least, the same datatype is used for both byte streams and strings, even though one is a stream of bytes (which may or may not be a string encoded in some character set) and the other is a string (a stream of encoded characters). It's therefore rarely obvious what encoding (if any) the contents of a given PHP string are going to be in in MediaWiki, which means I will probably have some errors in that regard down the road.

Friday, October 13, 2006

"It is a good rule in life never to apologize. The right sort of people do not want apologies, and the wrong sort take a mean advantage of them."

P. G. Wodehouse, The Man Upstairs (1914)

Wednesday, October 11, 2006

New book coming up!

I finally finished the Baroque Cycle tonight. I've been working on this book for ages now. Now I'm on to something else. Probably George R. R. Martin's "Song of Fire and Ice" series, or at least the first book thereof.

Here's another Keith Olbermann video that is definitely to be seen. I may have to put his show on season pass on the TiVo so I can watch these without having to futz around with MSN's annoying behavior on the web; as of today, it seems, I am unable to watch these in Firefox -- simply because I have Flash 9 instead of the expected Flash 8 (which I do not appear to be able to download). Annoying.

No progress on the MediaWiki port today; I have not been in the mood. I have tomorrow off, however, so maybe I'll catch up some during the day.

Tuesday, October 10, 2006

Impeach Antonin Scalia : CafePress.com

I had completely forgotten about this silly little shop I set up a couple years ago in a fit of boredom (or whatever). Apparently it sold a sticker today. Totally unexpected. It also sold one back in May, but I don't recall getting an email for that one (perhaps my antispam ate it or something). Anyway, amusing.

No code written today; just wasn't able to get into the headspace for it. I did die several times at Nethack, though.

Update: After posting this I went on to finish off JobQueue.java. More loose threads launched by this file; the number of "TODO" methods has grown a bit more. I think I'm going to have to work to eliminate the PlainArray and AssociativeArray classes relatively quickly, for they are a pain in the ass. PHP arrays are somewhat weird.

Monday, October 09, 2006

Finished off DifferenceEngine.java today, along with HTMLCacheUpdate.java. Now working on JobQueue.java. The database code still needs a lot of refactoring, and some of the stuff in JobQueue is showing this off. The switch statements for choosing subclasses in JobQueue make me twitch.

I've had a roaring headache most of the evening, which has hampered productivity. Still, I am pleased with the progress I'm making.
Nearly done with DifferenceEngine.java; probably only one more evening's work to go on it.

At the rate I'm getting through this stuff, I'm hoping to have a fully compilable (albeit probably nonfunctional) version in maybe ten to twelve weeks. I am limited as to the amount of work I can do on weekdays. There are only so many hours in the day, after all. Once it all compiles, then I get to the real fun: making it work at all.

Sunday, October 08, 2006

According to Greg Beck (and as reported today on Techdirt), the doctrine of first sale is no longer valid for shampoo bottles, or at least according to some company called SalonQuest, who wants to make reselling your shampoo bottle online illegal.

SalonQuest isn't really seeking to defend its copyright here; they're just using copyright as the stick to beat someone whose actions dilute their market. The real "right" that SalonQuest is seeking to control is the right to control the market: they want to ensure that they and only they control the conditions under which their product is sold, probably to ensure that they don't lose the (highly valuable, to them, at least) marketing data that goes along with each transation.

Yet another example of copyright law being used as a lever to defend illegitimately-claimed "rights". The ability for copyright owners to leverage their copyrights into a monopoly in other areas cannot be understated, and yet our courts and lawmakers have done such a poor job of even recognizing this, let alone successfully curtailing it.
I figured out how to get SVN working, and so it is now set up, at http://svn.pyrzqxgl.org/svnroot/jmediawiki/. I will eventually change the product name (that name is unsuitable for publication because of trademark issues), but I want to wait to do that until I have the code sufficiently syntax-valid to use Eclipse's refactoring methods.

Substantial hints on getting SVN working within Apache2 were garnered from this howto at Sourceforge. My thanks to whoever "bertheymans" is.

Saturday, October 07, 2006

The End of Fossil Energy - an interesting commentary on where we're going as a world in the next century or so. The author doesn't seem to mention fusion power, but otherwise I think he's probably pretty much right on track.

Also, I wasn't aware that Keith Olbermann had been on SportsCenter. Not that it really matters, of course; he's clearly an excellent journalist, and the fact that he started out in sports in no way detracts from it. It is refreshing to see a member of the Fourth Estate fulfilling his duty by reporting, and then meaningfully commenting upon, the news, instead of feeding propaganda disguised as entertainment disguised as news the way people like Sean Hannity do.
I do not like dismissal automatic,
It seems to me to be traumatic.
I do not like it in this case,
I do not like it any place.
As a judge I am most keen
to understand, What does it mean?
How can any person know
what the docket does not show?

(click here for the rest)
A special comment about lying

Another must-see commentary video from Keith Olbermann.

The question now is not, will the Democrats take the House in November; it is whether the Democrats will take both the House and the Senate. And, if so, just how badly the Republicans will be willing to trash the nation in the lame duck weeks that follow in order to blame the brewing recession not on their own incompetent direction during the past six years, but instead the two years of Democratic leadership that will follow, in order to have some hopes of electing whatever evil pretender-king will be chosen as the Republican nominee come 2008. I have little doubt that Karl Rove and Company are totally willing to completely trash the United States in an attempt to regain control in 2008. "The object of power, is power", after all. Here's hoping that the damage done by the 108th in its upcoming lame duck session can be mitigated early enough in the 109th.

Thursday, October 05, 2006

Anybody spare a cup of R-407C?

After spending most of last night reinstalling Eclipse (which is now working much better), I was hoping to get some work done on Database.java today. Such was not to be, though; at 2:19a.m. the Liebert refrigerated cabinets we have at work blew a compressor. We had a combination of a freon leak (hence the cup of R-407C) and a blown device called a "power head" that took six hours to rectify. This dragged me into the office before I could even shower, let alone have breakfast. We didn't fully resolve all issues until 4:55 p.m. So after spending the entire day in crisis mode, I am too blown out to even think about code.

The only consolation is that today is Thursday; that means I only have one more day this week to worry about and then I get a weekend where I hopefully won't have to think about work all that much.

Wednesday, October 04, 2006

Hibernation

Anybody used Hibernate? I'm considering using it for the MediaWiki port. It'll probably be difficult to maintain the existing table designs unchanged, but I'm not really that concerned about that.
Somnambulation

I am exceptionally tired too night, too tired to code. I was hoping to finish off Database.java, but I don't think I'll make it. Rewriting it to use JDBC instead of PHP's mysql support has been more of a challenge than I expected, precisely because JDBC is a lot smarter than PHP's mysql support. MySQL, as we all know, does not support parameters or prepared statements, and so neither does PHP. MediaWiki gets around this by a half-assed implementation of the same in its database module. JDBC, on the other hand, does support parameters in the MySQL driver. So I can chop all that code out and replace it with the JDBC native support. That, and there's a lot of PHPisms in this code that are more than a little challenging to deal with, including arrays that contain both associative and nonassociative elements (ugh!). A pox on the use of arrays as ad hoc structured types! PHP has a class system; use it!

I am utterly perplexed at the number of people who will blithely stand by and defend a libeler. The lies that are being uttered about me in the arbitration process are so blatant and so transparent (even to the point today of an accusation that I filed the request for arbitration myself; a claim which appears to rest on the plainly outrageous belief that InkSplotch is my sockpuppet) that there is no way that any reasonable amount of "good faith" can be mustered by a reasonable person. I have, at this point, given up much hope that the English Wikipedia's community will be redeemable at any time in the near future. I hold forth hope that I may be able to patch up matters with some (although certainly not all) of the people whose ire I have raised in recent months, but I suspect that there is no way in which I will be able to interact with the English Wikipedia community in any way that does not introduce excessive toxins into my life in the near future. At this point, I have a list of people whose reformation (or departure) will be required before I will consider returning. I won't bother to publish it; anyone familiar with the situation will know who they are.

I am even more bothered by the fact that calling these people on their lies is somehow wrong. That someone of purportedly high standing can use his standing as a pulpit to spread scurrilous falsehoods, refuse to provide evidence to support his false accusations (as presenting evidence is somehow a task too base for his great luminousness), and have his minions then shout down anyone who questions his good faith, is evidence of a great sickness that must needs be purged before it kills the community entirely. Then again, killing the community might be for the best; as I have observed many times before, the community doesn't write the encyclopedia. Losing them would be inconvenient, but a new community would form and take over. The problem is going to be in arranging the transfer of power. I don't believe that can happen from within, and the few entities with the power to effect it from without are not, in my estimation, likely to do so.

But enough about the decline and fall of Wikipedia civilization. I still hold some hope that I might find a home at Commons (and it is hard to resist the siren calls of someone as mindbogglingly irresistable as Bastique, after all). But I fear that the vile nastiness from the English Wikipedia will simply follow me there and soon enough ruin Commons as a place where I might contribute. So I am more likely to simply lay low for a time, working instead on software projects and on statistical studies of the Wikimedia projects (which I find utterly fascinating). Perhaps something interesting will eventually come of all this.

But, on to the real reason I left the English Wikipedia. My main reason for leaving is that I did not wish to bring the toxicity from there into my house. We are going to have another child, in May 2007, and that means that we are going to be even more busy than usual with prenatal visits. We found this out some time ago, but I have refrained from any public statement because, well, you don't announce these things until you see the heartbeat on the ultrasound (which we saw today). Lee's last pregnancy was hard on her, and I simply don't need the added stress of dealing with the idiots in Wikipedia in my--or her--life right now. Maybe once young Evan (or perhaps Morgan, or David) is six months old or so things will have calmed down enough that I'll once again have time and energy to brave the insanity. So expect me to be gone at least a year, at least from community activities (I may edit articles from time to time, but if that brings down ugliness I will quit that too; it may be necessary for me to use a sockpuppet simply to avoid the vindictive). The health and well-being of my family is simply too important, and I certainly do not wish to spoil the joy that this new child will bring with any form of ugliness at all, and I believe that, at this point, Wikipedia has nothing to offer me but ugliness.

So, Wikipedia is now my last project; there is nothing more useful to be accomplished there by me. I now have two new ones, one big and one not so big, and I'm sure they'll occupy my time quite handily for the next six months to twenty years.

Finally, to the person who asked: I need help in gluing SVN into Apache2. I have both installed on one of my webservers, but I have yet to figure out how to tie one into the other. Any suggestions -- even a pointer to a howto -- would be useful.

Tuesday, October 03, 2006

The Grand Folly

I've actually made significant progress on my port of MediaWiki to Java. The Article class is now free of syntactic errors. So is CacheManager. I'm working on Database now, and swearing constantly at PHP's crappy database support. PHP remains one of my least favorite languages of all time.

MediaWiki has a gazillion global variables. The container class (MW) I created to hold all of them (as statics) keeps getting larger and larger. Fortunately most of them will get refactored out later, into either system configuration classes or into the Request wrapper class (depending on whether they're system-wide or merely request-wide variables).

The nice thing is that PHP's syntax is "close enough" to Java's that I can simply paste the .php file into a .java file and usually get it "close enough" for Eclipse to identify methods without too much additional editing. (Getting them syntactically valid is another story.) It took me about two evenings and two weekend days to get Article into a state where (a) it was internally syntactically valid and (b) all of its external references existed in a state that would allow them to resolve. So that means I've also cleaned up quite a few other things, and also created several new auxiliary classes to deal with various PHPism, especially PHP arrays (plain and associative). There's still several spots that are likely semantically broken because of egregious use of mixed types (that is, returning results of different, nonhomologous types depending on the situation, which is peachy in a late-binding loosely-typed language like PHP, and total anathema in Java). So far I've had two instances of reflection in Database that I sincerely hope I will be able to get rid of.

Once I get all the code through this first-pass translation process, then I will go through and try to harmonize what's there and start refactoring. A large part of this process is simply so that I can familiarize myself with the code, so even if I never bring this completely to fruition, I'll still have gained something out of it.

Now I just need to get SVN working so I can share this evil thing with the rest of the world and maybe even invite a few people to Join the Fun. Any advice on that would be appreciated.

Monday, October 02, 2006

A Proposal for Adminship on the English Wikipedia

It is broadly accepted that the Requests for Adminship on the English Wikipedia is not working well enough. Most of the proposals I've seen so far involve either (a) restricting who can participate in the process or (b) trying to place restrictions on how people participate (usually in order to avoid the process turning into voting). Solutions in the (a) group raise (wholly reasonable) objections of cabalism; those in the (b) group are doomed to failure because they will eventually mutate back into voting.

I think the real problem, however, that everyone is trying too hard to protect adminship. What if, instead of treating adminship as such a big deal, Wikipedia actually embraced its oft-repeated claim that "adminship is no big deal" and treated it as such? In addition to simplifying and detoxifying the adminship process (by making it much lower stress), it will help to undermine the appearance of adminship as a high-status position. If virtually everyone is, or can be, an admin, then the prestige associated with the position is diminished. And since all administrative actions are now reversible, the risk is a lot lower.

So, instead of doing things to make getting adminship harder, I instead propose to make getting adminship easier -- but impermanently.

The basic proposal: Any editor with one month's experience (that is, one month during which the editor has been consistently active) may request adminship. If nobody objects to the application during a five-day period, that editor shall be sysoped. If, however, anyone objects, then a discussion, not to last more than seven days, shall be initiated. Unless a consensus is formed why this editor shall not be an admin, at the conclusion of the discussion that editor shall again be sysoped. That is, consensus not to promote is required; it is not enough to have a lack of consensus to promote. Candidates for whom there is consensus not to promote must wait one month before trying again (and should in that time seek to remedy the defect that were identified in the discussion, if possible).

All administrators serve for a fixed three month term. After those three month, the editor is desysoped, and must sit out a month as a non-sysop before he or she may reapply using the above process. (This would not apply to admins explicitly exempted from this process by the Foundation, who would remain admins for as long as the Foundation says so.)

Finally, one final check: you can only object to one candidacy every three months. That is, if you object to someone's candidacy, thereby forcing a discussion, you can't object to anyone else's for three months.

My thanks to Triona, who discussed this idea with me, and offered several suggestions, some of which made it into this proposal.
Lying primadonnas

I've noticed that one of the primadonnas running amok on Wikipedia has taken to claiming that I wasn't even an editor when I was still there. I'm not sure what purpose he has to repeating this lie -- other than to evidence his own poor connection to reality -- but in the interest of setting the record straight, the following is an incomplete list of the articles I made nontrivial contributions to in the past year (that is, since October 1, 2005):

Polar exploration
Clover
Bubba (fish)
Rest area
Dallas Austin
Interstate 55
Dan Ryan Expressway
St. Louis, Missouri
Max August Zorn
Galesburg, Illinois
Bass guitar
Moustache
Vibraphone
Sideburns
Target Corporation
Public library
Galva, Illinois
U.S. Route 34
Roger Taylor (college president)
Stephen Colbert
Ear X-tacy
USASA Field Station Augsburg
September 11
Jack Ruby
Paper marbling
Chancellor (education)
Andrew Sobel (professor)
Andrew Sobel (author)
Andrew Sobel
Anime
Computer and video games
Addressing mode
Mysore
Junichi Kakizaki
Delon Dotson
Chicago
Michigan Avenue
Wright Amendment
United States v. One Package of Japanese Pessaries

This is in addition to contributing spelling corrections, markup corrections, or other minor adjustments to literally thousands of articles. It also does not count articles I touched in the course of handling copyright release notices, copyright infringement notices, vandalism management, or special requests from Brad or Danny.

But apparently the above list, or the over 7000 mainspace edits I'd made in the past twelve months (my critic having made barely 1000 mainspace edits in the same timeframe), were not enough to make me an editor.

And to think that the person making this claim is not only considered by many a "valued member of the Wikipedia community" but is being held forth, by himself and by others, as a paragon of virtue that others should emulate. I wasn't aware that raving on spewing forth falsehoods (which in his case I shall call "lies"; this is my blog and I am not required to be "civil" and assume that his lies flow merely from ignorance of the facts) was considered virtuous. If these are truly the moral standards of Wikipedia, Wikipedia is in far darker trouble than even I had envisioned.