31 Jul 2010
Planet GNOME
Steve Frécinaux: Attending to GUADEC Tomorrow

As some of you might know by now, I will be attending to GUADEC tomorrow and Thursday.

Despite being involved in Gnome for nearly four years now, this will be my first GUADEC! There, I will be available for anyone having questions on the libpeas plugins engine, and to drink a few beers. As I'm a bit shy sometimes, don't hesitate to call me out if I pass by! :-)
31 Jul 2010 10:00am GMT
30 Jul 2010
Planet GNOME
Clemens Buss: Into the bubble - out of the bubble.
So GCDS is over - unfortunately. And I somehow made it home safely, but that's a different story
The Conference on Gran Canaria was - in a nutshell - just great. Organization was probably perfect, and the people in a very good & relaxed mood, always ready for discussing different issues around the free desktop or just having fun.
Stallman's keynote was discussed and criticised a lot already, especially the part about Mono. Interesting - maybe not surprising though - is, that the last time I saw him at Chalmers Technical University, he gave an almost similar speech to a technical but certainly not predominantly free software affine audience. Especially at this speech at Chalmers it was obvious that his FS evangelism and way of interacting with people did not really serve the purpose of making people think about Free Software or even switch. It actually made people very angry, because he was often disrespecting to them in his manners and not addressing the critical points they brought up in the discussion.
This was about a year ago and really sad to see. I was a bit surprised then at his GCDS Keynote because the people there, who are involved in Free Software, seemed to actually feel in a very similar way like the non Free Software audience in Chalmers. Besides his never doubted merits it leaves me wondering if his talks are really helpful to promote Free Software for either kind of audience.
Very interesting however, was RMS recapitulation of the KDE/QT story. I knew the story, but did not have it in mind very completely any more. Also his perspective was new to me.
Another interesting keynote was the one of Walter Bender. I only want to emphasise the "low floor, no ceiling" approach he talked about and which they are embracing for the Sugar Platform. I like this paradigm and very much agree with it. That means that. if we get somebody who started off only listening to some music and in the end is able to produce his own music with a similar, seamless software stack, we are close to perfection in User Interfaces.
Surprisingly the Lightning Talk session was in the large hall. Anyhow, in the end that made giving the talk even more fun. I got some good feedback and at least the idea behind my project will continue, see below.
Besides listening to talks, giving one myself and having inspiring conversations I helped out a bit at the registration desk, selling merchandise and using the free time in between to talk with Adam, who is doing some really awesome stuff in order to bring TeX into a nice GNOMEy UI. Everybody who saw his lightning talk knows about it, otherwise I guess you can soon check: http://github.com/reviczky. As as scientist who needs TeX a lot, not only because of its awesome capabilities to print formulas, I am really looking forward to Adam's work.
Among a lot of others I also spoke with Seif. We will cooperate on doing something which he calls "Gothenburg on Crack", or Cookiemonster. This will bring the idea behind Project Gothenburg together with Zeitgeist and some other cool technology. Expect some news on this soonish.
Putting Akademy with GUADEC at one place I consider to have been successful. I had the chance to speak with quite some of the KDE folks and it was nice to see they are really decent people which basically have the same mindset. Of course no one reasonably doubts that both is the case, but experiencing this makes a difference.
All this would not have been possible for me to experience without the support of the GNOME Foundation. Simply amazing that it worked out that way. Thanks a bunch!
However, the most important question on the conference, was one asked by Daniel Siegel: Where is the Travelling Gnome?
30 Jul 2010 4:41pm GMT
GUADEC: GUADEC 2010, Day 3
With nearly 400 participants getting together to discuss current and future GNOME projects, GUADEC 2010 saw its final day filled with topics addressing diversity and connectivity. Several of the sessions specifically emphasised the multi-cultural aspect of the GNOME project, with presentations by Emily Chen (GNOME in Asia), Jonh Wendell (GNOME in Brazil), Andre Klapper (Identifying software projects and translation teams in need) and Silvia Miranda (Quality translations in GNOME). Other talks again dealt with the idea of a GNOME desktop integrating with web services, including Adrien Bustany (Is your GNOME connected? Unifying the online and the offline using smantic services), Rob Bradford (Embracing the Web - Integrating web services within GNOME), and Zeeshan Ali and Lennart Poettering (Bringing the Network back into GNOME technologies).
Fabrice Mous delivered the day's keynote address with his talk entitled Changing the Desktop Game. Mr Maus talked about the need to spread open source software into government and the public sector. Linux projects should be taken seriously by government officials, and he cited some examples of expensive open source software projects that failed due to user habits. User habits are the biggest challenge facing Linux on the desktop, he said, though the spread of Linux to mobile phones and other internet devices is helping to change the game.
The final closing ceremonies thanked the GUADEC 2010 team for their efforts putting the event together. An announcement was also made about the location for GUADEC 2011 - - Berlin! Any and all feedback is welcome to the GNOME Board: board@gnome.org
All in all, this year's GUADEC was an amazing event. With about 400 participants, a pre-conference involving high-level government officials, two days of GNOME training sessions, 60 speaking sessions, Lightning Talks, discussion groups and workshops, and the collaboration and joys of meeting fellow hackers IRL, 2010 has been a large success by all measures.
The GUADEC networking staff will be disassembling the network after the conference closing ceremony, all are encouraged to lend a hand (there may be some free pizza for you!). Disassembly will begin around 18:00.
The unofficial GUADEC aferparty will be at the Revelation hackerspace. All GNOME hackers are welcome to lounge and chill out! Map is here.
See you in Berlin!
Send GUADEC an email: guadec-list@gnome.org
Join GUADEC on Twitter: http://twitter.com/GUADEC
Follow the GUADEC Twitter channel: http://twitter.com/#search?q=guadec
GUADEC 2010 Flickr: http://www.flickr.com/photos/guadec2010

