Search Results: "ema"

13 April 2009

Andrew Pollock: [tech] Queensland Rail to get WiFi

I just read that they plan to put WiFi on the trains in Brisbane. I had one of my crazy business ideas to try and do this years ago. I think it'd be great for public transport adoption. Imagine being able to be on top of your email by the time you arrive at your desk? Of course, with mobile broadband becoming more and more ubiquitous, you don't really need WiFi on the train, so it may be too late...

Biella Coleman: USER GENERATED CONTENT 3.0: From Threat to Opportunity

5.8%

Biella Coleman: USER GENERATED CONTENT 3.0: From Threat to Opportunity

5.8%

12 April 2009

Benjamin Mako Hill: AttachCheck Revved

I finally got around to pushing out a new version of AttachCheck --- a trivial little program I wrote several years ago that tries to prevent people from having to send followup emails with subjects that include phrases like, "REALLY attached this time," by asking you for confirmation when you send an email that says you've attached something when it looks like you haven't. The release fixes a single bug that affected a few users --- thanks to Iain Murray who sent the patch in and apologies to him and others for taking a while to push it out. There's very little to AttachCheck and, if I remember correctly, it was the very first program I wrote in Python. I'm only mentioning this revision because it's been quite a few years since I last mentioned the program and, while the script doesn't do much, it continues to save me a little embarrassment and effort every other week or so.

Biella Coleman: The the book we should be celebrating

I agree. This is the book that really engages with the craft of writing.

Biella Coleman: The the book we should be celebrating

I agree. This is the book that really engages with the craft of writing.

Biella Coleman: Memefactory, the video

I have found myself, at least on a few occasions, talking to a person whose relationship to the Internets is much thinner than my own, trying to explain the nature of certain Internet memes. I find this a pretty tough task to pull off as I tend to make memes sound really infantile (and perhaps that is just what they are). To explain this world to the uninitiated, I either: 1) very quickly give up and move onto some other less obscure 2) go into semi-professorial lecture mode and give a mini-low down on memes, some of the early examples, a small theory of self-referential irony, 4chan, rickrolls, encyclopedia dramatic etc etc and then show a bunch of memes as really you can t do it justice without the audio visul component. Now, I can just point people to the Meme Factory to three youngish guys from Brooklyn who put together a **fantastic show**** a few weeks ago on, yes, Internet Memes. It was a dazzling ride into the (sometimes very obnoxious) territory that is memeology, addressing and displaying both the happy-cheery-cute side of memes as well as its darker side. The video they have on their site documents their presentation and the word is out that they will soon craft something more like a stand-alone video-essay about Internet memes. As we wait for this next step in their project, this video is an amusing watch (though the interesting stuff starts about 3 minutes in).

Biella Coleman: Memefactory, the video

I have found myself, at least on a few occasions, talking to a person whose relationship to the Internets is much thinner than my own, trying to explain the nature of certain Internet memes. I find this a pretty tough task to pull off as I tend to make memes sound really infantile (and perhaps that is just what they are). To explain this world to the uninitiated, I either: 1) very quickly give up and move onto some other less obscure 2) go into semi-professorial lecture mode and give a mini-low down on memes, some of the early examples, a small theory of self-referential irony, 4chan, rickrolls, encyclopedia dramatic etc etc and then show a bunch of memes as really you can t do it justice without the audio visul component. Now, I can just point people to the Meme Factory to three youngish guys from Brooklyn who put together a **fantastic show**** a few weeks ago on, yes, Internet Memes. It was a dazzling ride into the (sometimes very obnoxious) territory that is memeology, addressing and displaying both the happy-cheery-cute side of memes as well as its darker side. The video they have on their site documents their presentation and the word is out that they will soon craft something more like a stand-alone video-essay about Internet memes. As we wait for this next step in their project, this video is an amusing watch (though the interesting stuff starts about 3 minutes in).

Biella Coleman: Too cute to handle

Possibly the cutest pictures and story of the decade?!

Biella Coleman: Too cute to handle

Possibly the cutest pictures and story of the decade?!

John Goerzen: Goodbyes

