A Donut's Blog

To content | To menu | To search

Open-Source

Entries feed - Comments feed

Thursday, March 22 2012

A Thursday Passage for March 22, 2012

(The title is a reference to a regular segment on the television program Sunday Morning on CBS that notes an historic event)

Thanks to a tweet from @stickerboy, I went looking to see what he was talking about. The most notable change is the retirement of the longest serving team member, Florian Messner.

I don't know much about Mr. Messner other than that he is German. Never met him, never really interacted with him in any kind of social context. But he served in the phpBB teams for a period of almost ten years, a most notable achievement. (I believe he joined the support team in October of 2002, and retired quite recently as moderator team leader.)

Messner is replaced by Paul Cammish, whom I did meet in London in 2008.

On a semi-historical note: I'm fairly certain that the longest serving active team member is now Nils (aka naderman) who joined up in 2005.

Wednesday, July 6 2011

Want to air your legal laundry? Become an OSS Project!

I've written a number of blog posts over the years about other people's legal problems. I mean, "WordPress" and "GPL" are two of my five most-used tags on this blog. But the key point is that I've done it on my blog, a resource for which I pay and on which no one should feel compelled to write a response.

Now look here: http://tracker.phpbb.com/browse/PHP...

I couldn't think of anything better to do than smile.

Monday, June 6 2011

Development in the Bulletin Board space

There are 32 bulletin boards listed in the Wikipedia article Comparison of Internet forum software (PHP). Only ten of them have had any kind of a release in 2011 so far. Of those ten, only XenForo and BeehiveForum have made feature releases this year.

To me, this is evidence that the products are mature. As "revolutionary" as XenForo was supposed to be, it seems to be running less than a thousand sites. The other commercial developers have made sure to copy the unique features for their upcoming releases (IPB 3.2 and vBulletin 4.1). But even though the effects of competition are meaning new features, I don't see many users clamoring for those features. Some, sure, but not even a major fraction.

Does the relative stagnation mean the products will slowly disappear? I suspect that many of the smaller free solutions will go away. The same for many of the smaller paid solutions. This is more of an effect of fewer individuals starting up their own sites to satisfy their egos.

Friday, January 14 2011

phpBB donates €5000 to Sensio Labs

I woke up this morning and checked Twitter.

skoop wait. what? *gasp* *faints* #phpBB just donated a whopping 5000 euro towards the #Symfony2 donation drive! These guys ROCK!

(link to tweet)

I'm glad Stefan and Fabien posted about this on Twitter and on their blog which describes the fundraiser (see the comments).

This isn't the first donation that phpBB has made to such an organization, but it may be the first one you've heard of - only because this one was publicized by the recipients of the donation. phpBB has traditionally reciprocated well to the organizations which provide services to it (Symfony, OSUOSL, and others).

Monday, January 10 2011

iOS App Store and the GPL ... and restoring VLC

phpBB people, especially Nils, know that I'm an advocate of the GPL for certain specific reasons. In this (rather lengthy) entry, I evaluate what went wrong, and I would do if I were a GPL-software developer faced with Apple's iOS terms of use.

Continue reading...

Sunday, November 28 2010

Shopping for Open Source

Frequent visitors to phpBB.com may note that I have retired from the phpBB teams after three years. Retirement feels good!

I'll be looking around at other open source projects, outside of the bulletin board space. This blog software, the PHP language, maybe even something in Ruby for the fun of it. This is my version of Christmas shopping!

Monday, November 15 2010

Commentary on Rails

"You know, object oriented stuff is kinda nice"
"You know, Rails is object oriented"
"Rails isn't Object Oriented. It's shit-oriented"

... comments from an anonymous, frustrated programmer (not me, yet)

Wednesday, November 10 2010

phpBB appears in "Map of Online Communities"

I sat looking at the 2007 edition of "Map of Online Communities" from XKCD tonight, and I realized I hadn't written about this yet.

phpBB has made an appearance in the 2010 edition of that map. Some might argue four times, but I'll only claim three occurrence. See the map

In the "forums" inset at the bottom-right, you'll find just to the west of CruiseCritic, and across a bay from BodyBuilding.com and something called Forocoches, you find Bokt.nl. Bokt is most likely the largest phpBB3 forum on the Internet, and certainly the largest phpBB3 site listed on big-boards.com. It is also the longest running phpBB board in the world.

Other phpBB boards appearing on the map include JLA Forum (apparently using phpBB2!), and Rus-Chat, neither of which I personally know much about.

The fourth board that some people might claim is Gaia, but I don't believe they are using phpBB any longer. The same also appears to be true of Jogos, which is listed on big-boards.com as using phpBB.

Tuesday, November 9 2010

