Mar
20
2010

Getting ready for Berlin

So I’ve just confirmed today that I’ll be attending Wikimedia Deutscheland’s second annual developer conference in Berlin, during mid-April.

I’m super-excited about catching up and going out with everyone, and then getting together and doing some really awesome things to MediaWiki by day. I know from my experiences in Buenos Aires last August and in Paris last November that when you get a bunch of developers in the same place at the same time, you can get all sorts of amazing things done.

I’m hoping that I’ll be able to spend 15–20 minutes showing off LiquidThreads to a wider developer audience, and getting some feedback. It’s also going to be great to see how Chad’s new installer, and Ævar’s mapping stuff is going (to name two projects off the top of my head). We’re also going to talk about some new stuff, like metadata handling, better support for dumps and subscriptions, OpenID/OAuth implementation, and much more.

I’ll also be glad that we’ll be able to talk about some of the boring (but really important) issues facing MediaWiki development, like bug tracking, code maintenance, code review, unit testing and patch submission. It’s always great to get these issues sorted through, and the best way is to lock everybody in a room until we sort it out.

It’s going to be awesome!

Dec
17
2009

LiquidThreads almost ready to deploy

Hi all,

With the Foundation’s support, I’ve spent the last few months churning away at LiquidThreads, a new discussion system that is proposed for use on Wikimedia projects.

Essentially, it’s an attempt to marry the radical openness of the wiki paradigm with the usability and practicality of a forum-like system. As the name implies, LiquidThreads is designed to allow any user to easily refactor discussions while maintaining edit history, to edit other users’ comments, and to collaborate on a summary of an ongoing discussion. LiquidThreads also brings many standard communication features lacking from wiki discussion pages, such as watching and protecting individual discussion threads, RSS feeds of comments in a discussion or on a discussion page. In the world of online communication, its approach is entirely unique.

LiquidThreads has been in alpha testing on Wikimedia Labs for several months, and, more recently, it’s been used in a production context on the strategy wiki, where it has been quite well-received. It’s been easy to run these smaller trials, as the extension allows the activation and deactivation of LiquidThreads discussions on individual pages with a simple parser function.

While there are still some issues remaining before wider trials, I believe I can resolve most of them quite quickly (within a few weeks when my vacation finishes at the end of next month), and I’d like to get the ball rolling in proposing small-scale trials on some of the larger wikis, so that a full discussion can be had, and so that adjustments can be made on the basis of ongoing feedback. I’d especially like to see LiquidThreads used on some of the higher-traffic discussion pages on English Wikipedia (such as the technical village pump), and progressive rollout on some of our mid to large sized wikis.

So, I’d like to encourage you to have a play with LiquidThreads, either on the strategy wiki or on the test site (which generally runs a newer version). Tell me what you like about it, and (far more importantly) what improvements you think it needs before we can expand our trials to wider parts of the Wikimedia Universe, and perhaps move towards a full rollout of this very exciting technology.

I should give the following caveats about LiquidThreads as it stands. These are all issues that I intend to address before any trial expansion occurs.

  • Presently the system is somewhat vulnerable to abuse. I intend to make changes to the way signatures work, and improve tracking and listing of thread actions by specific users.
  • While LiquidThreads allows for thread summaries and discussion headers, the system does not currently have support for collaboratively-edited posts which are unsigned or signed by a group of people. These are a key piece of any decision-making framework, and I intend to make adjustments to make this possible.
  • There is no support for embedding LiquidThreads discussion pages on other pages.
  • There are plenty of minor interface issues which I intend to clean up.

Feedback is best directed to the dedicated feedback page, or, alternatively, to bugzilla (although before filing a bug, you should check the list of existing LiquidThreads bugs).

Thanks,

Andrew Garrett

Oct
27
2009

MySQL, Ubuntu, Temporary Tables and AppArmor

I was trying to install CiviCRM on Wikimedia Australia’s server, and I came across this fun error:

ERROR 1005 (HY000): Can't create table '/tmp/#sql7013_9_0.frm' (errno: -1)

Turned out, Ubuntu’s AppArmor was breaking the creation of temporary tables in /tmp.

