Posts Tagged ‘open source’

Destroy, erase, improve

måndag, augusti 25th, 2008

Nu har det varit tyst här ett tag igen. Jag har ägnat sommaren åt extrajobb, studier inför tentan i C4, samt jobb på nästa version av lagen.nu, som nu börjar närma sig “färdig”-stadiet. På ferenda.lagen.nu finns en betaversion av siten, och de utåt sett viktigaste nyheterna är att formgivningen är fräshare, samt att rättsfallsreferaten nu finns med i fulltext.

Men den stora nyheten bakom kulisserna är att kodbasen till 90% är helt omskriven, och att den nu är öppen källkod under BSD-licensen. Det har tagit lång tid - betydligt längre än det tog att utveckla den ursprungliga versionen - och frågan som inställer sig är om det verkligen var en sån lysande idé? Det finns två förhållningssätt till att slänga gammal kod och skriva om den från scratch — Joel säger att det är en av sakerna you never should do, medans Fred menar att man ska plan to throw one away; you will, anyhow.

De flesta utvecklares första impuls när de sitter med en kodbas som vuxit till en ogenomtränglig röra är att slänga skiten och starta om. Det är för det mesta en dålig idé, inte minst för att det inte finns någon garanti för att man inte hamnar i samma sits tre år senare, när man är klar. Men eftersom det är mycket roligare att bygga nytt än att reparera gammalt skrivs ofta system om från scratch, trots att det skulle varit mycket billigare att steg för steg rensa i det gamla röriga systemet.

Så varför skrev jag då om koden? På grund av glädje och skam. Glädje, eftersom lagen.nu inte har någon affärsplan, några inkomster ellern några krav på företagekonomiskt rationell styrning. Det är ett hobbyprojekt som jag sysslar med för att det är kul, och det har varit mycket roligare att skriva nytt än att rota runt i den gamla koden. Skam, för att det hela tiden har varit meningen att släppa koden fri, och den gamla koden var helt enkelt för dålig för att visa för folk. En kompis har teorin att det här är anledningen till att inte mer kod är öppen — det är helt enkelt för pinsamt.

Beslutet att släppa koden fri, tillsammans med en viss andra systemet-effekt, har gjort att jag i varje steg i utvecklingen har funderat kring det bästa sättet att göra en viss sak. För att slippa skämmas måste man helt enkelt skriva så bra kod som man någonsin kan. När jag skrev det första systemet var jag ganska grön på python, och försökte mest komma på något sätt att göra samma sak. Det tar mycket mer tid att göra rätt än att göra snabbt — särskilt i början – men känslan av yrkesstolthet gör att det är värt det.

Det betyder inte att det inte finns en massa fulheter i koden. Jag är inte superstrukturerad, och inte min kod heller. När jag kommit på ett visst mönster för att göra saker överanvänder jag det gärna, fram till att jag kommer på nästa mönster. Och namngivning samt övrig kodstandard ska vi inte prata om. Men grunden är stabil. Arkitekturen är ganska enkel att förklara, även om det är många (drygt 9000) rader kod. Jag tror att en ny programmerare kan sätta sig in i det hela ganska snabbt, och att det kan vara ett ganska kul system att vara med och bygga på.

Förhandstitt på lagen.nu 2.0

söndag, augusti 27th, 2006

Imorgon börjar höstterminen med C4:an, vilket markerar slutet på de mängder med ledig tid som jag haft under sommaren. Mitt mål var som sagt att göra en 2.0-version av lagen.nu, och jag hann väl inte ända fram. Men nånting som vi kan kalla en första alfaversion finns nu på:

http://ferenda.lagen.nu/

Den stora synliga skillnaden från 1.0-versionen är en någorlunda annan layout, och det faktum att en wiki är integrerad med det hela. Om man skapar ett konto kan man både editera vanliga sidor samt kommentera lagtext.

Bakom kulisserna är det större skillnader. Koden har omorganiserats så att det i grund och botten är ett mer flexibelt, utökbart ramverk för juridiska texter. Kostnaden för att lägga in stöd för exv förarbeten eller EG-rätt i koden bör vara ganska liten.

Ytterligare en stor skillnad är att jag i och med detta öppnar upp källkoden till lagen.nu. Kod finns att hämta via SVN från http://svn.lagen.nu/svnroot/ och en utvecklingswiki/buggdatabas/källkodsbrowser finns på http://trac.lagen.nu/. Eftersom jag spenderat sommaren med programmering, inte juridik, har jag inte tänkt igenom exakt vilken licens som koden är under, men jag kan åtminstone utfästa att den kommer vara OSI-certifierad (notera dock att en del kod i SVN-repositoryt inte är skriven av mig, och har separata licenser).

