Ubuntu Linux Still Searching Google

Ubuntu has flim-flam-flapped back to Google for search.

Obviously, I think this is a good move. To recap switching to Yahoo for search would have alienated users because it’s a worse search engine, but more important would have overwritten people’s existing experience on upgrade.

In an email to the ubuntu-devel mailing list titled “Follow up to Default Search Provider Changes for 10.04Rick Spencer writes:

Each release we determine the best default web browser and the best default search engine for Ubuntu. When choosing the best default search provider, we consider factors such as user experience, user preferences, and costs and benefits for Ubuntu and the browsers and other projects that make up Ubuntu. Up until Ubuntu 9.10 these defaults have always been Firefox and Google. Earlier in the 10.04 cycle I announced that we would be changing the default search provider to Yahoo!, and we implemented that change for several milestones.

However, for the final release, we will use Google as the default provider. I have asked the Ubuntu Desktop team to change the default back to Google as soon as reasonably possible, but certainly by final freeze on April 15th.

It was not our intention to “flap” between providers, but the underlying circumstances can change unpredictably. In this case, choosing Google will be familiar to everybody upgrading from 9.10 to 10.04 and the change will only be visible to those who have been part of the development cycle for 10.04.

All thanks the Ubuntu Masters!

Government for the People Makes You Special

“It turns out that the International Intellectual Property Alliance, an umbrella group for organisations including the MPAA and RIAA, has requested with the US Trade Representative to consider countries like Indonesia, Brazil and India for its “Special 301 watchlist” because they use open source software.”

By Bobbie Johnson, “When using open source makes you an enemy of the state“, guardian.co.uk, Feb 23rd, 2010.

Canada is already “special”. We, Canadians, welcome these innovative countries!

WordPress 3 Coming Together

The delirious pace of WordPress 3 development has been delicious!

I’ve enjoyed not being able to keep up at all.

The sprint is on to feature freeze!

There’s going to be a patch sprint of sorts for 3.0 this week. Please grab a ticket, triage, patch or test:http://core.trac.wordpress.org/report/32. The feature freeze is March 1, so everything still on that report in 7 days from now will be punted to a future release.

There are a few incomplete tasks out there that need to get done to finish implementing new features (both small ones on that report, and the major 3.0 features). If you’re interested in helping but aren’t sure where you can, venture over to #wordpress-dev.

Andrew Nacin on wpdevel, Feb 22th, 2010

Jane Wells puts up a “Patches Welcome” sign on a “a handful of small UI enhancement tickets that are low priority for the hardcore devs, but that I’d still like to see make it into 3.0.” Jane will “try to post a couple of pet tickets each day throughout the sprint week that is coming up.”

Better, stronger, faster blog network creation and management will be huge!

Mostly I can’t wait for the twenty ten theme, and the slow death of the (poorly) justified text that may have been the Kubrick themes only shortcoming.

PS. Emphasis above and below (bold) is all mine.

PPS. WordPress 3 will look so good in the title of the next technical book you write ;-)

Wednesday, Feb 23, 2010 Update: Jane has posted “Menus, the Merge, and a Patch Sprint!“ with details on the WordPress Development Blog, including the tidbit that WordPress 3 will have much improved menu management.

WordPress Declaration of Independence

The WordPress Foundation is a charitable organization founded by Matt Mullenweg to further the mission of the WordPress open source project: to democratize publishing through Open Source, GPL software.

The point of the foundation is to ensure free access, in perpetuity, to the projects we support. People and businesses may come and go, so it is important to ensure that the source code for these projects will survive beyond the current contributor base, that we may create a stable platform for web publishing for generations to come. As part of this mission, the Foundation will be responsible for protecting the WordPress, WordCamp, and related trademarks. A 501(c)3 non-profit organization, the WordPress Foundation will also pursue a charter to educate the public about WordPress and related open source software.

We hope to gather broad community support to make sure we can continue to serve the public good through freely accessible software.

About Web page, WordPress Foundation

