More Controversy: the Joomla Extensions Directory (JED) and the GPL

Back in June of 2007, the Joomla project generated a community firestorm by announcing that, based on legal opinion, it felt that all Joomla extensions were required to be released under the GPL and that it would start to encourage third party developers to comply with that interpretation.

Detractors tried to paint this as some sort of policy decision. Somehow they never quite grasped what was being said, so I think it bears being repeated. Open Source Matters, Inc. (OSM), the non-profit charged with protecting the interests of the project, sought and obtained an opinion from legal experts well qualified in this area. Their opinion was specific, clear, and — this is critically important — while not based on precedent set by court decision, was based on several lawsuits that were settled just before going to court.

This needs some elaboration to make it as clear as possible: businesses who thought that this interpretation of the GPL was wrong, and who distributed proprietary attachments to GPL products, backed down when faced with going to trial. In my opinion, the only reason why a commercial enterprise would elect to settle a case of this nature just before going to trial is because they knew that they were likely to lose. When several suits get settled this way, all in favour of the GPL, they begin to carry significant legal weight.

So OSM had two choices: communicate the requirement that extensions be GPL or adopt another license. Considering that Joomla formed as a direct result of the actions individuals who believed in the GPL, there was really only one alternative.

Free Software — as defined by the GPL — may embrace open source, but it is not the same as open source. It is designed to give users rights and freedoms that go well beyond access to the code. For developers the interpretation is simple: get on board or use code that has a different license, period.

At the time of the GPL announcement, I had decided that Joomla was the best CMS for my web development business. I had just begun to get involved with the project, and had at best contributed a patch or two. As a small business, source code is our biggest asset and I will admit I had some concerns about giving up the ability to protect that asset. But at the same time I am not so hypocritical that I think somehow we have the right to protect our code, while using hundreds of thousands of lines of code written by others without compensation.

A few days ago, the project announced that the Joomla Extensions Directory was only going to list extensions released under the GPL (JED to be GPL Only by July 2009). Predictably, this has created another round of controversy.

The difference here is that while the original position was based on legal opinion, this decision is more one of policy. The project is choosing to not promote extensions that violate the terms of the GPL.

When the first announcement was made, my Joomla involvement had just begun. Now, I’m one of the more active members of the project and part of the Development Team. While not part of the Core Team or OSM Board, which are the bodies responsible for the governance of the project, I have made some significant contributions. Every time someone downloads and installs Joomla, they benefit in some small part from my work.

It is in this context that I’m going to respond to several reactions to the JED announcement:

ReactionResponse
Joomla needs commercial extensions in order to survive and gain acceptance from business customers.
  1. Similar dire claims of the project’s demise were made when the GPL compliance announcement was made. Not only have they not come true, Joomla is more active and vibrant now than it has ever been, so FUD to that.
  2. The vast majority of extensions are already GPL, including some of the best extensions for 1.5.
  3. I successfully use the argument that the GPL protects a business from the failure of a small development shop without introducing new risks. Any business that backs away from GPL software as a user simply hasn’t been sold to properly.
I can’t make money if my extension is GPL.
  • Leaving aside the fact that there are many companies that disprove this, anyone making this argument is saying that they can’t make money without ripping me off! Start paying me and others for our contribution to your success and then I might be slightly sympathetic.
  • Maybe we need an alternative licensing model. Pay OSM US$50,000 to $100,000 for a Non-GPL Joomla site license and feel free to install as many commercial extensions as you like. Don’t install one single third party GPL extension without paying them, though!
  • Find an extensible commercial CMS and go write proprietary code for it. If your business is capable of paying for the development licenses and the training and certification courses you’ll need to get started, then you might in fact have a viable proprietary software company. If not, stop whining.
  • If you’re that great, you don’t need Joomla. Go write your own CMS.