Yesterday was my grandma Klassen s funeral at Alexanderwohl Mennonite Church, where she had been a member for decades. My uncle, a pastor, gave the meditation. He had been a missionary in Vietnam during the war, and he remained there after the United States withdrawal. During that time, things were very dangerous for him, and all means of communicating with the family back home were completely cut off. My grandparents had no way of knowing if he was OK. He later heard of a conversation my grandma had with a neighbor one day during this time: Neighbor: You must be so worried about your son in Vietnam! Grandma: Not really. I gave him back to the Lord the day he graduated high school. Neighbor: If you re not worried, then I m REALLY worried! Grandma: Why worry? Heaven is just as close to Vietnam as it is to Kansas. That exchange sums her up pretty well, I think. She was so deeply religious that it gave her a great sense of peace about life. We heard so many stories about her this week. We heard how, when she was already in her upper 80s, she helped a farmer get his equipment out of the mud and ran some heavy farm machinery. She was in charge of my cousin s schoolwork for a little while (she lived with them back then, and his parents were taking a trip). She apparently made sure he did every little assignment left for him in exacting detail, even the ones that his mother had said were extra , just in case he needed something else to do. Apparently when his parents got back, he said he loved his time with grandma, but begged them to never put her in charge of his schoolwork again! I told the story of learning to play chess when I was a child. My grandpa was teaching me the game. I was having some trouble learning some of the rules, and was frustrated because he was also beating me (like usual). After a little while of me getting more and more frustrated, grandma said something to him in German and all of a sudden I started winning. Yesterday evening was the community Good Friday church, with the combined choirs of our church and Alexanderwohl singing. That wasn t the easiest thing to do after the funeral in the morning, but I m glad I did. Tomorrow I ll be singing again for Easter.

11 April 2009

Mike Hommey: Following up on SSH through jump hosts

