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.