Policy makers in the Joomla project are out-of-touch idiots and something should be done!
  • Fork it. Go on, I dare you. Everybody who is currently working on the code base understands and supports the GPL. The people who didn’t left shortly after the 2007 announcement. If you like the code, but don’t like the policies, go do it your way.
  • Personally, I think people who think they can get fair value for their work without also giving the project similar value (say, based on revenue per line of code) have ethical problems. So not only do you want to rip off the users who buy your extensions by denying them their legal rights under the GPL, but you want the Joomla project to help you do that. Good luck.
  • The site www.extensionprofessionals.com (running Joomla 1.0 (snicker) way to innovate, guys) offers proprietary extensions. This site is sponsored by the “Joint Commercial Developers Association” (jcd-a.org), comprised mostly of people who found Joomla’s GPL interpretation unacceptable. In a year or two, we’ll be able to measure the success of this extension site by comparing it with the JED. Should be good for a laugh or two. Take a look at the frantic activity on jcd-a.org for a peek at the future. The word joint comes to mind, but not in the context of a collective effort.
Someone will fork my code and release a better version three weeks later.
  • If your business model is predicated on code that’s so weak that someone can make significant improvements on it in three weeks, and that someone isn’t you, then maybe you should consider either a different business model or another career.
  • Let’s make it very clear: the GPL makes it difficult to earn a living by flaunting mediocre code without some other kind of value add. If you can’t come up with a proposition to add value, consider another business. Really. It’s just not going to work.

From my viewpoint, a great part of Joomla’s success has been as a direct result of its commitment to empower the end user via the GPL. Moreover, the principles of the GPL have attracted much of the talent that the project currently has. I see companies that don’t embrace these values but who continue to earn a living thanks to the project as nothing more than parasites. I’m certain that once the leeches have been pried from the JED, it will grow more quickly and become more vibrant than ever before. Time will tell.

Our Legacy: Environmental Barbarians

Almost everyone who looks at the history of North America through the lens of current times is appalled at the brutal decimation of native populations, at slavery, and at the complete absence of any concept of human rights.

It occurs to me that 50 to 100 years on, survivors of the environmental apocalypse will look at us in a similar way. Sadly, we’ll be even more culpable. We’ve known the planet was destined to become overpopulated with humanity for at least 30 years, and our response has been indistinguishable from nothing.

Polar ice caps are disappearing more quickly than even the most alarmist had expected. Climate change wreaks trillions of dollars of damage on our economies. Critical ecosystems collapse and even species we deem to find attractive border on extinction. Meanwhile, we worry about bailing out car manufacturers.

It looks to me like we’ll just keep on trying to get by and maintain our “standard of living” until there’s a real environmental crisis, until we pass the “tipping point”. Then we get to try to put our lives back together in the face of huge population migrations, limited food resources, war, disease, and eventually feudalism. Then we’ll “buy locally” — there won’t be any other choice!

Our legacy will be that we’re the ones who ushered in the Second Dark Ages. Our barbarism will make the early history of the continent look like innocence. The worst, the saddest, part is that it might be too late to change a thing.

Simplifying Joomla Template Layouts

Since the early days of Joomla 1.5, component layouts have bothered me. First there’s the problematic nomenclature (which I’m probably using incorrectly). Layouts are component-specific snippets of HTML and PHP logic that generate the actual code (usually HTML) that goes to the target device. A template can override the default layout, which is just one of the many powerful features that give Joomla sites so much flexibility.

My biggest problem with layouts is that they typically embed too much logic. Why should a layout be determining what to do if a category description isn’t present? Worse yet, why does it have to check access to see if an article body should be displayed or not? Surely the actual view should be responsible for this sort of thing, and the layout should be strictly concerned with how to present the information that’s available.

The other problem is that layouts are ugly beasts. Most layouts need to flip between HTML and PHP dozens of times, just to do the most simple thing.

I’m not exactly a patient person. Maintaining the existing layout code in the Joomla core components is bothersome enough, but recently I started doing extensive work on a third party component, adding my own view in the process. That’s when that familiar snapping sound resonated in my head. Always a sucker for diversions, I decided to follow the tangent and see if I could improve Joomla layouts.

It took about triple the expected effort, largely because the initial results were pretty exciting, and I decided to do more than a hack job. The result is JTML, and the results are described in the white paper Simplifying Joomla Template Layouts.

Every once in a while, the idea of creating a simple language for creating Joomla extensions comes up, but that is a very big job indeed, and there are many, many other things to do in the project. So it remains a bit of a dream. I’m hoping JTML is one small step in that direction.