I got interesting comments on my previous post about SSH through jump hosts, that made me think a bit. The first one of them suggested to use a syntax that unfortunately doesn t work on anything other than zsh, but had the nice idea to add a login for each jump server. Sadly, this only works when there is only one hop, for reasons similar to those we will explore below. The second one suggested / would not be so good a separator, because it would fail in svn+ssh urls and such, which is a good point that I didn t think of only by lack of such use case. The simplicity of the resulting configuration was nice enough. This decided me to take a shot at implementing something that would allow adding both login and port number for each jump server. The first implementation detail to set was which characters to use for login, port number and hop separators. I chose respectively % (@ is unfortunately impossible to use because ssh would take it, leaving out any hop before the character), : (pretty standard) and + (not allowed in DNS, and not too illogical as such a separator, I thought). The result can look like dark magic when you are not savvy with sed and regular expressions:
Host *+*
ProxyCommand ssh $(echo %h sed 's/+[^+]*$//;/+/! s/%%/@/;s/:/ -p / ;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/ ) PATH=.:\$PATH nc -w1 $(echo %h sed s/^.*+//;/:/!s/$/ %p/;s/:/ / )
The syntax you can use to connect through jump hosts is the following:
ssh login1%host1:port1+login2%host2:port2+host3:port3 -l login3
We ll see further down why we can t put a login for the final destination host. Or if you want to skip the boring implementation details, you can also skip to the end, where a slightly more compact version lies: while writing this post, I got some optimization ideas. Let me try to split the sed syntax to make it a little more understandable:
s/+[^+]*$//; # Remove all characters starting from the last + in the string (i.e. keep the n - 1 first hops)
/+/! # If the string doesn t contain a + after the previous command (i.e. there is only one hop remaining), do the following, otherwise, skip until the closing curly brace
s/%%/@/; # Replace % with @ (% is doubled because of the ProxyCommand)
s/:/ -p / # Replace : with -p . Combined with the previous command, we rewrite login%host:port as login@host -p port
;
s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/ # Rewrite hop1+hop2+login%lasthop as hop1+hop2+lasthop -l login
The second sed goes like this:
s/^.*+//; # Remove everything up to the last occurrence of + in the string (i.e. only keep the last hop)
/:/! # If there is no : in the string, do the following, otherwise, skip the next statement
s/$/ %p/;
# Add %p at the end of the line
s/:/ / # Replace : with . These last three instructions prepare a host port combination for use with nc.
Let s see what the ProxyCommand looks like for some examples, skipping PATH setting and nc option for better readability:
host1+host2
ssh host1 nc host2 %p
login1%host1+host2:port2
ssh login1@host1 nc host2 port2
login1%host1:port1+host2:port2
ssh login1@host1 -p port1 nc host2 port2
Now, maybe you start to see why we can t put a login on the last hop: not only does it make no sense for nc, but also the main ssh process that runs the ProxyCommand and will actually talk to the remote host won t have any knowledge of it. From the above examples, it also appears obvious why we replace login%host:port with login@host -p port : so that the ssh command in the ProxyCommand gets the proper arguments for login and port. Note we could also replace with host -p port -l login for the same effect. With even more hops, this is what happens:
host1+host2+host3
ssh host1+host2 nc host3 %p
login1%host1:port1+host2:port2+host3
ssh login1%host1:port1+host2:port2 nc host3 %p
Each of these ProxyCommands will trigger another ProxyCommand quite looking like our first few examples. In the first hops, if we d just replace all % with @ , in cases where logins are given everywhere, we d end up with a ProxyCommand like the following:
ssh login%host1+login%host2 nc host3 %p
As we saw above, we can t use a login on the last hop, which means this ProxyCommand wouldn t work as expected and is why we have to rewrite login1%host1+login2%hop2 as login%host1+host2 -l login2 with the last instruction in the first sed. In the end, this is what happens:
login1%host1+login2%host2+host3
ssh login1%host1+host2 -l login2 nc host3 %p
login1%host1:port1+login2%host2:port2+host3:port3
ssh login1%host1:port1+host2:port2 -l login2 nc host3 %p
In this last example, you see the :port2 part is not changed into -p port2 . Actually, it would still work with the latter form : the ProxyCommand ssh login1%host1:port1+host2 -p port2 -l login2 would itself have ssh login1@host1 -p port1 nc host2 %p as ProxyCommand, in which %p would be replaced by port2, given as argument to -p. Based on this and with further small optimizations, we can slightly shorten our ProxyCommand to the following :
Host *+*
ProxyCommand ssh $(echo %h sed 's/+[^+]*$//;s/\([^+%%]*\)%%\([^+]*\)$/\2 -l \1/;s/:/ -p / ) PATH=.:\$PATH nc -w1 $(echo %h sed s/^.*+//;/:/!s/$/ %p/;s/:/ / )
sed instructions decryption is left as an exercise to the reader ;). Update : modified the shortened version to fix the issue spotted in the comments.

Biella Coleman: Help Me Find This



Help Me Find This, originally uploaded by the biella.
A long while back, I wrote a blog entry about debconf4, which became fodder for a section in my dissertation, and which will be published as a stand alone article this summer or fall in Anthropological Quarterly. I am including a number of images, most of which are mine or taken from the Debconf Gallery but I have a few images of unknown source/origin and it would be great to help me find it. The first is the photo pictured above, which I uploaded to my flickr page. Someone sent it to me a long time ago and all I know that it is from one of the Dutch Hacker Conferences, possibly HIP. Does anyone know where I can find a copy on the web? Seen it before? Are the kid pictured in the photo? Think you are the kid pictured in the photo? Sort of look like the kid pictured in the photo? Know of a service where you can upload a photo on a page and it will locate other copies?? Know of another similarly awesome photo? The second picture is of two Debian developers Gustavo and Jonas dancing at Debconf. I can t seem to locate it in the gallery and I am not sure who took it but I would love to find out to get permission to use it in the piece. Finally: do you have any pictures (in the gallery on not) that capture the joy of conferencing that you would not mind published either in this article or my book? If yes, feel free to send any along!

Biella Coleman: Help Me Find This



Help Me Find This, originally uploaded by the biella.
A long while back, I wrote a blog entry about debconf4, which became fodder for a section in my dissertation, and which will be published as a stand alone article this summer or fall in Anthropological Quarterly. I am including a number of images, most of which are mine or taken from the Debconf Gallery but I have a few images of unknown source/origin and it would be great to help me find it. The first is the photo pictured above, which I uploaded to my flickr page. Someone sent it to me a long time ago and all I know that it is from one of the Dutch Hacker Conferences, possibly HIP. Does anyone know where I can find a copy on the web? Seen it before? Are the kid pictured in the photo? Think you are the kid pictured in the photo? Sort of look like the kid pictured in the photo? Know of a service where you can upload a photo on a page and it will locate other copies?? Know of another similarly awesome photo? The second picture is of two Debian developers Gustavo and Jonas dancing at Debconf. I can t seem to locate it in the gallery and I am not sure who took it but I would love to find out to get permission to use it in the piece. Finally: do you have any pictures (in the gallery on not) that capture the joy of conferencing that you would not mind published either in this article or my book? If yes, feel free to send any along!

10 April 2009

Kapil Paranjape: Controvertialism

Rahul Basu pointed out an article by the eminent scientist Freeman Dyson. In the past Dyson has raised a number of interesting questions and has been thought-provoking, but it is difficult to read him when he writes like this. I have re-phrased what he has said (debunking climatologists) and turned it into an argument against the Large Hadron Collider so that we can see how obnoxious it sounds.1
My first heresy says that all the fuss about the Higgs particle is grossly exaggerated. Here I am opposing the holy brotherhood of high energy physicists and the crowd of deluded citizens who believe that the world is predicted by the standard model. Of course, they say, I have no degree in physics and I am therefore not qualified to speak. But I have studied the standard model and I know what it can do. The model solves the equations of gauge theory in the simplest cases, and it does a very good job of describing the interactions of the known particles. It does a very poor job of describing how mass arises and the chemistry and the biology of phenomena we see everyday. It does not begin to describe the real world that we live in. The real world is muddy and messy and full of things that we do not yet understand. It is much easier for a scientist to sit in an air-conditioned building and run computer models, than to put on a lab coat and measure what is really happening in the complex phenomena of compounds and materials. That is why the high enery physicists end up believing their own models.
The rest of the article can then be similarly re-phrased but I will just summarise it as:
There is no reason for the rest of the world to believe the high energy physicists and squander billions of dollars into following their proposed unique solution to the questions of physics.
Of course, there is a good chance that Dyson will agree with the above point of view as well! The problem with controversialists'' like Dyson is that they believe that taking extreme positions helps clarify issues. Unfortunately, extremists are a-dime-a-dozen in today's world. I suppose I should clarify that I accept neither the extreme position on climatology nor the one on the LHC!

  1. My friend is a high energy physics theorist!

Obey Arthur Liu: Google Summer of Code 2009: Debian s Shortlist

Copy of http://lists.debian.org/debian-devel/2009/04/msg00421.html. Hi folks, We have been pretty busy these past few weeks with the whole Google Summer of Code 2009 student application process.
I can say that we have this year a very good set of proposals and I d like to thank all the students and mentors for this. I am going to present to you our shortlist of projects that we would like to be funded and believe we can reasonably manage to get funded. As always, remember that the number of slots is not final yet at this point so we can t promise anything. The first preliminary slot count given today was *10* (same as last year) and we hope to get *2* more (as we did last year). This shortlist is alphabetically ordered because we don t want to reveal the current internal rankings. I am inviting you to debate what you think is cool, what is useful, what is important to Debian, maybe give us pointers to resources or people that could be helpful for the projects. We will try to alter our current rankings to reflect the zeitgeist in Debian, while taking into account the personal information that we have about each student involved. The deadline for any modification is on the 15th, so get everything in by the 14th. The final selected projects will be announced by Google April 20th, ~12 noon PDT / 19:00 UTC. We ll have another announcement then. Three proposals need or may need a mentor, I indicated it. For more information about the projects or mentoring and how to talk to us directly, scroll down past the list. Debian s Shortlist : - Aptitude Package Management History Tracking
- Automatic Debug Packages Creation and Handling
- Debbugs Web UI: Amancay Strikes Back
- Control Files Parsing/Editing Library/Qt4-Debconf Qt4-Perl bindings
- Debian-Installer Support for GNU/kFreeBSD
- KDE/Qt4 Adept 3.0 Package Manager
- Large Scientific Dataset Package Management
- MIPS N32 ABI Port
- MTD Embedded Onboard flash Partitioning and Installation
- On-demand Cloud Computing with Amazon EC2 and Eucalyptus Integration
- Port back update-manager to Debian and all Derivatives
- Debian Autobuilding Infrastructure Rewrite And the details: Aptitude Package Management History Tracking Student: Cristian Mauricio Porras Duarte, Mentor: Daniel Burrows Aptitude currently does not track actions that the user has performed beyond a single session of the program. One of the most frequent requests from users is to find out when they made a change to a package, or why a package was changed; we want to store this information and expose it in the UI in convenient locations. As a side effect, this might also provide some ability to revert past changes. Automatic Debug Packages Creation and Handling Student: Emilio Pozuelo Monfort, Mentor: Marc Brockschmidt This proposal aims at providing debug binary packages for the packages in the Debian archive in an automatic manner, moving them away from the official Debian archive to an special one. This has the benefits of providing thousands of debug packages without any work needed from the developers, for all the architectures, without bloating
the archive. Debbugs Web UI: Amancay Strikes Back Student: Diego Escalante Urrelo, Mentor: Margarita Manterola The Amancay project aims to be a new read/write web frontend to Debian s BTS; allowing DDs and contributors to easily interact with bugs via an intuitive yet powerful interface, enabling new workflows and creating new contribution opportunities like triaging while upholding reporting quality. Control Files Parsing/Editing Library/Qt4-Debconf Qt4-Perl bindings Student: Jonathan Yu, Mentor: (probably) Dominique Dumont see below This project proposes a common library for parsing and manipulating Debian Control files, including control, copyright and changelog. Main ideas include validating and parsing of these files, with both Strict and Quirks modes for the parser. The second idea is a new frontend for Debconf using Qt4 (for which Perl bindings will be written). Debian-Installer Support for GNU/kFreeBSD Student: Luca Favatella, Mentor: Aurelien Jarno GNU/kFreeBSD is currently using a hacked version of the FreeBSD installer combined with crosshurd as its own installer. While this works more or less correctly for standard installations (read: the exact same installation as in the documentation), it does not allow any changes in the installation process except the hard disk partitioning. This project is about porting debian-installer on GNU/kFreeBSD, and to a bigger extent, make debian-installer less Linux dependant. KDE/Qt4 Adept 3.0 Package Manager Student: Mateusz Marek, Mentor: NEEDS MENTOR, see below. Finish Adept 3.0, a fully integrated package manager for Qt4/KDE4. Adept is currently the only viable path to a Debian native package manager on KDE that would support modern features such as tags, indexed search or good conflict resolving. With Aptitude-gtk still in development and only available for GTK+ and (K)PackageKit having fundamental problems, Debian needs this project to stay in control of its package management on KDE after much neglect in the recent years. Large Scientific Dataset Package Management Student: Roy Flemming Hvaara, Mentor: Charles Plessy Large public datasets, like databases for bioinformatics are typically too big and too volatile to fit the traditional source/binary packaging scheme of Debian. There are some programs that are distributed in Debian, like blast and emboss, that can index specialised databases, but Debian lacks a tool to install or update the datasets they need and keep their indexing in sync. MIPS N32 ABI Port Student: Sha Liu, Mentor: Anthony Fok This project first focuses on creating a new MIPS N32 ABI port for Debian. Different from O32 and N64, N32 is an address model which has most 64-bit capabilities but using 32-bit data structures to save space and process time. A second focus will be given on making such a mipsn32el arch fully optimized for the Loongson 2F CPU which gains more and more popularity in subnotebooks/netbooks in many countries. MTD Embedded Onboard flash Partitioning and Installation Student: Per Andersson, Mentor: Wookey Many embedded devices have MTD onboard flash as persistent storage like the Kurobox Pro NAS, the Neo Freerunner, the Sheeva Plug or the OLPC. With MTD flash being so popular and with increases in capacity, support for MTD partition/installation would make Debian even more interesting to a wide range of of devices, making it one step closer to being universal. On-demand Cloud Computing with Amazon EC2 and Eucalyptus Integration Student: David Wendt Jr, Mentor: (probably) Steffen Moeller see below In many academic fields, as well as commercial industries, people use clusters to distribute tasks among multiple machines. Many times this is done by packaging a whole operating system disk image, uploading it onto the cluster, and having the cluster run it in a VM. This project intends to make it easier for Debian to distribute prepared disk images templates like they distribute CD images now, for the users to recreate or customise these templates with Debian packages and for administrators to host such clusters with Debian. Port back update-manager to Debian and all Derivatives Student: Stephan Peijnik, Mentor: Michael Vogt The project would involve taking the distribution-(Ubuntu-)specific update-manager code, analyzing it, and creating a package with just its core functionality, decoupling the distribution-specific parts and thus making the core code extensible by distribution-specific add-ons. This in turn would remove the need of porting update-manager to Debian with every upstream release. An additional optional goal would be replacing the synaptics-backend with a python-apt based one. Debian Autobuilding Infrastructure Rewrite Student: Philipp Kern, Mentor: Luk Claes Rewrite the software that currently runs the Debian autobuilding infrastructure in a way that makes it more maintainable and robust. It will use Python as its programming language and PostgreSQL for the database backend. By harmonizing buildds, many build failures can be prevented and wasteful workload on buildd volunteers can be reduced. On mentoring: Petr Rockai, the original developer of Adept has offered help to anyone willing to adopt Adept. Sune Vuorela has offered help for any Qt4 and KDE related issues. *We really need a mentor here*. The student is quite competent but Google dictates that we provide a mentor to handle student management. Dominique Dumont, although not DD, has signaled interest in mentoring this, although it hasn t been confirmed yet. Sune Vuorela has offered to help co-mentor for the Qt4-Debconf and Qt4-Perl bindings part. Steffen Moeller has signaled interest in mentoring this, although it hasn t been formally confirmed yet. Charles Plessy of the Debian Med team will provide help for use cases related issues. Eric Hammond, developer of the original vmbuilder image creation tool and maintainer of a set of Debian and Ubuntu images will provide help for Amazon EC2 and image creation issues. Chris Grzegorczyk from the Eucalyptus team will provide help for Eucalyptus and Eucalyptus/Debian integration issues. Contacting us: Considering the tight schedule, most stuff happens live on IRC: #debian-soc on irc.debian.org You can also consult our wiki page for some additional information:
<http://wiki.debian.org/SummerOfCode2009> We have a mailing-list at:
<http://lists.alioth.debian.org/mailman/listinfo/soc-coordination> Keep this discussion on debian-devel@lists.debian.org while cc-ing soc-coordination@lists.alioth.debian.org. This thread is for debian-devel primarily.

9 April 2009

Remi Vanicat: Trailing whitespace

As Junichi Uekawa, I ve been seen a lot of warning from the default git script about trailing white-space, but I choose another solution: in Emacs (add-hook before-save-hook delete-trailing-whitespace) With this, Emacs strip all trailing white-space on saving a file. Thanks to this, you have no trailing white-space anymore, but there is a con: sometime, you change one char in one file, and when you commit the result, you have 10+ modified line.

Junichi Uekawa: trailing whitespace.

trailing whitespace. I didn't know, but git default scripts keep on warning me. So I now have show-trailing-whitespace set to t in emacs. That shows so many trailing whitespace which makes me want to fix.

MJ Ray: Switched over to LLU and ADSL-2+

A couple of months ago, I switched over to ThePhoneCoop s LLU package. The new service is good so far. The ADSL is blazingly fast (I wonder if it will remain so good) and the main drawbacks so far are a lack of reverse DNS (currently escalating that one up through tech support) and a slightly noisy dialling tone on the phone. I was initially switched to a dynamic IP address (which was a change I wasn t told about in advance), but got a static on request so we could restrict the VPNs a bit more. As usual, LUGgers were a source of help when it looked like going a bit wrong. Thanks to oddbloke for positive feedback about Buffalo routers (they work fine with OpenWRT, but not tried ADSL). Big thanks to Noodles for pointing out that the Buffalo router I linked wasn t an ADSL router, despite being listed as such, that the only ADSL chipset to have full open source support is the AR7 (but the wifi is dodgy) and that the Broadcom chipsets have 2.6 support but maybe with a binary blob. I m still not sure if a new router is necessary. The infernal Belkin seems to be working, but it s disconnecting and rebooting a lot more often. I seem to be on the TalkTalk/CPW network - anyone know of problems with Belkin routers? I ve not seen anything yet. Also, who else has unbundled and how was it for you?

Biella Coleman: From Open Source Software to Open Culture: Three Misunderstandings

A few weeks ago, I jotted down some thoughts about (false) expectations made on FLOSS/F/OSS, something that I wish I had more time to write about (teaching and other things seem to take most of my time these days). But before this year turned into the next one, I wanted to pass on a few additional (and similar though they enter into different territory) thoughts by O Reilly editor, Andy Oram: From Open Source Software to Open Culture: Three Misunderstandings

Next.

Previous.