MJR: Web Applications

photo I write web applications. It's sort of what I do most for work. Here are some notes on what I find while writing them, or installing or using other people's apps.

Vote Now! (Blog Updates)

Posted by mjr 2008-04-10 (permalink)

I'm currently part way through testing Chronicle and I'm probably going to change the address of my blog (with Redirects) as part of that. I don't much like having blog in the address and some research seems to agree with me. I've lived with this mistake for four years now, through various software upgrades, so I'll take the chance to change.

But what should I change the path to? /writing/reflections/ /news/ /notes/ /articles/ or something else? Vote now by leaving a comment!

Oh and about the debian project leader vote: reluctant candidates are good, teams are good, people who already have had high office are less good. Go vote on that too if you can.

Comments are moderated (damn spammers) but almost anything sensible gets approved (albeit eventually). If you give a web address, I'll link it. I won't publish your email address unless you ask me to, but I'll email you a link when the comment is posted, or the reason why it's not posted.

Blog Updates

Posted by mjr 2008-04-01 (permalink)

First of all, you can't do All Fool's Day pranks on global web sites because of time zones: if you do, you'll be pranking either early or late somewhere and so you're the fool.

Now, I've been a bit quiet recently because I've been moving dozens of Wordpress blogs over to one Wordpress MU install. Clearly the right way to do it.

They're all on different domains and we want their names to have www, which needed the following small change...

 
--- wpmu-settings.php
+++ wpmu-settings.php
@@ -6,8 +6,8 @@ if( $current_site && $current_blog )
 $wpmuBaseTablePrefix = $table_prefix;

 $domain = addslashes( $_SERVER['HTTP_HOST'] );
-if( substr( $domain, 0, 4 ) == 'www.' )
-       $domain = substr( $domain, 4 );
+if( substr( $domain, 0, 4 ) != 'www.' )
+       $domain = 'www.'.$domain;
 if( strpos( $domain, ':' ) ) {
        if( substr( $domain, -3 ) == ':80' ) {
                $domain = substr( $domain, 0, -3 );

I could have sworn I changed something else in that file, but I don't see what. Oops. I guess I'll run a check against the release tarball before merging the next upgrade from upstream.

If anyone wants to hire someone to move blogs to Wordpress MU, you how where to find me. It's pretty enjoyable once you get into the routine, even if this project overran.

I'm looking at changing my own blogs too. I'm looking at Chronicle but maybe with more email-like input files.

Chronicle maintainer Steve Kemp commented:

"If there are any changes that I can make it easier for you to switch then please do let me know.

I guess if you're thinking of email submission it'd be relatively straightforward to create a procmail file that'd write a mail out into a new file; then rebuild the blog. Ideally after checking a GPG-signature.

Otherwise I think that things should mostly work - the only obvious thing is to allow the post titles to come from "SUbjecT: " instead of "Title: "."

Yeah, that was the obvious one. I'll let you know. Thanks!

Social Networking

Scribbled notes for a possible future article. BBC: Children flock to social networks and Internet Psychologist: Social networks attract children not adults

User-Generated Content Rebellion: First, the Librarians and Scientists?

Posted by mjr 2008-03-17 (permalink)

I've been critical of the almost abusive terms in the user agreements of most user-harvesting-based services (sometimes called Web 2.0) for a while now. There are quite a few services that I simply won't use because their owners want me, all my web "content" (whether explicitly posted to their site or not), my first born child, or similar.

There are even more sites where I'm careful not to put much beyond the bare minimum and try to make sure that I keep backups of nearly all of it. Usually that means keeping a copy of the input, as getting my data back out of most sites is a pig.

So far, when I've criticised aggressive user agreements, I've felt like a lone voice in the wilderness. It's been heartening to spot two user-harvesting services geting some abuse over the last week or two.

First, the Swift online community platform for conferences has been attacked by both David Lee King and librarian.net for its over-zealous user agreement demands. Particularly "nice" is the feature where one rule of Swift club is that you don't talk about Swift club (see last paragraph of David Lee King's post).

Swift's owners have responded. I'll watch and see whether it improves enough to get a follow-up post from either blog.

Secondly, the Phorm advertising system has faced hard questions from both Open Rights Group and Sir Tim Berners-Lee over its mysterious user tracking.

Phorm hasn't yet replied properly about their potential to harvest user-generated content (web histories and so on) without consent, as far as I can see. If you know anyone on Talk Talk, BT or Virgin, tell them to start planning the exit route. If you'd like to refer them to our agency for The Phone Coop that would be great. I suspect the owners of The Phone Coop would get quite vocal if it ever tried to track users like this and a comment on the ORG post suggests someone else has asked

Update: BBC BT advert trials were 'illegal'

Are we seeing the start of a user-harvesting backlash?

No Good FOSS Membership Management Web App?

Posted by mjr 2008-02-16 (permalink)

A not-for-profit club has asked me to recommend a web-based membership manager that can do two main tasks:-

  1. email members when their renewal date is approaching;
  2. control access to some web pages.

(In addition, they want a web forum, but that doesn't need to be connected and they're fairly easy to find.)

I'm somewhat surprised to say that I haven't found a good free software one. There's CiviCRM, but it's under an activated Affero GPL and I don't see why this non-software club should be a distributor (which is why I don't see activated-Affero software as free software). There's eZpublish (as used by FSFE) but it looks like overkill for this task and will cause more problems than it solves. Other FOSS organisations seem to be using bespoke apps. The VCS FOSS ICT wiki page is pretty bare.