How to: Ubuntu PHP Remove Suhosin

One of my projects for the “holidays” is moving one of my servers from Gentoo to Ubuntu. During planning for this, I noticed that the Ubuntu version of PHP5 includes Suhosin. That’s a problem.

The problem with Suhosin is that it’s designed to stop sloppy applications from doing bad things. I’m sure it does a reasonable job of that, but in the process it can interfere with good applications (see examples for Joomla). Since I’m in the business of writing good applications, Suhosin is a bad idea. Worse yet, it can provide a false sense of security, since it can’t deal with anything except typical PHP errors. As far as I’m concerned, this class of “security blanket” provides false comfort and is no replacement for auditing and testing.
(more…)

How the Liberals Should Elect a Leader

There is no question that the Liberal Party of Canada needs to pick a new leader, and fast. Not only do they have to do it quickly, but they have to do it right.

While Michael Ignatieff might be the right choice, and might even be the winner at a convention, Bob Rae’s observation that a process of installing him is “undemocratic” carries some weight. Simply installing Ignatieff based on polling results and some “consultation” with riding leadership may be prudent, but it’s not smart.

I put “undemocratic” in quotes for two reasons. Firstly, the word has been horribly misused over the past few weeks. All the political drama we have just experienced has been nothing but democracy. Those who call it otherwise are merely uninformed. Anyone who says “I voted for Harper, not Dion” is in desperate need of education on the political system that this country uses. On the second count, the normal process that the Liberals use to pick a leader is anything but democratic. To anyone who wants to argue this, I merely observe that this was the process that got Dion the leadership in the first place.

The “transferable delegate” system might make for great television, but it has clearly been demonstrated that not only is it out of touch with the party grassroots, it doesn’t pick the best leader. Time to chuck this tradition along with Mr. Dion. This time, let’s lose the baby and the bath water.

This gives the Liberals an amazing opportunity to demonstrate that there is a fix for the problem. What they should do is quickly set up an online leadership voting system. They should mail cards with a security PIN code to every party member in good standing. Party members should then be required to combine this PIN with some piece of personal information that’s on file, such as the member’s phone number and year that they joined the party. There will need exception handling process for those who have problems, but I guarantee that they’ll get a democratically elected leader in a short period of time and at a lot less cost than a convention.

The catch to all of this is that we’re talking about a party that can’t manage to get a critical video for a national address done on a reasonable schedule, and even then they can’t do a job that wouldn’t embarrass a grade seven student. It’s painfully evident that the Liberal communications people are under siege at best, or woefully incompetent at worst.

Still, an online leader selection process would be relatively straightforward. I’d even be willing to help implement such a system, because I think real democracy is important. Then we can talk about moving federal elections to a Single Transferable Vote system (in particular, BC-STV) and then maybe we can get on to building governments that are formed from meaningful, relevant, and functional coalitions. It is possible. (more…)

TD Bank Tries an End Run Around Site Tracking Blockers

I’m well aware of the value of site analytics. Most of my sites make extensive use of them. But at the same time I’m aware of a user’s absolute right to not be tracked, be it anonymous or not. When it comes to my personal information, I’m usually happy to let most sites drop in a statistical tracking cookie, but I almost always set the lifetime of those cookies to “session only”.

Basically, I’m happy to let someone know how I navigate their site, because that information is likely to result in improved usability. What I don’t like is disclosing how many times I visit a site over a period of time, and what my multi-visit user patterns are like.

With browsers like Firefox and now even Internet Explorer providing easy tools to manage cookie acceptance and lifetime, more and more users who don’t want to be tracked are limiting cookies. This is giving marketers a more challenging time and skewing their statistics. Poor babies.

Some marketers are fighting back. What’s not commonly known is that Adobe’s Flash Player lets sites store cookie-like information as well. Now Adobe hasn’t quite caught up with the concept of individual liberties, so the default configuration of the Flash Player is to allow local storage without any explicit user permission. Adobe pretty much has a monopoly when it come to this sort of thing, so there’s little incentive for them to change.