The Switch

It seems like a reasonable time to update to Ubuntu 10.10. And actually use it this time. Right now, the ISO is downloading and I am running off of Ubuntu on a RAM disk. I've had an Ubuntu install on my system for years, but I've never really used it. But I've been living with Ubuntu evangelists for a long time. I'm giving in tonight.

Wednesday, November 3 2010

Adding a test suite to existing code

... is a pain. I wasn't at ZendCon this past week, but I read a lot of tweets about it, and a lot of comments on joind.in.

One of the sessions was by Stefan Priebsch and Sebastian Bergman, "Taming the Untestable Beast". They used a little bit of code written specifically for the purpose. One thing you'll notice about this code is that it is hardly a beast. The small physical size of this program makes it an interesting case study.

Stefan and Sebastian had a three hour window to work on this code and make it less of an "untestable beast." My understanding is that they were successful. But I'd like to consider the point that the beast they were working to tame looks pretty good at first glance. The largest component of the beast is the UserController. The whole file is 44 lines, and the code is contained in a nice class. They even have a nice test suite for it.

I don't want to recreate the session, but it can be instructive to sit down for 20 minutes and list deficiencies in the beast. Once the problems are spotted, solving them becomes considerably easier.

Monday, October 25 2010

Rails Routes and REST

There was a discussion about how this worked earlier today, and I thought I would take the liberty to explain.

Rails respects REST. That is, distinctions are made between GET, POST, HEAD, PUT, and DELETE requests. More Details.

Rails maintains a routing table to keep track of what's what. This is accessible with rake routes. The following output is only partial.

       accounts_login GET    /accounts/login(.:format)        {:controller=>"accounts", :action=>"login"}
     accounts_private GET    /accounts/private(.:format)      {:controller=>"accounts", :action=>"private"}
accounts_authenticate        /accounts/authenticate(.:format) {:controller=>"accounts", :action=>"authenticate"}
      accounts_logout        /accounts/logout(.:format)       {:controller=>"accounts", :action=>"logout"}
         competitions GET    /competitions(.:format)          {:action=>"index", :controller=>"competitions"}
         competitions POST   /competitions(.:format)          {:action=>"create", :controller=>"competitions"}
      new_competition GET    /competitions/new(.:format)      {:action=>"new", :controller=>"competitions"}
     edit_competition GET    /competitions/:id/edit(.:format) {:action=>"edit", :controller=>"competitions"}
          competition GET    /competitions/:id(.:format)      {:action=>"show", :controller=>"competitions"}
          competition PUT    /competitions/:id(.:format)      {:action=>"update", :controller=>"competitions"}
          competition DELETE /competitions/:id(.:format)      {:action=>"destroy", :controller=>"competitions"}
             accounts GET    /accounts(.:format)              {:action=>"index", :controller=>"accounts"}
             accounts POST   /accounts(.:format)              {:action=>"create", :controller=>"accounts"}
          new_account GET    /accounts/new(.:format)          {:action=>"new", :controller=>"accounts"}
         edit_account GET    /accounts/:id/edit(.:format)     {:action=>"edit", :controller=>"accounts"}
              account GET    /accounts/:id(.:format)          {:action=>"show", :controller=>"accounts"}
              account PUT    /accounts/:id(.:format)          {:action=>"update", :controller=>"accounts"}
              account DELETE /accounts/:id(.:format)          {:action=>"destroy ", :controller=>"accounts"}

When Rails sees an HTTP GET request to /accounts/new, it will run the "new" method in the "accounts" controller. If it sees an HTTP POST request to /competitions/, it runs the "create" method in the "competitions" controller and so forth.

This is how the HTML forms get connected up. The form has a submit action of /competitions. I extracted that tidbit from this line:

<form accept-charset="UTF-8" action="/competitions" class="new_competition" id="new_competition" method="post">