En annan licensfråga är den för bidrag till wikin/lagkommentarerna; som en utgångspunkt kan vi säga GFDL och by-sa, dvs dubbellicensiering (GFDL för Wikipedia-kompatibilitet, åtminstone åt ena hållet). Om du är licensexpert och/eller har en åsikt om hur du vill att dina bidrag till lagen.nu ska licensieras, hör av dig!

Det är värt att återigen påpeka att det här är en alfarelease. Det är mycket som inte funkar (bland annat kan man inte lista alla lagar, så man måste veta SFS-numret och mata in det i adressraden) och utseendet lämnar mycket att önska. Jag är dock tacksam för buggrapporter och förbättringsförslag, gärna direkt i buggdatabasen.

The GNU GPL, modifications and swedish copyright law.

tisdag, augusti 31st, 2004

Yesterday, I was involved in a discussion that started with the Affero General Public License, a modification of GNU GPL, indented to close the ASP loophole in GNU GPL v2. The “ASP loophole” referst to the fact that a Application service provider (ASP) can make the functionality of a GPL’ed program available, without distributing the actual program, through a Web UI or something similar.

The Affero GPL (and upcoming GPL v3) intends to close this by demanding (in 2 d) that, if the software has functionality to allow users to download the source code of that program, you may not remove this functionality.

Now, the GPL (both Affero and GNU v2) is not a binding license. It even says so itself in section 5: “You are not required to accept this License, since you have not signed it”. It’s power derives from the fact that, unless you accpt it, normal copyright law applies, which forbids you to redistribute software for which you do not hold the copyright.

However, to exploit the Affero/GNU v3 GPL, you don’t have to redistribute the software, just remove the feature that allows users to download the source. And if you don’t accept the license, who’s going to stop you? Section 5 of the Affero GPL goes on to say: “However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License.” (emphasis mine)

So, the whole power of the Affero GPL hinges on the fact that, under normal law, you do not have the right to modify a program for which you do not hold the copyright. But is that really correct? I’ve read and re-read the Swedish copyright law, and I cannot find where it says that personal modifications are not allowed. In fact, it explicitly allows the modification of programs and copying (but not redistributing) the result in 26 g §, in certain cases. The swedish copyright law is all about making copies and the redistribution of copyrighted material, not modification-making.

So, under Swedish law, are you allowed to modify software for which you do not have the copyright? If so (and I think that’s the case), the raison d’etre for Affero GPL is null and void in Sweden. Presumably, this is different under US copyright law.

If you know (or think that you know) that I’m wrong in the above assumption, I’d love to hear about it, preferably with a reference to a law and section, or reference to a precedential case. Or, you know, just with a logical reasoning about why I’m wrong. Still no talkback system, but I check my referrer logs, so if you blog about it, I’ll read it. Or just email me at staffan@tomtebo.org

The one thing I can think of that would make modifications of a software program illegal, according to Swedish law, is 12 §, which states that one may not create copies of a computer program, not even for personal use (as opposed to most other works such as books or music, where personal copying is allowed). Maybe it can be argued that modifying a program is, in effect, making a copy of it?

Bad advocacy of all kinds

torsdag, mars 18th, 2004

Rory is trying to calm himself down after having been trolled by the open source adocate Chris Anthony. I don’t really see what could have infuriated Rory so much, but then I regularly read slashdot where stuff like that is routinely modded at least +3 Insigthful… at least Chris didn’t use the “M$” abbreviation.

But incoherent ramblings filled with half-truths like Chris’s are not good Open source advocacy. Which saddens me, because I have a soft spot for free/open source software (FOSS), and in many ways I think it’s doing a better job than proprietary software ever can. I use a lot of it, and have been known to fix bugs and implement new features in various FOSS projects. In particular, I like that I can collaborate with a bunch of programmers from wildly varying backgrounds, some of which are really really smart.

I would love to make my living developing FOSS, but very few people are smart and lucky enough to be able to do that, and I’m not one of them. However, those that are, are typically far more humble and openminded than what you usually see on slashdot.

But bad open source advocates are typically teenagers or in their early twenties, they don’t speak for anyone but themselves, have no influence to speak of, and are usually shown the holes in their argumentation, at least when they venture outside of the group-think circles. Most of them grow smarter and humbler with age. I can forgive them, for they don’t know what they’re doing.

But I also have a soft spot for proprietary software. It has paid my bills for the last eight years, and in many ways I think it’s doing a better job than FOSS ever can. It therefore saddens me when grown men with power spread similarly bad proprietary software advocay, like saying “Linux is a cancer that attaches itself […] to everything it touches” or “The GPL violates the U.S. Constitution“. I have to wonder why these men, who really should know better, so seldom are shown the holes in their argumentation. Sure, their ramblings filled with half-truths are endlessly rebutted on slashdot and groklaw, but it really should be the Chicaco Sun-Times reporter that publically calls Ballmer on the FUD he’s trying to pull.