So now marketers who claim to seek to improve customer service have a method where they can gather data even if their customers have taken explicit steps to prevent it. News Flash: That is NOT good customer service! It’s really rather offensive customer abuse.

Some time in the past few months, TD Bank decided to join the ranks of companies who have elected to bypass their customer’s wishes. I recently connected to my online banking site, and got asked for permission to allocate local storage to an invisible bit of Flash. So I cranked open the page and found this link: https://easyweb46w.tdcanadatrust.com/dojo111/dojox/storage/Storage.swf?baseUrl=/dojo111/dojo/. At least its name reflects its purpose.

Anyone familiar with the big Canadian banks has become accustomed to dealing with these arrogant behemoths, protected from significant international competition by legislation, and reading from some version of a dictionary where the meaning of “service” is very different from the commonly accepted definition. Really the only surprising thing is that they haven’t found a way to charge me 25 cents per byte of information that they want to store on my computer.

But you don’t have to be subject to corporate whims. These things are configurable. Don’t go looking through your browser, plugins or program settings for the control panel, though. Follow this link to your Flash Player control panel. This looks like a screen shot of what a control panel might look like, but don’t be confused: it’s a live presentation of your current settings. Click on the second tab, “Global Storage Settings”. There’s a reasonably good explanation of the settings below the panel, but if you move the slider to the left until it reads “None”, then every site that tries to save data in flash will have to get your approval first. If you don’t want to be asked, set the “Never Ask Again” check box. Then go to the last tab, “Website Storage Settings” to take a look at which sites have left tracking codes on your computer. Delete all the ones you don’t trust.

Now you have control of your information again.

Liberal Hopeful Bob Rae Expects Three Years of Recession?

Bob Rae announced that he will be seeking the leadership of the Liberal Party today. “I’m running because I believe I have the judgement, the character, the values and the experience to lead at a very difficult time in the life of our country,” said Mr. Rae.

It’s not exactly clear which leadership he’s talking about. If he had said “a very difficult time in the life of our party,” I would probably be in agreement. He and Michael Ignatieff are both pretty strong candidates, but I think Mr. Rae stands a better chance in a federal election. I find Ignatieff to be a little distant… he might very well make the best Prime Minister, but that’s no good if you can’t win an election. I also don’t think Mr. Rae’s much-discussed stint as Ontario premier is anywhere near the liability that it’s been made out to be.

But watching today’s press conference, I got the distinct impression that Rae is saying that he’s got what it takes to be PM during hard economic times. So he’s got some magic plan to win the leadership race and topple Harper’s government in the next nine months or so — that would be quite a feat — or he expects the recession to last a good three to four years, the most likely time we’ll be called to the polls again.

Now this downturn may very well last that long, but it sure doesn’t look good to come out looking like that’s your expectation. Looks like poor judgement, which makes the statement self-contradictory. (more…)

Joomla 1.5.8 is… is what??

Shortly after the release of “Joomla!” 1.5.8, I found myself in this release announcement on techcebu.net. It appears to be a bad case of double-translation, from English to Italian (or perhaps Hebrew) and back to English again. The text was just too hilarious to not repost.

11Nov JOOMLA 1.5.8 RELEASED

Joomla 1.5.8 Released

The Joomla Project is entertained to foretell the unmediated availability of Joomla 1.5.8 [Wohnaiki]. This promulgation contains a sort of fault fixes and digit moderate-level section fixes. It has been around digit months since Joomla 1.5.7 was liberated on Sept 9, 2008. The Development Working Group™s content is to move to wage regular, regular updates to the Joomla community.
Download
Click here to download Joomla 1.5.8 (Full package) »
Click here to encounter an update package. »

Instructions

* New installation and technical requirements
* Upgrade from an existing Joomla 1.5 version
* Migration from Joomla! 1.0.x

Want to effort intend Joomla? Try the online demo. Documentation is acquirable for beginners.
Release Notes

Check the Joomla 1.5.8 Post-Release Notes to wager if there are essential items and adjuvant hints unconcealed after the release.

View instance release notes for Joomla 1.5.7 or release notes for Joomla 1.5.6.
Security