What would you recommend? Where should I be looking? Who to ask?

If I have to write one, I'll try to make it reusable.

Andrzej Novak commented:

"I have a couple questions about your comments:

1. What do you mean exactly by "activated" Affero GPL? From what I can gather (by Google-searching for "activated affero gpl" and by looking at CiviCRM's licensing FAQ), isn't it simply an Affero-GPL-covered work that has a mechanism for distributing code (something like "view source" within the software) built in?

2. Assuming I didn't miss anything major about "activated Affero GPL", how does it affect a non-software club in any significant way? Clearly they aren't going to be modifying and extending the existing program, so the source distributed by the built-in mechanism is identical to the original. I can see why you might object to this club's website becoming a de facto mirror for CiviCRM project, but as long as CiviCRM project does not link to the club's website as a mirror, how many people will actually come to the club's website instead of CiviCRM project's to get the program?

I suppose we may be in disagreement here, but I do not see the distribution requirement in Affero GPL as non-free (at least not any more than copyleft is non-free). After all, the user still has a choice whether to allow the program to interact over network or not. In this particular case, the club has the choice to restrict access to only its members (e.g. by .htaccess-based password protection), and it is by no means required to distribute the source code to anyone who does not have access to the web pages themselves.

P.S. On the other hand, I've never gotten a clear answer regarding how these terms, considering that Affero GPL is a copyright-based license, are enforceable. I have some ideas (e.g. one might consider the generated content (in this case, HTML) as derivative work; then a copyright license is needed to distribute this), but some clarification by someone else better versed in this would be very welcome."

1. By "activated Affero" I mean the optional bits of the AfferoGPL (source publication and so on) have been used and it's not just like "GPL but you can activate these extra bits if you want". Yes, it's essentially "download source" badgeware.

2. Like any publishing, software distribution has various implications, not least data transfer costs, and I don't think a non-software club should be required to enter the distribution market, even only to their members. It's completely a distraction from their mission.

The source probably is going to be modified (to fit their hosting platform and/or other requirements) but I feel it should be left to me, a free software web developer, to distribute as appropriate. Anyway, what if the CiviCRM site did decide to link (some proportion of) its users to the club's site for downloads? Isn't that one main aim of Affero's extra clauses, to create a network of obliged distributors? (Another main aim being near-forced upstream contribution.)

Yes, we disagree: I do see the Affero GPL's restrictions as significantly more non-free than copyleft and I'm very disappointed that FSF put an Affero compatibility loophole into GPLv3. I don't know whether it's enforceable. If it isn't, then someone please publish the legal opinion.

Dedalus commented:

"Maybe you should have a look at Galette "

Will do. PHP/MySQL. Thanks.

James wrote:

"http://www.flamingspork.com/projects/memberdb/ is used by Linux Australia."

Petter Reinholdtsen also recommended it in off-list email. I'll look at that too. It's in Perl/MySQL, so might be a better fit for me.

Comments batch 2 - yea I walk into the valley of AfferoGPL

David Geilhufe wrote:

"The intention of the Affero licensing of CiviCRM was to prevent a company from using CiviCRM as a base for a proprietary SAAS company. The GPL explicitly permits this. You can read more about CiviCRM's license here."

Well, that looks like the usual sort of cheerleading for the AfferoGPL... but hosted on a non-free-software Software-as-a-Service wiki!

I don't believe it's GPL web apps that are furthering Software-as-a-Service - it's early adopters like CiviCRM. If CiviCRM developers are at all worried about the loss of freedom involved in non-free-software SaaS, then they should stop using non-free SaaS, instead of burdening users with Affero.

"

"I feel it should be left to me, a free software web developer, to distribute as appropriate"

Well, as long as you distribute it, no problems, you get to choose the appropriate method. Some CiviCRM developers do that by making source code available, some by submitting patches."

Well, that's a bit different to what the AfferoGPL says. Where is the exception to allow webmasters to be responsible for distribution instead of the site owners?

"If it is just a matter of license and you can take the hit on features, Drupal has a number of membership modules... they can be assembled to do what you want."

Thanks for the hint. I'll take another look at Drupal and see whether it goes far enough.

Dave Hall writes:

"The Affero GPL (AGPL) is to web apps what the GPL is to server/desktop software. If someone gives you a GPLd binary, they are required to provide you with the source code (or an offer to do so). With the AGPL if you give someone access to a webapp you have to give them a copy of the source code.

AFAIK if you were to use said webapp internally (such as on an intranet), you are not required to provide the source code to users, just the same as using a GPL desktop app."

I disagree with that. Affero GPL is like having to give a copy of the source code to everyone who merely has access to the output of a GNU GPLd binary.

Let them use your browser for a minute? Now let them copy the source. That's quite a lot wider than the GPL and pretty blatently non-free, IMO.

"Also if you are using a AGPL webapp you can link to upstream's downloads as per s6d."

Section 6d says "Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements" which doesn't seem to allow linking to upstream if one does any source changes (to adapt it to the hosting platform configuration, as usually happens), unless you like breaching licenses if upstream changes their site at all. Or has CiviCRM made some promise about hosting user contributions "for as long as needed" that I've not spotted?

"I think you misunderstand The AGPL, it is simply trying to be the GPL for the web, something which is really needed given the direction things are moving these days."

It might be trying to be GNU GPL for the web, but it isn't. It's a pig, propped up by lots of nonsense about trying to ensure cooperation. You can't ensure cooperation, because true cooperation has to be voluntary.

This is copyright 2008 MJ Ray. See fuller notice on front page.