The way around this was to add a new line to the apparmor profile for mysqld
/tmp/** rwk

Oct
20
2009

Sex Offender Registration: The Facts

In an internet argument, I recently posted this response, built mostly from facts culled from Human Rights Watch’s report, “No Easy Answer“, on sex offender registration. It’s got lots of fun facts in it that might be handy, so I thought I’d post it here.

You can speculate and reason all you like (”once a pedophile, always a pedophile”, “most of the list is good, and properly utilised”), but have you checked the facts?

States such as Vermont and Minnesota have responsible public sex offender databases, in which a very small minority of registered sex offenders are actually placed on the website, which are those deemed to pose a real risk in communities in which they live.

There are good ways to maintain responsible disclosure of sex offender registration, requiring pro-active notification by law enforcement and restricting public register access to a need-to-know basis would prevent public humiliation of nonviolent sex offenders while informing people in a community when a member of the community poses a real threat.

30% of convictions for sexual assault resulting in a person being required to register as a sex offender are non-violent acts, not against children. 76% of people convicted for sexual offences do not commit any further offence. 5.6% of violent sexual assaults are committed by people who had never previously been required to register as a sex offender. People children know and trust are responsible for 90% of all sexual violence against children.

4% of youth required to register as a sex offender committed another sexual offence, and 90% of all sex offenders did not commit a sex offence while under 18. This isn’t a minority of sex offenders, 25% of those required to register as sex offenders are required to do so because of a crime they committed while under 18. 47% of offences against children under 6, and 39% of offences against children between 6 and 12 were committed by children who were themselves under 18. In terms of predictive power, the number of contacts with police for all reasons was twice as good a predictor as a single sexual offence of committing a further sexual offence.

There is significant evidence that the hardship imposed on those required to register as sex offenders increases recidivism in some cases, and makes tracking difficult (there are very few places in some states that registered sex offenders can live, so what do they put as their address?). Sex offenders are least likely to re-offend if they live with their families, have a stable job, and a place to live. Sex offender registration takes away all of these, by causing frequent public vilification causing employment dismissal, by imposing residency restrictions that prevent sex offenders from living with their families, preventing them from attending church services or receiving treatment and help for their condition.

Sex offender registration has, in several cases resulted in vigilante murders of people whose offences causing their registration as sex offenders were neither violent nor predatory, in many cases being streaking and public urination. This isn’t isolated, one third to one half of registered sex offenders lose their home, job or family. 16% of registered sex offenders are physically assaulted as a result of registration. Typical assault and harassment includes physical threats, ringing the doorbell in the middle of the night and leaving, leaving feces and garbage on the offender’s doorstep, up to being beaten or stabbed. In some cases, shots have been fired into registered sex offenders’ homes, injuring their family members.

Requiring sex offender registration for large classes of nonviolent misdemeanours has caused states such as California to literally lose track of 44% of its registered sex offenders.

Life registration is unnecessary and overly onerous, as recidivism rates decrease to 12%, 9% and 4% after five, ten and fifteen years of remaining offence-free respectively.

Contrary to what you might think, treatment is a solid method of reducing recidivism, reducing recidivism by 41% when modern methods are applied properly.

Community notification and online databases, according to a report by the Washington Department of State, have little to no impact on either the rate or location of recidivism, indicating that the online databases neither prevent recidivism, nor force it to go elsewhere.

So while I don’t oppose sex offender registration entirely (it can be done responsibly and with an evidence-based approach), its implementation in the United States is nothing but the product of a moral panic, which does not achieve its stated aims, and is based on received wisdom rather than empirical evidence.

Oct
14
2009

Fun with MacPorts and phpize

One of the plethora of problems I’ve had with MacPorts after installing Snow Leopard was the following error:

/opt/local/bin/phpize: line 159: 13947 Segmentation fault      $PHP_AUTOCONF

Turned out, this meant that my autoconf was out of date (line 159 of phpize is autoconf). The way to resolve this is with:

$ sudo port upgrade –force autoconf

After this, things seemed to work again.

Hope this helps somebody

Sep
08
2009

So that was Wikimania

So, that was Wikimania.

I’ve just finished up a week in Beautiful Buenos Aires, Argentina, where Wikimedia held its annual conference, Wikimania. I think the best way to describe it is “Crazy fun”.

Highlights (the sessions)

  • Richard Stallman (enough said).
  • Finding out some of the stuff Kate and Ævar have been doing on OSM.
  • Chatting to Christian about DBpedia, an awesome semantic database produced from the Wikipedia data.
  • Finding people unaware of my work on LiquidThreads who have been doing prototyping of their own on discussion improvements.
  • Some of the fancy new stuff in the works, as summarised by Brion.
  • The awesome work Michael Dale’s been doing on open video at Wikimedia.
  • Finding out about the plans the usability folks have for MediaWiki.

Highlights (outside the conference itself)

  • The taxi ride from the airport, which was conducted by a driver who (like most drivers here) did not understand the concept of a lane, and found 140 km/h to be a perfectly appropriate speed.
  • The Mauseleum at Recoleta, and its colony of feral cats.
  • Dancing the Tango with Florence (who described my dancing as “not super elegant”).
  • Finishing the closing evening with pizza at 6 am, accompanied by Phoebe, Kat, Mako and others.
  • The feeling of inadequacy that comes from being surrounded by people who speak at least 4 languages.
  • Deciding with half an hour’s notice to visit Colonia (in Uruguay) with Betsy, Kate and Ævar.
  • When out with Ævar, making liberal use of body language to explain the concept of a nightclub to a bemused taxi driver.

Comments about the conference (directed mostly at the organisers)

  • The communal areas were great. It was especially good to hang out in our techie basement, although we were a bit separated from everybody else.
  • It sucked that the staff hotel was so far from everybody else and was much nicer. It felt hierarchical, which is not how Wikimedia is supposed to work.
  • The organisers did a good job of trying to stem the flow of stolen stuff.
  • The party was a lot of fun, and very well-organised.
  • The hotel was a pretty good choice, the lack of wifi in the rooms was a mixed blessing, drawing everybody out into the lobby to hang out.
  • The internet in various parts was a bit flaky, which is a bit weird for a tech conference :)

See you all in Gdansk next year! And in Sydney the year after!

Aug
13
2009

Board elections 2009 results released

So we’ve finally released the results of the board elections. Congratulations to Kat, SJ and Ting.

I wasn’t able to vote this time around, as I was on the elections committee. That wasn’t really a barrel of laughs, although I think it was good experience. There was a bunch of last-minute drama, including confusion about which voters were actually qualified, the tally script returning a null result (all candidates ranked 1), and all that jazz. We’re especially glad that we don’t have to book any last-minute Wikimania tickets (the new board members are all going anyway).

I’m very pleased to see Kat and Ting returned to the board, as both of them have been excellent board members. I don’t know much about SJ, except that he’s been around for ages. It’s a little disappointing that Domas didn’t get a few more votes. I think that, as Kat said on IRC, a lot of people see him as a scary sysadmin type, when in fact he’s a helpful, insightful scary sysadmin who made a good board member :)

Jul
14
2009

iPhone OS and Entitlements

I’ve been working on iIrssi, which is a project of mine to give irssi push notifications on the iPhone.

Unfortunately, even when following Apple’s instructions for getting push notifications going, I ran into this error:
Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 UserInfo=0x1402f0 "no valid 'aps-environment' entitlement string found for application

As it turns out, I needed to give myself an entitlement called ‘aps-environment’, whereas I’d assumed (and I’d found nothing on the internet to contradict it) that this was an internal part of the provisioning profile, since Apple recommended I created a new provisioning profile once I’d activated APN on my application in the development portal.

This document from Apple explains how to do this.

I’m sort of hoping this helps somebody in the same flummoxed position as I :)

Jul
09
2009

Farewell to Scott

I learned yesterday that Scott, the husband of my good friend Betsy, finally succumbed to lung cancer (he was not a smoker) at the premature age of 33.

I can’t be nearly as eloquent as Phoebe, but it would be perverse for me not to post something of what little I know of Scott. I met him on two occasions, in early 2008 and in early 2009. He was friendly, kind, and seemed determined to live what he had left of his life as he would have done otherwise, taking as little notice of what was coming as possible.

When I visited him in February of this year (perhaps close to the beginning of the end), he was in particularly bad shape. Regardless, he insisted on accompanying Betsy and I to Fry’s, and on hearing that I had never had a cheese steak, on accompanying us there. I mentioned that I was looking for a laptop, and so he spent some time showing me various models. He had long accepted that his life was to be shorter than it should have been, and (to my faint unease) repeatedly joked about it in my presence.

Betsy and he both put his defying of prognosis down to his refusal to let his life end with his diagnosis. He refused to pass until he was forced to, being given fewer than six months to live. Scott politely ignored his prognosis and went on to survive for three years. He was extraordinarily brave, and extraordinarily strong. He left this world with dignity and grace, and on his own terms.

I am almost as much in awe of Betsy’s handling of the situation. Betsy spent three years of her life, including about six months when she should have been looking for a job, looking after Scott, maximising his comfort, consoling him and supporting him until his eventual passing. Betsy, like Scott, has showed her courage and strength through Scott’s illness.

My thoughts and love are with Scott’s family, and especially with Betsy. I wish Betsy luck in rebuilding her life, and that she has Scott’s strength in continuing along her path without him, even though his has ended too soon.

In solidarity, remembrance and love,

Andrew

Jun
30
2009

LiquidThreads visual refresh

Since my last post about LiquidThreads, I’ve given it a major visual makeover, making it much prettier, and more in line with what users are used to with comment threads, forums, and other similar software.

Here’s an overview of the new interface

Overview of the new LiquidThreads interface

Overview of the new LiquidThreads interface

The new interface relies on paging, rather than archiving. Instead of artificially removing a discussion from a talk page when it’s done, the discussion page is paged. Only ten discussions will be shown at a time, and anything beyond that can be accessed simply by hitting ‘Next’. Old discussions will naturally fall ‘off the bottom’ of the discussion page, as they do in forums, comment threads, and most other discussion systems in the world.

I’ve also redesigned the thread display. Instead of having a footer with the pertinent information, and using indentation to show threading, I’ve put the information at the top of an enclosing box, which includes all of the replies. It makes it much easier to see who’s replied to what, and when. It’s also much more consistent with other systems of threaded discussion.

The LiquidThreads 'Action' drop-down

Finally, I’ve streamlined the interface for ‘actions’ you can take with a post, like editing it, watching it for replies, checking its history, or deleting it if you’re an administrator. By putting these into a drop-down, the actions are within easy reach, but stay out of your way if you just want to read the posts.

Over the next few weeks, I’m going to be working on making the comment workflow AJAXy, making all comments searchable, and other miscellanea.

What do you think of the new interface? How can it be improved? Let me know in the comments.

 
Powered by Wordpress and MySQL. Theme by openark.org