* Two moderate-level section issues were immobile in this release:
o Default filtering for content
o Filtering for Web Link descriptions

For additional information, visit the Joomla Security Center.
Components

* Articles: Remove brackets around Last Updated fellow and time, Start Publishing fellow corrections for another than UT1 00:00, impact counts precise for Articles, adding a expanse after a draped telecommunicate address
* E-mail addresses: Correctly draped when presented in Section and Category descriptions
* Categories: Edit picture aright shows for Articles without Title links, Print picture precise today on prototypal tender for Blog Layout
*
Sections: Plural and signifier modify correction, Category unification right ended, Router changes reverted to edition 1.5.6 so Article ID does not attach to the Article slug
* Frontpage: Article naming correction, rectified sort of Links
* Contacts: Image pass rebuke when Image Directory is configured
* RSS Feed: Corrected spelling of Category in Category feed
* User: Added isInternal checking on referer values
* Weblinks: Language strings

Modules

*
Feed: Target concept validation, module progress correction
* Login: ItemID is cured on redirect
* Menu: Changing Menu Link Type today functions properly, Section Language string, Article Reset fix working
* Related Items: Keyword matched functions aright and filters characters appropriately
* Stats: Corrected Time
* Sections: No dominance constant entireness correctly
* Search: Form validates aright for Transitional xHTML

Legacy

* Return evidence additional for Legacy Menu Check

Templates

* Beez: Lengthened E-mail Content Popup, Search fix today entireness when pressed, countersign set entireness correctly, corrections to Beez HTML folders, User info tender corrected
* JA_Purity: Added absent module strings

Administrator

* Console: Added “Welcome to Joomla!” aggregation and Joomla Security RSS feeds to Administrator Console
* Installation: Proper redaction of factor directories, choice entries for Templates and Languages are today precise for uninstall
* Media Manager: Changed choice for newborn sites to alter Flash multi-file uploader cod to contradictoriness with Flash 10
* Installation: Remove unclear nonachievement communication most module files for spreading installations, Administrator Modules today aright uninstall INI files
* Sample data: Updated programme feeds to saucer to liberated code accord sites, comprehensive corrections and updates to distribution content

System

* API: JFolder::files and JFolder::folders corrections for Search, absent Method additional to JRecordSet, Database Class aright quotes obloquy not using extend notation, JTableUser matches using the precise sort of fields
* Cache: Correct undefinable uncertain in Cache Class
* Language file: Corrected wording, precise artefact of PDF fonts autarkical of module choices, individual module progress corrections in en-GB.ini
* Menu: Performance improvements for sites with some schedule items
* Users: Temporary Users are today healthy to logout, bonded prescript crapper today be utilised when redaction statement details
* Added PHP 4 sympathy for isInternal checking

Statistics

Statistics for the 1.5.8 promulgation period:

* Joomla 1.5.8 contains:
o 71 issues immobile in SVN
o 26 commits
* Tracker state resulted in a gain modification of 4 astir issues:
o 65 newborn reports
o 130 closed
o 66 immobile in SVN
* At the instance the 1.5.8 promulgation was packaged, the tracker had 114 astir issues:
o 44 open
o 44 confirmed
o 24 pending

Joomla! Bug Squad

Thanks to the Joomla Bug Squad for their sacred efforts work reports, sterilisation problems, and applying patches to Joomla. If you encounter a fault with Joomla, find discover more aggregation here on how to inform the bug.

Active members of the Joomla Bug Squad during this terminal promulgation wheel include: Ian MacLennan and Mark Dexter co-leads; Airton Torres, river Zijlstra, Akarawuth Tamrareang, Alan Langford, suffragist Ferrara, Amy Stephen, saint Eddie, Elin Waring, Ercan Ozkaya, Charl camper Niekerk, Gergo Erdosi, Hannes Papenberg, Jennifer Marriott, Jens-Christian Skibakk, Jonah Braun, carpenter LeBlanc, Kevin Devine, Marijke Stuivenberg, Mati Kochen, Mickael Maison, Robin Muilwijk, prophet Moffatt, Shantanu Bala, Toby Patterson, and Wilco Jansen.