When the "Create Competition" button is pressed, the web browser makes an HTTP POST request (as defined in the form's method parameter) to /competitions. Rails looks at that and compares it to its routing table.

Hope that's a reasonable explanation.

Friday, October 1 2010

Rails: Where's the Good Docs?

I've been using PHP for a really long time. The main point that attracted me to PHP was the manual, which is by all accounts excellent.

So I began trying to learn Rails in the last few weeks. While there are a number of decent, or even good, tutorials on various topics, the actual documentation seems to be lacking. I've been using http://api.rubyonrails.org/, but it seems to be very deficient. Not searchable and hard to navigate. Oh, and a large number of methods have no documentation at all. For example, the session has six methods, only one of which has anything more than an argument list.

Is there something more I'm missing? Because the time wasted searching all over God's Green Internet for answers to questions like "what does ynaqdh mean?" is getting to me.

Monday, September 20 2010

Documenting an old Rails version

I was told that I needed to install Rails2 to work on a project. (Note: Rails3 was released some time ago.)

The documentation was all updated for Rails3. This is good, if you're wanting to use Rails3. It turns out this is very bad if you want to use Rails2.

I started with the getting started tutorial. The first problem I encountered is in the "assumptions" section. I installed Ruby 1.9.2. I then went to install RubyGems. It refused to install. So I tweeted. I actually got help (something I wasn't explicitly looking for) from @luislavena, who actually works on making Ruby more Windows friendly. One of the blog posts in his wiki took about 5 words to note that RubyGems is bundled with Ruby 1.9.x.

Well, problem #1 solved. I skipped the second point of the getting started tutorial purely for its irrelevance to the task at hand, and its length. I ran gem install rails -v 2.8.7, which worked fine. The next step in the tutorial said rails new blog would create a project called "blog". Wrong. It created a project called "new." Turns out this syntax changed between rails2 and rails3.

The next rails command was bundle install. This gave an executable not found error. "bundle" is a separate gem, and was not included by default. This took some Bing-fu to figure out.

And finally, I hit step four, to see if it actually worked. It didn't. rails server did not exist in rails2. The rails2 equivalent was ruby script/server.

At this point, I can only pray that the actual RoR code is compatible across Rails versions...

Saturday, August 28 2010

Open-Source Defined (by a sexagenarian)

From a brand-new textbook, I give you the paragraph on open-source software.

Open-source software is becoming extremely popular. An open-source software product is developed and maintained by a team of volunteers and may be downloaded free of charge and used by anyone. Widely used open source products include the Linux operating system, the Firefox Web browser, and the Apache Web server. The term open source refers to the availability of the source code to all, unlike most commercial products where only the executable version is sold. Because any user of an open-source product may scrutinize the source code and report faults to the developers, many open-source software products are of high quality. The expected consequence of the public nature of faults in open-source software was formalized by Raymond in The Cathedral and the Bazaar as Linus's Law, named after Linus Torvolds, the creator of Linux [Raymond, 2000]. Linus's Law states that "given enough eyeballs, all bugs are shallow." In other words, if enough individuals scrutinize the source code of an open-source software product, someone should be able to locate that fault and suggest how to fix it. A related principle is "Release early. Release often" [Raymond, 2000]. That is, open-source developers tend to spend less time on testing than closed-source developers, preferring to release a new version of a product virtually as soon as it is finished, leaving much of the responsibility of testing to users.

Whoa. Talk about a disjointed paragraph. I think he says that open-source projects are both unstable (because of fast release cycles and less testing) and of high quality (this is explicitly stated).

Excerpt from Schach, "Object Oriented and Classical Software Engineering", 8th edition, pp. 23-24. As this is a few words out of a 700-page book, I don't suppose I'll have any rights issues.

Friday, August 20 2010

Frameworks and Open Source

Stefan Koopmanschap made a very interesting point in his talk this morning at Libertyvasion.

None of the significant open source PHP projects (WordPress, Joomla, Drupal, phpBB, MyBB, OSCommerce, OpenX, blah, blah, blah) are written based on any of the open-source frameworks which are available.

I'd like to have a discussion on why that is.

I'll opine that PHP frameworks are a relatively new phenomenon. WordPress, Joomla, Drupal, phpBB and MyBB are all using really old codebases (I'm not familiar with the code bases for OSCommerce or OpenX). Symfony 1.0 was rolled in 2007, and none of those softwares have received a complete rewrite since then.

But your thoughts?

Thursday, August 19 2010

Mea Sucka (for bad dinner conversation, of course)

As I'm sitting at Libertyvasion today, I saw this blog post from John E. Dunn. His supposed "anti-open-source" stance isn't really even his fault. The white paper on which his reporting is based is an indictment of open source software simply because there is no equivalent research to compare it to in the closed source world. "92% of Joomla! installs have some critical vulnerability" sounds high, even if some equivalent research would find that 95% of installations of TargetCMS have a critical vulnerability. The average reader of the research would probably guess 30 to 50% of installations of any software is out of date, not 90% or higher.

So I'll keep talking about open source software, politics, and religion with the phpBB folks who have gathered in New York this week.

Reference

Friday, July 23 2010

There will be no lawsuit ...

via @guywy

Chris Pearson has decided that the GPL is good enough for Thesis, according to his Twitter page.

So all of the legal speculation from folks like me last week was for naught.

It was fun, thanks for playing.

Wednesday, July 21 2010

Another Community Struggles with Licensing

Hidden away in the MyBB Blog, a significant announcement was made: MyBB will now be licensed under the LGPL. It will take effect with the MyBB 1.6.x release.

Why choose the LGPL? Well, they were in the same position as MODx, which I blogged about just a few hours ago. They didn't want to force their modification and theme authors to license their works under the GPL (or a compatible license).

I was surprised to read this, because it was only recently changed from a proprietary (but still quasi-open source) license to the GPLv3. It seems like we might be seeing a trend.

Reference

Tuesday, July 20 2010

On Enforcing the GPL

CalEvans tweeted earlier today:

CalEvans Hmmmm...modx seems to have a corner on the clue market http://thrash.me/tech-and-modx/modx...

(Referencing the MODx CMS of course.)

In the linked blog post, Ryan Thrash, Chief Executive Officer of MODx writes that, although they feel they would be within their rights to force extension authors to use the GPL, they have no plans to at this time.

How reassuring. Not.

Project leaders come and go. As they do, forces for and against strict adherence to the license (the GPL, in MODx's case) will ebb and flow. The sentiment at Joomla! was highest 3-4 years ago. The WordPress community has been rocked by this debate in the last few weeks. And apparently MODx has not gone through one of those peaks in a while.

They may never, I don't know. But I do know if I were a non-GPL component developer for any GPL software, I should be aware that my business is never immune from threats over license non-compliance. (Threats are possible whether or not I have done anything actually in violation of the license, as discussed at my previous post on "Derivative Works".)

Of course, personally, I would never be a non-GPL component developer for GPL software ;-)

Thursday, July 15 2010

"Derivative Work" - What can it mean for software?

Every couple of years, there arises a dispute over what the GPL does and does not require.

Three years ago, it was Joomla burning its bridges with SMF.

This month, it seems to be a debate between Wordpress and its theme authors.

Both revolved around a dispute over the meaning of the term "Derivative Work," as listed in section 0 of the GPLv2: This License applies to any program ... The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law:

When trying to put together an informed opinion, you find copyright law doesn't seem to fit the situation. In example after example, derivative works are said to include a significant portion of the original within them.

Hold the Bus

I thought the legal scholars at the FSF and the SFLC said that a file which makes even a single call to a GPL-licensed function in PHP means that the calling file becomes a derivative work. How does that sync with the idea of including a significant portion of the original? Well, it doesn't.

What Is Software?

For the above paragraph to be true, you have to agree that software is wholly defined by the source code which makes it tick. From the point of view of a bridge or theme author, I'm really not using any significant portion of the software. I'm copying 20 lines from the core to bootstrap the environment or I'm making a call to output a list of some data. If I'm using less than 1% of the code which is covered by the GPL in this theoretical non-GPL project, surely they can't claim that this is a derivative work, right?

Well, this is (from my point of view) the unsolved mystery. If the courts decide that the source code is the end-all-be-all, then suddenly this derivative work business is over. If we look at a certain ratio of included source to total source (in the original work) as fair use, and not bound by the terms of the GPL, then any contributor who wants to use the WTFPL or the Apple iTunes license, they would be free to do so.

But I was once told that software and hardware were inseparable. So let's say that the court looks at this from a non-engineering point of view, and feels that more than the source code itself needs to be considered. The litmus test might be whether or not the supposed "derivative work" has any value without the original work. Themes and bridges would definitely fail this test, as would any software designed to work with some other software. The courts could also decide that the complete state of the finite state machine (computer) which the software is running on should be considered. This seems to be what the SFLC is banking on, based on their response to WordPress.

These legal opinions seem to be floating around without any case law to back them up, so the definitions remain very much up for debate. As far as I've been able to find, there have been no cases involving the definition of "derivative work" in software which have been ruled on by a judge and/or jury in the United States or elsewhere. '1

The bombshell

Marco Tabini wrote about this issue on his blog earlier today. He mentioned that all this analysis is silly. I think he's mostly right. If WordPress Foundation, Open Source Matters (responsible for Joomla!), or any other vendor of GPL-licensed software really wants to resolve these issues with finality, file suit.

It might be a disaster for your product and your community, but it would aid the FOSS universe. Settling the "derivative work" question (even if only binding in the United States) would bring considerable value to the projects who would still be standing.

'1 http://perpetualbeta.com/release/2009/11/why-the-gpl-does-not-apply-to-premium-wordpress-themes/ does cite "Galoob v. Nintendo, 1992". However, here, the court's opinion seems to revolve around how the Galoob product does not permanently incorporates a Nintendo game and is therefore not a derivative work. The question of software derivation in the face of an open-source climate is not addressed to my satisfaction. Also, if the DMCA existed in 1992, Galoob would clearly have been found liable under that statute.