30 Jul 2010 4:05pm GMT
Stéphane Maniaci: Final day at GUADEC
Yes my friends, every good thing comes to an end. Today was the last day of GUADEC, and I won't be any different than the other attendants, it was awesome.
Back to the conferences, another impressive day, which started with the "GNOME 3 the Telepathic destop" talk by Collabora's Guillaume Desmottes, who talked about the future of Empathy, Telepathy and how this would fit into GNOME. Excellent features landing soon :
* File-transfer for GTalk/MSN ; * Logging daemon moved to Telepathy (i.e, you can get your chatlogs from any app using Telepathy, without launching Empathy) ; * Muji, the multi-participant audio/video call ; * New API to get notifications about new messages and mails (not sure about this) ; * Contact capabilities and retrieval of vCards ; * Encrypted logs, encrypted calls, certificates checks ; * Proxy support (finally) ; * New high-level API for Telepathy (read: faster development and deployment) ; * Improvements to Wocky, the Gabble library ; On the Empathy side : * Better components separation : audio/video, logging ; * Meta-contacts, with the new Folks library (yaaaaaaaay!¡¡!!!¡) ; * Actions directly into notifications (answer/reject call, for example) ; * Inline chat of GNOME Shell ; * Search of contacts right within the Shell! ; * Teamgeist, a project to share data and events with your contacts ; * XZibit, a Mutter plugin to share (not show, _share_) a window with your contacts ; * Ssh-contact, allows you to chat through SSH (you couldn't guess that) ; * Integration with Banshee (share your music), Tomboy (share your notes) and Epiphany (share your bookmarks), GEdit and more...
So yeah, I might not have gotten it 100% right, but hell yeah it's going to rock! Go on Collabora, make my desktop even cooler.
Right after, I went to the talk by Gabriel Burt about Banshee, and cool things are happening there too : along with the UI improvements and HIG compliance, they have a nifty duplicate artists/songs/genre detection, you can create an extension with their extension creator (bce), it takes about about 20 secondes to get the sample running, they have a huge community and a bunch of developers (~1 new developer every week, \o/) and their 1-month release cycle allows quick release of fixes and new features. They also worked on Amazon integration, you can browse/listen/buy right from Banshee, and the best part is that they get 10% of the sales, and give it away to the GNOME Foundation, that's very, very nice of you guys.
I could stop here and it would already be sweet, but no, we still got some amazing news coming (why do I suddenly sound like Steve Jobs?).
Next talk was by some more Intel smart people, about a new, amazing (can't help it) product, ClutterSmith. Remember that name, it's going to kick *ss. So basically, it's kind of a freeform Glade for Clutter. You put actors on a scene, you move them, link them, hyperlink theme (jump to a different scene), live animate them, edit properties on the go, put Mx widgets, scale them, and do all kind of crazy stuff with it. Makes me think of Adobe Flash for Clutter, which gives us a powerful tool to design UIs, and demonstrate interactive, good-looking mockups.
But wait, after that I went to the "Embracing the web, web services in GNOME" by Meego's Rob Bradford, who introduced us to libsocialweb, a nice library with a powerful API, strong DBus support that allows you to query many popular websites feeds, FlickR photos, Identi.ca and Twitter notices, and they gained Facebook support recently. This is going to be a key component in the sucess of a web-enabled GNOME.
Walked back to the auditorium to hear Fabrice Mous about "Changing the desktop game", but unfortunately I was busy with some compilation issues, so the main thing I remember is : Fabrice is a proud member of the KDE community, and politics are willing to move administration-ware to open-source. Sorry.
Then Igalia's Xan Lopez and the Collaborian Gustavo Noronha walked in to tell us about GtkWebkit ; providing a much tighter integration with the GNOME platform, GTKWebkit also offers extented theming capabilities, as demonstrated in Gwibber and Empathy's Adium themes. Yelp 3 will also make use of GtkWebkit, to display nicely formatted source code (and other things I guess). Their point was to make GNOME part of the web by installing our libraries and toolkits at the core of browsers : Cairo, GStreamer, GTK+, etc, and I think it's a good way to go.
Ended my conference program with the "Cairo 2D in a 3D world" by Christopher Paul Wilson, a lot of tech stuff, so the only thing I remember is that Cairo is switching to a new 1-month release-cycle and got some love in the past months that allowed performance improvements and a clear plan for Cairo 1.10.
Closing talk was a great moment (I'll post a video later) next year the Desktop Summit will take place in Berlin, so hopefully see you there! Great thanks goes to all the people that made this happens, volunteers, companies, and of course the GNOME Foundation. Let's rock!

30 Jul 2010 3:23pm GMT
Jono Bacon: Fixing Ubuntu Software Center Descriptions

The Ubuntu Software Center is making some rocking progress, but as everyone's favorite Dr Vish suggests, it is only a container for other content, and we need to fix and improve the descriptions of apps inside Ubuntu to make it easier for users.
This is a wonderful contribution to Ubuntu. Want to get involved? Simple, check out Vish's awesome post.
30 Jul 2010 2:38pm GMT
Joaquim Rocha: One more step in OCR with OCRFeeder 0.7

I have been hacking on some new and cool features on OCRFeeder for a while and now it is time to show them to the world in a new release.
These features I'm talking about fall mainly in 2 areas: improving the a11y of the UI and improving the recognition of documents.
A11y Improvement
The improvement of the a11y has the typical UI changes to include mnemonics, missing labels and relations, but also other approaches that have more to do with UX like using a progress dialog to inform users that time-taking operations are being carried. This means that now, the PDF importation and OCR won't block the UI.
Other changes in this category were the navigation through the content boxes (before, these could only be selected by clicking on them), the selection of all boxes and the deletion of selected boxes.
The following screenshot shows the box editor area of OCRFeeder with its mnemonics highlighted:
Recognition Improvements
Sometimes, text columns are so close to each other that they end up being recognized as a single paragraph, so I added a post-detection method to solve this issue. This feature is optional and can be toggled from the Preferences dialog.
Here's an example of the difference it makes:
Scanned document images are usually skewed and this makes it more difficult for the contents to be successfully detected and "OCRed". I decided to implement an algorithm to deskew these images. The algorithm uses the Hough transform to try to find lines in the image and their angles and, while it is a bit slow, it works well:
This action can be used in a loaded image but can also be configured to be automatically performed before the images are added. The Unpaper tool can now also be set to be clean images before adding them.
This makes it much easier to successfully recognize images obtained from a scanner device.
Some fine tunning of the content boxes' bounds was done by trying to shorten their margins, that is, lowering the distance between the boxes and their actual contents.
The font size recognition was also tweaked to solve the problem of having paragraphs with initials (you know, the huge starting characters) which were influencing the whole paragraphs' font size.
To finish the recognition's improvements, I have added an optional action to find and fix the text's line breaks. Usually, OCR engines don't consider "semantic line-breaks", that is, OCR engines always insert a newline in the end of each line.
Using some regular expressions, I try to find these "fake" line-breaks and recover the original flow of the text. Like some of the features mentioned above, this one can also be turned on/off from the Preferences dialog.
Here's how the Preferences dialog looks like now:
To finish, images can now be dragged and dropped onto the pages' area and the mouse wheel can be used to scroll horizontally combining it with the Shift key, thanks to Stefan Löffler, and of course, several bugs were corrected and code was improved.
As you see, this is a "rich" new version of OCRFeeder that keeps being the easiest way to use OCR in a desktop. You are welcome to file bugs in bugzilla or to send patches and features' requests to its mailing list or approaching me if you're in GUADEC.
Download: OCRFeeder 0.7 tarball on GNOME FTP
30 Jul 2010 1:51pm GMT
Paul Cutler: GUADEC Closing Ceremony today at 17:15 in Paris

Don't forget to come to the Paris room at 17:15 for the closing ceremony at GUADEC.
Why? You'll want to find out where the Desktop Summit next year is!
See you there!
30 Jul 2010 1:46pm GMT
Philip Van Hoof: Tracker this, Tracker that, everything Tracker

Busy handling
I made an article about reporting busy status in Tracker before.
But then it wasn't yet possible to queue a query while Tracker's RDF store is busy. We're making this possible following next unstable release. Yeah I know you guys hate that Tracker's RDF store can be busy. But you tell us what else to do while restoring a backup, or while replaying a journal?
While we are replaying the journal, or restoring a backup, we'll accept your result-hungry queries into our queue. Meanwhile you get progress and status indication over a DBus signal. Some documentation about this is available here.
SPARQL 1.1 Draft features: IN and NOT IN
We had a feature requests for supporting SPARQL IN and NOT IN. As usual, we're ahead of the SPARQL Draft specification. But I don't think IN and NOT IN will look much different in the end. Anyway, it was straightforward so I just implemented both.
It goes like this:
SELECT ?abc { ?abc a nie:InformationElement ;
nie:title ?title .
FILTER (?title IN ('abc', 'def')) }
SELECT ?abc { ?abc a nie:InformationElement ;
nie:title ?title .
FILTER (?title NOT IN ('xyz', 'def')) }
It's particularly useful to get metadata about a defined set of resources (give me the author of this, this and that file)
Direct access
This work is progressing nicely. Most of the guys on the team are working on this, and it's going to be awesome thanks to SQLite's WAL journal mode. SQLite's WAL mode is still under development and probably unstable here and there, but we're trusting the SQLite guys with this anyway.
What is left to do for direct-access is cleaning up a bit, getting the small nasty things right. You know. The basics are all in place now.
We're doing most of the library code in Vala, but clever people can easily imagine the C API valac makes from the .vala files here. That's the abstract API that client developers will use. Unless you use a higher level API like libqttracker, QSparql, Hormiga or sparql-glib.
All of which still need to be adapted to the direct-access work that we're doing. But we're in close contact with all of the developers involved in those libraries. And they're all thrilled to implement backends for the new stuff.
Plans
We plan to change the signals-on-changes or class-signals feature a bit so that the three signals are merged into one. The problem with three is that you can't reliably identify a change-transaction this way (a rename of a file, for example).
Another thing on our list is merging Zeitgeist's ontology. To the other team members at Tracker: guys, Zeitgeist has been waiting for three months now. Let's just get this done!
Oh there are a lot of plans, to be honest.
I wonder when, if ever, we go in feature freeze. Hehe. I guess we'll just have very short feature-freeze periods. Whatever, it's fun.
MeeGo in cars
Hey BMW & co, if you guys want to learn how to write music players and playlists for car entertainment on MeeGo, get in touch! This Tracker that I'm talking about is on that MeeGo OS; being the Music's metadata database is among its purposes.
I can't wait to have a better music player playlist my car.
Or maybe some integration with the in-car GPS and the car owner's appointments and meetings? With geo-tagged photos on the car owner's phone? Automatic and instant synchronization with Nokia's future phones? Sounds all very doable, even easy, to me. I'd want all that stuff. Use-cases!
Let's talk!
30 Jul 2010 1:36pm GMT
Petr Kovar: Localization Update for the 2010 Q2 GNOME Quarterly Report
(As discussed on the gnome-i18n mailing list.)
Various localization teams that are part of the GNOME Translation Project continued with focusing their localization effort on stable GNOME 2.30.1 and 2.30.2 releases which were released on April 28 and June 23, respectively. Localization teams will proceed further with working on localization for the upcoming GNOME 3 release.
GNOME translation community that gather together on the gnome-i18n mailing list discussed and conducted common translation project administrivia, including assistance in changing coordinators in several localization teams, the most notable case being the Slovak translation team, in which several translators expressed their discontent with the current way of coordination. The issue was thoroughly discussed within the Coordination Team in order to mediate the dispute and was settled down in the beginning of July when the current Slovak coordinator announced his resignation.
Among other things discussed was the legal issue of whether translators who are not legal experts should translate legal notices or license texts that usually come with the free software distribution. This topic was further discussed on the GNOME legal-list with Luis Villa.
Also, there was a change done in the structure of the GNOME Translation Project coordination. Previously, the project was formally led by two Spokes Persons who were also senior members of the extended Coordination Team. Now, the Spokes Person status has been obsoleted in favor of a larger Coordination Team.
For string freeze break requests during the GNOME Desktop development cycle, developers are now required to obtain the approval from two members of the Coordination Team. The Coordination Team that now consists of 11 members will also seek ways to improve the responsiveness about requests.
One of the important tasks that the GNOME Translation Project intends to accomplish during Q3 is completing the implementation of Git commit support through the infrastructure running on l10n.gnome.org.
30 Jul 2010 12:52pm GMT
Petr Kovar: Documentation, GFDL, etc.
Last summer I found myself delving into documentation writing & maintaining. My email client of choice, Sylpheed, which many FLOSS users might remember from early 2000's when it was one of the first full-featured GTK+ clients (at least as far as I know), was distributed with a set of long-time unmaintained documentation that quickly became more or less completely out-of-date.
In fact, it wasn't touched for over three years and was left in a state of partially completed LinuxDoc SGML to DocBook 4 XML migration. The first thing that needed to be done, even before finishing the migration and previewing the actual documentation, was obviously evaluating whether it is actually worthwhile for a new maintainer without deep knowledge of the given maintenance rules & processes to try to continue with updating the original documents, or whether it would be better to start from the scratch, i.e. with a complete rewrite.
Since I wasn't feeling very adventurous and my previous experiences were quite limited, to say the least, I eventually sticked with the former option.
Now I can say that the biggest obstacle is not a need to understand DocBook 4, neither it is adapting work flow procedures and writing style of documents with numerous authors in their history, it is actually dealing with the GNU Free Documentation License, the license the said documentation is distributed under. I believe that many rants have been written before already about this piece of legal text, so I won't repeat others here. Still, I'm quite grateful for Creative Commons licenses as something fresh and needful coming into scene and replacing GFDL within many documentation teams & efforts. I wish it was more feasible for maintainers to relicense a documentation work done by many (inactive and probably unreachable) authors from GFDL to CC. That being said, the clause that appeared in the GFDL version 1.3 is/was apparently not very helpful, unless you wanted to relicense content on Wikipedia or something very similar.
Anyhow, what I have found in my experience (IANAL) to be least amusing about GFDL is:
- The idea behind invariant sections etc. (Yes, I can understand those good intentions that went pretty wrong, I would say.)
- The definition of a transparent format.
- The need for distributing the full text of the license along with a licensed document.
- The thing that a generated HTML file with included GFDL copy (i.e. a generated file converted from DocBook XML source files) is or at least might be seen as an opaque copy, that is one needs to distribute a (plain text) file with full text of the license along with HTML file distribution (be it via tarball or any other standard channel). This issue was brought to my attention by Ricardo Mones and discussed on the Sylpheed mailing list.
Planet Fedora
So after crying my eyes out, I realize that this is my first blog post that might land on Planet Fedora, so I would like to say hi to all the hopefully interested readers out there! You can find most of my Czech localization & documentation writing contributions upstream, however, with me joining the Fedora Czech translation team ca. two years ago, and enjoying my encounters with the Fedora l10n infrastructure, notably the Fedora Transifex instance, ever since. Though I do remember the times when translate.fedoraproject.org was running a Damned Lies fork, also. OK, not too far away history, anyway.
30 Jul 2010 12:52pm GMT
Alban Crequy: Send files to your contacts on your N900
You can share files on your N900 via Bluetooth, E-Mail and web services (Flickr and Facebook) thanks to libsharing-dialog. But there is no file transfers to a contact through instant messaging.

The sharing dialog with Bluetooth, E-Mail and web services features
But look, the sharing dialog is obviously missing a fourth button named "Share via IM"!
Jonny Lamb wrote Monorail, a file transfer application for the N900. Monorail is a standalone application using the Telepathy framework but so far it does not integrate with libsharing-dialog. Libsharing-dialog is supposed to be extensible by plugins (see the Sharing Plug-in documentation). Unfortunately the API is more suitable for web services than for file transfers through instant messenging so it makes the work more difficult.
So I implemented that fourth button with some hacks to workaround the limitations of the libsharing-dialog API:
- The Monorail package dpkg-diverts libsharingdialog.so into /var/lib/funsharing/
- Monorail implements a new library (aka libfunsharing) replacing libsharingdialog.so with the same ABI
- Libfunsharing calls dlopen() on the real libsharingdialog.so
- It also patches the class GtkTable in memory (see struct GObjectClass->constructed) just before calling the real function from libsharingdialog.so, and restore it after the call. I use this hack to get a reference to the GtkDialog and the GtkTable containing the three buttons (the libsharing-dialog API does not give us any reference to these objects)
- In the constructed function of GtkTable, it adds a 4th button "Share via IM" which sends the filenames to share via D-Bus to Monorail
- Monorail receives the filenames from libfunsharing via D-Bus, shows the contact selector and send the files as usual.

The sharing dialog after installing Monorail 0.3
It works fine in the file manager and the image viewer. Do you know any other application with a file sharing feature?
The address book can share contact cards via SMS, Bluetooth and E-Mail but it does not use libsharing-dialog, so Monorail does not automatically add my "Share via IM" button.

Send a contact card from the address book
But since PR1.2, the address book has a new plugin API and it automatically links to your plugins installed in /usr/lib/osso-addressbook/plugins. The plugin API is designed for menu extensions and does not have helper functions for the sharing dialog. But with Marco's help, I replaced OssoABookSendContactsDialog's constructed function to add the fourth button:

Send a contact card from the address book after installing Monorail 0.3
Monorail 0.3 is available in maemo extras-devel.
30 Jul 2010 12:47pm GMT
Bradley M. Kuhn: Is Your Support of Copyleft Logically Consistent?
Most of you are aware from one of my previous posts that It's a Wonderful Life! is my favorite film. Recently, I encountered something in the software freedom community that reminded me of yet another quote from the flim:

- GEORGE:
- Look, uh … I think maybe you better not mention getting your wings around here.
- CLARENCE:
- Why? Don't they believe in angels?
- GEORGE:
- I… yeah, they believe in them…
- CLARENCE:
- Ohhh … Why should they be surprised when they see one?
Obviously, I don't believe in angels myself. But, Clarence's (admittedly naïve) logic is actually impeccable: Either you believe in angels or you don't. If you believe in angels, then you shouldn't be surprised to (at least occasionally) see one.
This film quote came to my mind in reference to a concept in GPL enforcement. Many people give lip service to the idea that the GPL, and copyleft generally, is a unique force that democratizes software and ensures that FLOSS cannot be exploited by proprietary software interests. Many of these same people, though, oppose GPL enforcement when companies exploit GPL'd code and don't give the source code and take away users' rights to modify and share that software.
I've admitted that the copyleft is merely a strategy to achieve maximal software freedom. There are other strategies too, such as the Apache community process. The Apache Software Foundation releases software under a permissive non-copyleft license, but then negotiates with companies to convince them to contribute to the code base publicly. For some projects, that strategy has worked well, and I respect it greatly.
Some (although not all) people in non-copyleft FLOSS communities (like the Apache community) are against GPL enforcement. I disagree with them, but their position is logically consistent. Such folks don't agree with us (copyleft-supporting folks) that a license should be used as a mechanism to guarantee that all published and deployed improved versions of the software are released in software freedom. It's not that those other folks don't prefer FLOSS; they simply prefer a non-legally binding social pressure to encourage software sharing rather than a strategy with legal backup. I prefer a strategy with legal strength, but I still respect non-copyleft folks who don't support that. They take a logically consistent and reasonable approach.
However, it's ultimately hypocritical to claim support for a copyleft structure but oppose GPL enforcement. If you believe the license should have a legal requirement that ensures software is always distributed in software freedom, then why would you be surprised - or, even worse, angry - that a copyright holder would seek to uphold users' rights when that license is violated?
There is great value in having multiple simultaneous strategies ongoing to achieve important goals. Universal software freedom is my most important goal, and I expect to spend nearly all of my life focused on achieving it for all published and deployed software in the world. However, I don't expect nor even want everyone else to single-minded-ly support my exact same strategies in all cases. The diversity of the software freedom community makes it more likely that we'll succeed if we avoid single point of failure on any particular plan, and I support that diversity.
However, I also think it's reasonable to expect logically consistent positions. A copyleft license is effectively indistinguishable from the Apache license if copyleft is never enforced when violations occur. Condemning community-oriented0 GPL enforcement (that seeks primarily to get the code released) while also claiming to support the idea of copyleft is a logically inconsistent and self-contradictory position. It's unfortunate that so many people hold this contradictory position.
0There are certain types of GPL enforcement that are not consistent with the goal of universal software freedom. For example, some so-called "Open Core" companies are well known for releasing their (solely) copyrighted code under GPL, and then using GPL enforcement as a mechanism to pressure users to take a proprietary license. GPL enforcement is only acceptable in my view if its primary goal is to have all code released under GPL. Such enforcement must never compromise about one point: that compliance with the GPL is a non-negotiable term of settling the enforcement action. If the enforcer is willing to sell out the rights that users' have to source code, then even I would condemn, as I have previously, such GPL enforcement as bad for the software freedom community. For this reason, in all GPL enforcement that I engage in, I make it a term of my participation that compliance with the terms of the GPL for the code in question be a non-negotiable requirement.
30 Jul 2010 12:37pm GMT
Bradley M. Kuhn: podjango: A Minimalist Django Application for Podcast Publishing
I had yet to mention in my blog that I now co-host a podcast at SFLC. I found myself, as we launched the podcast last week, in a classic hacker situation of having one project demand the need to write code for a tangentially related project.
Specifically, we needed a way to easily publish show notes and otherwise make available the podcast on the website and in RSS feeds. Fortunately, we already had a few applications we'd written using Django. I looked briefly at django podcast, but the interface was a bit complicated, and I didn't like its (over)use of templates to do most of the RSS feeding.
The small blogging application we'd hacked up for this blog was so close to what we needed, that I simply decided to fork it and make it into a small podcast publisher. It worked out well, and I've now launched a Free Software project called podjango under the AGPLv3.
Most of the existing code will be quite obvious to any Django hacker. The only interesting thing to note is that I made some serious effort for the RSS feeds. First, I heavily fleshed out the minimal example for an iTunesFeed generator in the Django documentation. It's currently a bit specific to this podcast, but should be easily abstracted. I did a good amount of research on the needed fields for the iTunes RSS and Media RSS and what should be in them. (Those feedforall.com tutorials appear to be the best I could find on this.)
Second, I did about six hours of work to build what I called our ominbus RSS feed. The most effort went into building an RSS feed that includes disparate Django application components, but this thread on query set manipulation from django-users referenced from Michael Angela's blog was very helpful. I was glad, actually, that the ultimate solution centered around complicated features of Python. Being an old-school Perl hacker, I love when the solution is obvious once you learn a feature of the language that you didn't know before. (Is that the definition of programming language snobbery? ;)
It also turns out that Fabian Scherschel (aka fabsh) had started working on on a Django podcast application too, and he's going to merge in his efforts with podjango. I preemptively apologize publicly, BTW, that I didn't reach out to the django-podcast guys before starting a new project. However, I'm sure fabsh and I both would be happy to cooperate with them if they want to try to merge the codebases (although I don't want to use a non-Free software platform like Google Code to host any project I work on ;). Anyway, I really think RSS feeds should be implemented using generators in Python code rather than in templates, though, and I think the user interface should be abstracted away from as many details for the DTD fields as possible. Thus, it may turn out that we and django-podcast have incompatible design goals.
Anyway, I hope the code we've released is useful, and I'm glad for Fabian to take over as project lead. I need to move onto other projects, and hope that others will be interested in generalizing and improving the code under Fab's leadership. I'm happy to help it along, so please subscribe to the mailing list if you're interested.
30 Jul 2010 12:37pm GMT
Bradley M. Kuhn: Neary on Copyright Assignment: Some Thoughts
Dave Neary found me during breakfast at the Linux Collaboration Summit this morning and mentioned that he was being flamed for a blog post he made, Copyright assignment and other barriers to entry. Or, as some might title it in a Computer Science academic tradition: Copyright Assignment Considered Harmful. I took a look at Dave's post, and I definitely think it's worth reading and considering, regardless of whether you agree with it or flame it. For my part, I think I agree with most of his points.
One of the distinctions that Dave is making that some might miss is the difference between non-profit, community-controlled copyright assignment assignees and for-profit copyright assignees. He quotes Luis Villa to make the point that companies, ultimately, aren't the best destinations as a final home of FLOSS copyrights. If copyright assignment is looked only through the lens of a for-profit corporate entity - with only the duty to its shareholders to determine its future - then indeed it's a dangerous situation for many of the reasons that Dave raises.
I believe strongly that assigning copyright to a for-profit corporate entity is usually problematic. As Dave points out, corporations aren't really community members proper of a Free Software community; rather, their employees typically are. I have always felt that either copyrights should be assigned to a transparently-run non-profit 501(c)(3) entity, or they should be held by individual contributors. Indeed, the Samba project even has a policy to accept absolutely no corporate copyrights in their codebase, and I would love to see more projects adopt that policy.
I trust 501(c)(3) non-profits more than for-profits not only because I've spent most of my career in the former, and have enjoyed that time more than my time at the latter. I trust non-profits more because their charters and founding documents require a duty to a public-benefiting mission and to a community. They are failing to act properly under their charters if they put the needs of a for-profit entity ahead of the needs of the community and the public. This is exactly the correct alignment of incentives for a consolidation of FLOSS copyrights.
Some projects don't like centralized copyright for various reasons. While I do prefer it myself, I can understand this desire among individuals to each keep their stake of control in the project. Thus, I don't object to projects that want each individual contributor to have their own copyright. In this situation, the incentives are still properly aligned, because individuals who helped make the project happen have the legal control. While these individuals have no required commitment to the public good like a non-profit, they are members of a community and are much more likely to put the community needs above the profit motive that controls all for-profit entities.
When Dave says copyright assignment might be harmful, he seems to talk primarily about for-profit corporate assignment. I agree with him on that point. however, when he mentions that it's unnecessary, I don't completely agree, but he raises well the points that I would raise as to why it's important.
However, in the middle of Dave's post is the bigger concern that deserves special mention. The important task is keeping a clear record of the copyright provenance about where the work came from, and who might have a copyright claim. Copyright assignment is a short-hand way to do this in an organized and clear fashion. It's a simple solution with some overhead, and sometimes projects over the years have been annoyed with (and even ridiculed) that overhead. However, the more complex solutions have overhead, too. If you don't do assignment, you must keep careful track of every contributor, what their employer agreements say, and whether they have the right to submit patches under their own copyrights to the project. Some projects do this better than others.
Regardless, all of this is hard work. For years, I've seen it as a personal task of mine to help develop systems and recommendations that help make either process (assignment or good copyright record-keeping) less burdensome. I haven't worked on this task as much as I should have, but I have not forgotten that it needs attention. I envision integrated hooks and systems with revision control systems that help with this. I think we eventually need something that makes it trivial for hackers to implement and easy to maintain. I understand that the last thing any Free Software hacker wants to do is sit and contemplate the legal implications of contributions they've received. As such, all of us who follow this issue hope to make it easier for projects to do the work. In the meantime, I think discussion about this is good, and I'm thankful for Dave to raising the issue again.
30 Jul 2010 12:37pm GMT
Bradley M. Kuhn: Litigation filed against Various GPL Violators
I probably won't comment too much on the specifics at this point, but I wanted to make sure everyone saw that SFLC filed a lawsuit against fourteen GPL violators today on behalf of the Software Freedom Conservancy and Erik Andersen.. A PDF copy of the complaint is available.
30 Jul 2010 12:37pm GMT
Bradley M. Kuhn: GNU's Birthday
Twenty-five years ago this month, I had just gotten my first computer, a Commodore 64, and was learning the very basics (quite literally) of programming. Unfortunately for my education, it would be a full eight years before I'd be permitted to see any source code to a computer program that I didn't write myself. I often look back at those eight years and consider that my most formative years of programming learning were wasted, since I was not permitted to study the programs written by the greatest minds.
Fortunately for all the young programmers to come after me, something else was happening in an office at an MIT building in September 1983 that would make sure everyone would have the freedom to study code, and the freedom to improve it and contribute to the global library of software development knowledge. Richard Stallman announced that he would start the GNU project, a complete operating system that would give all its users freedom.
I got involved with Free Software in 1992. At the time, I was the one student in my university who had ever heard of GNU and the recently released kernel named Linux. My professors knew of "that Stallman guy" but were focused primarily on academic research. Fortunately for me, they nevertheless gave me free reign over the systems to turn them into what might have been, in late 1992, one of the first Computer Science labs running entirely Free Software.
Much more has happened since even then. To commemorate all that has come since Stallman's announcement, my colleagues at the FSF, home of the GNU project, released a video for this historic 25 year anniversary. It took twenty-five years, and a fight at the BBC over DRM, but now even a famous, accomplished actor like Stephen Fry is interested in the work that Stallman began way back in a year when Michael Jackson was a musical phenomenon and not merely a punchline of a joke.
These days, I have almost weekly moments of surprise that people outside of the Software Freedom Movement have actually heard of what I do for a living. When Matt Lee (whom I got to know when he came up through the ranks in the 2000's as I did in the 1990's as a new FSF volunteer) told me a few months ago that Stephen Fry had enthusiastically and immediately agreed to make this video, it was yet another moment of surprise. We now live in a movement that impacts everyone in the industrialized world, because nearly everyone who has access to electricity also must use a computer to interact with daily life. So many people are impacted by the problems of proprietary software that Stallman noticed in 1983 impacting his small developer community. Thanks to the work of thousands, we now have the opportunity to welcome new groups into a computing world that can give them freedom. I'm happy that the friendly face of a talented and accomplished entertainer and world-class actor is here to welcome them.
30 Jul 2010 12:37pm GMT