A hearty recognize to the newest members of the Joomla Bug Squad: Dan Walker, Eduardo Diaz, and Tibor Toth.

“IBM May Quit Technology Standards Bodies” WSJ Screams

Some days I wonder about the entire field of journalism. The quoted phrase above is from an article headline in the Wall Street Journal (September 23, 2008, they don’t deserve an actual link). The headline is not inaccurate, but it is close to the most ludicrously sensational interpretation of the facts that is possible.

This is what the actual IBM press release has to say on the point: “The tenets of IBM’s new policy are to: Begin or end participation in standards bodies based on the quality and openness of their processes, membership rules, and intellectual property policies.”

Thus an equally useless headline might be “IBM May Join Technology Standards Bodies.” I thought Journalism was supposed to add value for the reader, but it seems that even for otherwise reputable organizations, it’s really all about sensational headlines that add value to the advertising department. “Reputable” in this context is now officially meaningless. Sad.

I’ve noticed a lot of general criticism of standards processes over the past few weeks, and I think this release from IBM is largely responsible for firing up the discussion. For the most part, the criticism is justified. It seems that standards processes are either needlessly academic and somewhat out of touch with reality, or deeply buried in corporate politics and patent complications, which has a tendency to result in crappy standards. IBM’s policy release sort of touches on this with another tenet: “Collaborate with standards bodies and developer communities to ensure that open software interoperability standards are freely available and implementable.” The problem with this is that IBM seems to want to set itself up as some benign intermediary between the standards process and the people who need to use the standards. Call me silly, but it seems more appropriate that the developer communities should be an integral part of the standards process, not some second-hand “collaborative resource”.

The essence of the problem is funding. Participation in the standards process isn’t cheap. Not only does membership cost, but participants typically absorb the costs of time, travel, and communications. Standards bodies need a funding model that ensures accessibility based on merit and relevance, rather than dollars. I don’t know what that model is, but is can’t be based on revenue from selling standards documents, either. The prospect of having to pay real money in order to ensure compliance with a standard is, in most cases, equally ridiculous and stupid.

The Anatomy of a Security Breach

“Joomla!” had an extremely serious security issue arise earlier in the week. I’m pretty deeply involved in the project, and I happened to be on the Bug Squad chat when the news broke. The issue was not a SQL injection problem, as many sources have assumed but reported as fact. Ironically, it had to do with defeating a session security feature. The security problem was a programming error. “Joomla!” goes through extensive procedures to defend against SQL injection, and from version 1.5 onward, such a vulnerability in the core code is highly unlikely. [Extensions are another matter. I strongly recommend that users only install open source extensions that have either been audited or that have broad community support.]

Even though this problem caused a fair bit of damage, I’m very proud of how the “Joomla!” team responded to the problem. This was a worst-case scenario: the exploit was published with no advance notification, and it was dead simple to implement.

The first we heard of it was a post on the Dutch “Joomla!” forums. One of the Bug Squad team mentioned this in chat on August 12th at 15:50 EST. We immediately took steps to verify the issue, and then once confirmed, to remove the details from the forum post. A patch was made available for testing at 16:10. A full package release was made available for testing at 18:19. Announcement of the release was made on joomla.org at 18:57, and by 19:40 update packages were also available. That’s three hours and 50 minutes from report to full public release. If that’s not a record I’ll be surprised.

What is distressing is that a large number of security focused sites reported this as a SQL injection vulnerability, along with a variety of other erroneous or misleading information. Almost a week later, many have corrected their errors, but several have not. Considering that the “Joomla!” team responded so quickly, and that complete information was posted as the first item on the joomla.org web site before the exploit became widely known, this suggests that many of these sites simply repeated each other’s misinformation, rather than taking even the smallest steps to verify the report.

Granted a sample size of one event is not sufficient to draw conclusions, but if this is any indication of how “trusted” security information sources behave, then it is no wonder that whole security field has a serious credibility issue. These kinds of reports are extremely serious matters, with a lot of potential for damage. Certainly the timeliness of information is critical, but hopefully not at the expense of accuracy. The security community has a deep obligation to perform the simplest verification of facts before rushing to publication.

Mastodon