There are already a lot of great comments on the welcome post “Getting off the ground“. Here is a one of the many juicy comments made by Matt in response to a question posted there:

Sure, as a quick summary: [Wordpress.com and the WordPress Foundation] completely separate, but share a similar name and my involvement. One is for-profit, the other non-profit. They both have similar goals in terms, but the Foundation can take a long-term multi-decade approach to solving these problems without regard for short term profit, market conditions, or shareholders. I’ve always had a vision for two simultaneous approaches to the WordPress way, the heart and the mind, but it’s just now coming together.

Versatile and Elegant, WordPress, Democratizing Publishing

The combination of the elegant and versatile WordPress and the ground breaking Kubrick made that possible, turning the democratization of publishing from an idealized concept into a concrete reality.
Tina Daunt, “The Secret History of Kubrick, the Blog Theme That Changed the Internet“, Huffington Post, Jan 8th, 2010

Free and Open Source from the Roots Up

Free and open source from the roots up. “Open source” can be much more than a development methodology. For me, it also constitutes a world view that upends institutionalized notions of competitive advantage that saw their apex in the twentieth century.”

Excerpt from Paul Kim‘s “Why I Joined Automattic” published September 9, 2009.

Freedom by Abnel Gonzalez, Hosted on Flickr, CC by

Freedom by Abnel Gonzalez, CC by, Flickr Hosted

I’ve come to think of the people who build open source and free culture into their businesses as not only having the creativity and resolve to put their values at the core of their businesses, but also the foresight and humility to know that the future is always built on the past, that the future is outside of their control, but possibly not their contribution.

This is one of the main reasons I so enjoy working with Matt Mullenweg, Toni Schneider, the rest of the Automattic crew, and the WordPress.com VIPs and WordPress businesses I get to so regularly interact with. I’m ecstatic that Paul has joined us!

Everything In Our Power

WordPress is a community of hundreds of people that read the code every day, audit it, update it, and care enough about keeping your blog safe that we do things like release updates weeks apart from each other even though it makes us look bad, because updating is going to keep your blog safe from the bad guys. I’m not clairvoyant and I can’t predict what schemes spammers, hackers, crackers, and tricksters will come up with with in the future to harm your blog, but I do know for certain that as long as WordPress is around we’ll do everything in our power to make sure the software is safe. We’ve already made upgrading core and plugins a one-click procedure. If we find something broken, we’ll release a fix. Please upgrade, it’s the only way we can help each other.

Matt Mullenweg, September 5, 2009, “How to Keep WordPress Secure“,

Do read the rest of the potent post — articulate, insightful, and honest.

wp-content in Code is a Tell for Common WordPress Coding Mistakes

Regularly while reviewing themes and plugins, I’ll see URLs or paths that include ‘wp-content’. This is a often a hint of a WordPress coding mistake.

Consider this simple example:
<link rel="stylesheet" href="http://example.com/wp-content/themes/default/style-ie.css" type="text/css" media="screen" />

If as part of a migration or server change, WordPress ends up in a sub-directory this will break.

For file system based access, if I see ABSPATH . '/wp-content/ … things are likely OK, though if WP_CONTENT_DIR or similar are changed, this will also break.

I’m tempted to use the constant STYLESHEETPATH or is it TEMPLATEPATH? But, those are static variables initialized early in the WordPress run.

I’ve been meaning to write this article for a while. Serendipitously, when I went to write a first draft of it, Mark Jaquith‘s had just published “Force CSS changes to “go live” immediately“.

In the comments, demetris suggests using STYLESHEETPATH, but Will Norris quickly points out “sure, but you still have the same problem of bypassing any plugins that may be using the ’stylesheet_directory’ hook to pull the stylesheet from some place else entirely.”

Mark’s solution beautiful illustrates how to get the the URL location of the theme’s files and also directly the URL for the main stylesheet style.css:

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />

