Daily Digest for February 11th

Filed in Lifestream
facebook (feed #3)
Chip Bennett Chip Auditing WordPress Plugins for License Information - http://bit.ly/drzBjl..
facebook (feed #3)
Chip Bennett Chip Only 26% of plugins by @photomatt, @markjaquith, @westi, @ozh, @Viper007bond in #wordpress .org repo disclose license http://bit.ly/cjfJU1..
facebook (feed #3)
Chip Bennett Chip Dear Facebook: I don't so much mind the new layout. Really, I don't. However, I absolutely freaking DETEST the News Feed. I always have. I use Status Updates as my default view. At least I *did*, until you (once again) usurped that preference and forced your stupid News Feed (with it's day-old status updates) upon me. Restore the ability to use Status Updates as the default view. I insist..
facebook (feed #3)
Chip Bennett Chip Dear Facebook: Oh, now *this* is a good one, too. You now, by default, only display updates from 250 of my friends? (And worse: you don't even tell me about it?) Why do I have to change a setting (News Feed -> Most Recent -> (scroll to bottom) -> Edit Options) just to be able to see updates from *all* my friends?.
facebook (feed #3)
Chip Bennett Chip Goodnight, Twitter-land. Thank you for my most-ever-commented blog post. I promise tomorrow's blog post won't be quite so controversial....

Haloscan Discontinued: Why NOT to Use Third-Party Services

Filed in Web DevelopmentTags: Geekery, Haloscan, Plugins, Web Site, WordPress

When I first started blogging many years ago, I used the Blogger platform, which I imported to my own domain using FTP (so that anyone reading my blog would see it as www.chipbennett.net). At the time, Blogger's commenting system was rather rudimentary, so I opted to use a third-party comment management system called Haloscan.

Interestingly, due to developments over the past couple of months, had I stuck with this arrangement, I would be in serious trouble. Recently, Haloscan was bought by Echo, which has announced that Haloscan is being discontinued in a matter of days. Likewise, Blogger has recently announced that it is discontinuing support for FTP importing of Blogger-hosted blogs to third-party domains.

Fortunately, I long ago left Blogger for the infinitely better self-hosted WordPress. Thus, even though Blogger has implemented a replacement service - their Custom Domains feature - and therefore the change would be minor, I don't have to worry about it at all.

More problematic, however, is the announced discontinuation of the Haloscan commenting system. When I first moved to WordPress, I continued to use Haloscan, which I had been using on Blogger. At some point, I decided to make the jump to native WordPress comments - but I still had several hundred comments hosted by Haloscan.

At the time, I was unable to export those comments from Haloscan, as such exports required the purchase of a Haloscan Pro account. So, I modified my blog theme to account for the old Haloscan comments, and kept a hybrid system.

Now, however, with the announced discontinuation of Haloscan, my hand was forced. Fortunately, Echo offered the option of converting to a (paid) Echo account, or exporting Haloscan comments. I quickly exported my comments, as I had no desire to pay for something that I was doing natively from within WordPress.

Thus, the problem became one of how to import several hundred comments into my WordPress database? Fortunately, this script came to the rescue, with a slight modification provided by the script developer. Using the provided script and the export.xml file provided by the Haloscan export, I seamlessly pulled all of my several hundred Haloscan comments into my WordPress database.

If you find yourself facing the same situation, the above script should help you as well.

Importing Blogger-Integrated Haloscan Comments

If you need to import Blogger-integrated Haloscan comments into your WordPress installation, follow the instructions provided by the script author, at the above link.

Importing WordPress-Integrated Haloscan Comments

If you, like I did, integrated your Haloscan comments directly into your WordPress installation, do the following:

  1. Download the script.
  2. Replace lines 77-81 of the script with the following code:

    $meta_records = $wpdb->get_results("select * from $wpdb->posts");

    foreach ($meta_records as $meta_record) {
    $blogger_to_wordpress[$meta_record->ID] = $meta_record->ID;
    }

  3. Upload the modified script file to www.domain.com/wordpress/wp-admin/ (where domain.com is your domain name)
  4. Export your existing Haloscan comments by logging into your Haloscan account and following the instructions provided.
  5. Upload the resulting export.xml file to www.domain.com/wordpress/
  6. Using your browser, go to www.domain.com/wordpress/wp-admin/import-haloscan.php
  7. Click the "OK" button to perform the import.

If your experience is like mine, you may get an error regarding a malformed XML file, due to its encoding. There are various options for rectifying the problem, but in my case, I just went to the line in export.xml indicated by the error message, and replaced the non-UTF-8 characters (in my case, fancy quote marks) with valid characters, and re-ran the script. Everything worked flawlessly at that point.

Auditing WordPress Plugins for License Information

Filed in Web DevelopmentTags: Geekery, GPL, Plugins, WordPress

The wordpress.org Plugin Repository requires adherence to a few simple guidelines in order for plugin authors to have their plugins hosted there:

  1. Your plugin must be GPL Compatible.
  2. The plugin most not do anything illegal, or be morally offensive (that’s subjective, we know).
  3. You have to actually use the subversion repository we give you in order for your plugin to show up on this site. The WordPress Plugins Directory is a hosting site, not a listing site.
  4. The plugin must not embed external links on the public site (like a "powered by" link) without explicitly asking the user's permission.

Lately, however, those guidelines have apparently been interpreted somewhat more strictly (emphasis added):

(13:27:03) KnxDT: By the way: Is the GPL header necesary?
(13:27:18) markr: very.
(13:27:28) KnxDT: because WP didn't mention in the standar readme.txt
(13:27:37) markr: Ideally you would include the gpl in a gpl.txt file
(13:27:57) markr: not including the declaration will get it removed
(13:28:10) markr: users have to know what they can do if they wish

I find the assertion that not including explicit license information with a plugin would result in the plugin being removed from the repository to be at odds with the current state of plugins in the repository. To confirm my suspicion that a significant number of plugins hosted at the wordpress.org Plugin Repository did not conform to this requirement, I did a quick audit of both my own installed plugins, and the current Top Ten Most Popular plugins in the repository. I posted my findings in the WPTavern forum. In short:

  • Almost 2/3 of the plugins I personally have installed don't have GPL information in the plugin
  • 2 of the Top Ten most popular plugins at Extend don't have GPL information in the plugin
  • 1 of the Top Ten most popular plugins at Extend violates the requirement that the entire plugin be distributed under a GPL-compatible license

Based on these findings, I decided to audit a few well-known and influential plugin authors - not to pick on the more high-profile developers per se, but rather to determine the state of license inclusion in plugins developed by those who, ideally, should be leading by example.

Here's what I found:

Matt Mullenweg

Plugins:
Notes:
  • bbPress was originally a stand-alone script, that included a license.txt file.
  • SyntaxHilighter Plus was written by Viper007Bond, but credited to Matt.
  • Top Comments was written by Andrew Ozz.
  • Sympathy For The Devil was written by Jeff Schult
Summary:

(0/19) of Matt Mullenweg's plugins written as a plugin and maintained by him have license notice of some kind. Shockingly, the majority of Matt's plugins lack even a readme.txt file.

Mark Jaquith

Plugins:
Summary:

(13/21) of Mark Jaquith's plugins have license notice of some kind (including one with both a license.txt file and plugin header license notice).

Ozh

Plugins:
Summary:

(0/16) of Ozh' plugins have license notice of some kind.

Peter Westwood (westi)

Plugins:
Summary:

(4/9) of Westi's plugins have license notice of some kind (including one with both a license.txt file and plugin header license notice).

Viper007Bond

Plugins:
Notes:
  • SyntaxHighlighter Evolved includes license.txt file from original SyntaxHighlighter written by Andrew Ozz
  • SyntaxHighlighter Plus includes license.txt file from original SyntaxHighlighter by Alex Gorgatchev
Summary:

(11/33) of Viper007Bond's plugins have license notice of some kind.

Overall Summary

Overall, for the plugin authors listed, only 28 out of 107 plugins (26%) have license notice of some kind (including two plugins that have both a license.txt file and a plugin header license notice). And the number is only that high thanks to Mark Jaquith, without whom the percentage of plugins with license notice of some kind would drop to less than 18%. Only 2 out of 107 plugins (<2%) include both a license.txt file and license information in the plugin header.

I find these numbers to be downright shocking, considering the unwritten rule now being enforced regarding removal from the repository of plugins that lack license disclosure, as well as the assertion that plugins should "ideally" include a license.txt file.

Let me be clear: I fully support the effort to ensure that plugin authors explicitly disclose license information in their plugins, either in the plugin header or in a separate license.txt file. The assertion that users need to be given explicit explanation of their rights to use, modify, and distribute plugins.

That said, perhaps those in the WordPress project leadership, and the plugin developers whom others look up to, should ensure that they are leading by example before a more-strict interpretation of the Plugin Repository guidelines is enforced against plugin developers at large.

Further, since new plugin developers will likely refer to the official wordpress.org Plugin Repository Readme File standard (which currently is silent on the matter of license disclosure) when determining what information needs to be included with their plugins, I would recommend that the standard be modified to include a License section - perhaps something like such:

== License ==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

This way, new plugin authors would have a standard means of disclosing license information in their plugin - and also, users searching Extend for new plugins would have a known means of determining the license of any given plugin.

What are your thoughts?

Daily Digest for February 8th

Filed in Lifestream
facebook (feed #3)
Chip Bennett Chip Almost time for kickoff. Go #Colts!.
twitter (feed #7)
Chip Bennett And it's 3-0 #Colts! [chip_bennett].
facebook (feed #3)
Chip Bennett Chip #Colts start with a three-and-out on defense. Nice pressure on Brees, and nice run defense. Let's go offense!.
facebook (feed #3)
Chip Bennett Chip Manning has completed passes to four different receivers this drive: Clark, Addai, Garcon, and Collie. Impressive start. Go #Colts!.
twitter (feed #7)
Chip Bennett Bullitt just jumped that route beautifully! Saints will punt. Go #Colts! [chip_bennett].
facebook (feed #3)
Chip Bennett Chip And it's 3-0 #Colts!.
twitter (feed #7)
Chip Bennett Make that 5 different receivers for Manning, as Brown rumbles for a first down. Go #Colts! [chip_bennett].
twitter (feed #7)
Chip Bennett And now it's SIX receivers, as Wayne gets his first pass from Manning. (Oh, and Addai is running like a BEAST!) Go #Colts! [chip_bennett].
facebook (feed #3)
Chip Bennett Chip Bullitt just jumped that route beautifully! Saints will punt. Go #Colts!.
facebook (feed #3)
Chip Bennett Chip Make that 5 different receivers for Manning, as Brown rumbles for a first down. Go #Colts!.
twitter (feed #7)
Chip Bennett My girls are #Colts fans. Lily celebrates Manning's TD to Garcon. http://tweetphoto.com/10734535 [chip_bennett].
facebook (feed #3)
Chip Bennett Chip And now it's SIX receivers, as Wayne gets his first pass from Manning. (Oh, and Addai is running like a BEAST!) Go #Colts!.
twitter (feed #7)
Chip Bennett FREENEY is a beast!!! Saints have to settle for a FG after Freeney finally drops Brees. Colts lead 10-3. Go #Colts! [chip_bennett].
twitter (feed #7)
Chip Bennett Frenchie, can't drop that one. That's okay - you get one per game. Go #Colts! [chip_bennett].
facebook (feed #3)
Chip Bennett Chip My girls are #Colts fans. Lily celebrates Manning's TD to Garcon. http://tweetphoto.com/10734535..
facebook (feed #3)
Chip Bennett Chip FREENEY is a beast!!! Saints have to settle for a FG after Freeney finally drops Brees. Colts lead 10-3. Go #Colts!.
twitter (feed #7)
Chip Bennett YESSSSSSSS!!!!!!!!!!!!!! Stopped them on fourth-and-goal!!!! (S)ain't no disrespect for this Defense! Go #Colts!!!!!!!!!!!!!!! [chip_bennett].
facebook (feed #3)
Chip Bennett Chip Frenchie, can't drop that one. That's okay - you get one per game. Go #Colts!.
facebook (feed #3)
Chip Bennett Chip YESSSSSSSS!!!!!!!!!!!!!! Stopped them on fourth-and-goal!!!! (S)ain't no disrespect for this Defense! Go #Colts!!!!!!!!!!!!!!!.
twitter (feed #7)
Chip Bennett Congrats to the Saints. Still love my #Colts! [chip_bennett].
twitter (feed #7)
Chip Bennett Jim Caldwell had a great rookie season, but his decision to try a 51yd FG w/ a kicker who only has a 45yd leg prob. cost the #Colts the game [chip_bennett].
facebook (feed #3)
Chip Bennett Chip What's the point of having a Facebook Twitter app, if Facebook is going to stop pulling in my tweets? I had a lot to say during the game, but apparently Facebook isn't going to grace you with any of it. Twitter App FAIL..
facebook (feed #3)
Chip Bennett Chip Oh, and good game, Saints. Congrats. I still love my Colts and am proud of the season they had. Caldwell had a great rookie season, but his decision to try a 51yd FG with a kicker who only has a 45yd leg probably cost the Colts the game..

Daily Digest for February 5th

Filed in Lifestream
facebook (feed #3)
Chip Bennett Chip Will test tonight on WP! RT @apeatling: BuddyPress 1.2rc is out now! Please help us by testing on WordPress and WPMU: http://bit.ly/apRYUa..
twitter (feed #7)
Chip Bennett Will test tonight on WP! RT @apeatling: BuddyPress 1.2rc is out now! Please help us by testing on WordPress and WPMU: http://bit.ly/apRYUa [chip_bennett].
twitter (feed #7)
Chip Bennett Good news, and about time! RT @ScottBrownMA: I have been officially certified and I have just arrived in Washington to be sworn in #masen [chip_bennett].
facebook (feed #3)
Chip Bennett Chip Good news, and about time! RT @ScottBrownMA: I have been officially certified and I have just arrived in Washington to be sworn in #masen..