What Will describes is exactly what WordPress.com depends on. We have a similar, but much more complex solution to deal with the CSS in the content delivery network (CDN) going stale on updates, and also some web browser’s with their funky caches not keeping up. Our solution is both for WordPress’s front end and dashboard (also dealing with the various ways CSS can be called or @imported).

I do have one niggle about Mark’s solution, and it’s the same with most WordPress code out there, the use of bloginfo(). Strings within strings within strings within strings give me headache, so to ease readability and make it more verbose replace:

bloginfo('stylesheet_url'); with
echo get_stylesheet_uri();

bloginfo('stylesheet_directory'); with
echo get_stylesheet_directory_uri();

If you look up in the codex get_stylesheet_directory() you’ll see that would be the file system path, which is confusing given the behavior of bloginfo('stylesheet_directory'); returning the URL. This presents another reason why I favor the consistency of always using the specific getter function calls. Also, when I’m using bloginfo() calls, I have a tendency to get in a mind set where I think I’m directly retrieving the option in the database (accessing directly the info shown in wp-admin/options.php). By using the specific getter function, I remember that there are hooks (actions, filters) that might be triggered.

Some of the other areas, I see wp-content is in CSS style sheets themselves. Relative paths are almost always the correct solution.

Far more painful for me are the plugins that assume where plugins are, because this can take quite a bit of debugging to unwind the assumptions.

That is a topic for me to postulate on another day. Will has written the very relevant “WordPress Plugin Pet Peeve #2: Direct Calls to Plugin Files“. Duane Storey has taken a crack at a “WordPress Plugin Checker“  for these and other common problems (which I’m certain he would enjoy feedback on).

GPL Isn’t a Good License for Proprietary Software

Yesterday, I wrote about the clarification regarding WordPress Themes and the GPL (v2). Daniel Jalkut, who I featured as a personal WordPress Hero earlier this year, wrote one of the most interesting responses to “[WordPress] Themes are GPL, too“. Written on Thursday and temporarily taken offline by the fireball, Daniel’s “Getting Pretty Lonely” article laments that WordPress is GPL, and that any open source software that uses a GPL license discourages developer community participation.

At first this article left me very upset, maybe because I found it quite persuasive, but then I reflected that for anyone developing and selling proprietary software, Daniel’s is the only position to believe in and promote.

Commercial WordPress Themes’s PHP Code is GPL 2 Too

I’m hoping that my boss Matt Mullenweg sharing the legal opinion on “Themes are GPL, too” will put the issue to rest for the majority of the community (emphasis mime):

PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.

Even though graphics and CSS aren’t required to be GPL legally, the lack thereof is pretty limiting. Can you imagine WordPress without any CSS or JavaScript? So as before, we will only promote and host things on WordPress.org that are 100% GPL or compatible. To celebrate a few folks creating 100% GPL themes and providing support and other services around them, we have a new page listing GPL commercially supported themes.”

The legal opinion was provided by Software Freedom Law Center. Council James Vasile provided the findings and blogs at hackervisions.org . James also has posted about this on his own blog in the article “CMS Themes and the GPL“. As I commented there, my fear is:

“people read what they want to get out of it, and case law is the only thing that moves them.”

The legal finding and unchanged policy  are consistent with the intentions of the WordPress developer community and what has been promoted for the four years I’ve been involved.

Talking about licensing really is the suck. Matt’s article became necessary lately as some commercial theme developers have been very aggressive to WordPress community members, who have shared theme code as allowed by WordPress’s viral GPL v2 license.

It frustrates me when I read commercial theme developers complaining about people “stealing” their themes after the thousands of hours they have worked. They make no mention of the hundreds of thousands of hours others have worked on WordPress (counting on the  GPL protecting their freedoms ).

The incredibly exciting news is seeing the various commercially developed and supported themes embrace the GPL in the last 9 months. Theme collections like ThemeShaper (Thematic FrameWork), StudioPress (previously Revolution 2),  and WooThemes are all 100% GPL — those are just the ones I’m familar with, be sure to check out the theme offerings of the other commercially supported GPL themes.