100 million Facebook users’ details published online

MSNBC:

“As I thought more about it and talked to other people, I realized that this is a scary privacy issue. I can find the name of pretty much every person on Facebook,” he wrote.
So of course he thought that the right way was to collect all 100 million and put them up for download. What an imbecile.

Ontario Announces Tighter Restrictions For Young Drivers

CityNews on new restrictions for young drivers in the Province of Ontario:

Drivers 21-years-old or younger caught with alcohol in their system will face an immediate 24-hour licence suspension, a 30-day licence suspension and a fine up to $500.
Of course, we could just teach kids that drinking in excess and driving is a stupid thing to do—but, hey, that would mean actually doing the job of a parent. Instead, let’s simply make it a crime to drink a beer1.

  1. As opposed to, say, actually driving in such a way as to constitute a road peril.

⇥ PHP 5.2 support ends just as its adoption begins

In case you missed it, the PHP team has just released 5.2.14, which effectively ends active support for the 5.2 branch1:

This release marks the end of the active support for PHP 5.2. Following this release the PHP 5.2 series will receive no further active bug maintenance.
The logic behind this decision is… puzzling.

Several large projects—WordPress and Drupal among them—recently announced that they intend to push support for 5.2 into their products with their next major release. For example, Drupal 7 will accept 5.2 features, and the WP folks are just working on EOL’ing their support for PHP 4.

This means that a large number of people are just beginning learning, using and stress-testing PHP 5.2. Remember—these projects have very large user bases, so even moving a small percentage of adopters over to a different platform means a big shift. Perhaps—just perhaps—it might be better to reconsider canning 5.2. If, from a technical perspective, the move from 5.2 to 5.3 is an easy one, there is a huge psychological barrier to finally adopting 5.2 only to have it yanked from under your feet.

The real issue at hand, however, is the fact that these large user communities are not engaged in the PHP world, and vice-versa. Ignoring the hundreds of thousands of Drupal and WordPress integrators and developers is bad for both PHP and for those products; we should, instead, try our best to open a dialogue between all the communities that are centred around PHP and ensure that everyone’s interests are properly represented.

This is not to say that the fact that WP has only now decided to move to PHP 5.2 should necessarily affect the progress of PHP, nor that the PHP developers should take a “we don’t need you” attitude toward projects that are based on the language. Ultimately, it’s up to these projects if they want to actively contribute back to PHP or not, and that is the only way for them to effectively affect the development of the language itself.

However, PHP development is too unevenly connected to downstream adopters. Some—particularly framework makers—have an unusually high level of participation in deciding how PHP evolves, and that needs to change.

At least year’s WDC, a small conference organized by Microsoft, I made this very same point and managed to bring a room full of developers into complete disarray in less than five minutes—which means that, in addition to the fact that my ability to drive a bunch of people up the wall in no time flat has not changed over the years, there is plenty to talk about.

[Update: the latest 5.2.x release is 5.2.14, not 5.2.11 as I originally stated. Thanks to Ilia for pointing that out.]

  1. As I understand it, this means no more added features or bug fixed. Presumably, security issues will still be taken care of.

The GPL: legit, but may contain malicious code

WooThemes’s official Twitter account, in response to a request on whether a site giving away all their GPL’ed themes1 for a low fee is in breach of the license:

[I]t’s legit, but we don’t promote it as the themes are outdated & may contain malicious code.
So that’s it, then: the GPL is great until someone copies your commercial work and openly resells it, at which point making subtly unfounded allegations is the best way to save face.

  1. I’m not linking to it out of respect for the work that actually went into building Woo’s themes. For the record, I think that what has been done here is despicable, although it illustrates the weakness of the GPL model that the WPF wants everyone to adopt perfectly.

Copyright silences 10-year-old

From MSNBC:

Bethany and her parents couldn’t afford the fees, so Bethany decided to remove the words and music form her video and run it as a “silent movie” instead.
She should have posted a video dressed as Chaplin and giving these idiots the finger for three minutes. Disgusting.

⇥ Graphr for iPhone · Say it with a smile(y)

It is with a certain amount of pride that I announce the release of Graphr (iTunes link), my new iPhone app that allows you to copy and paste special characters like ☺, ⌘ and ✈ directly into any iOS app that supports text, including Mail, Twitter and Safari (or even the OS itself, if you want to create fancypants folders). Simply launch it, choose one of the eighty symbols it supports and then paste it directly into your favourite app using iOS’s copy-and-paste feature. Because it’s an iOS 4 app with minimal memory footprint, you can switch in and out of it in a heartbeat, making it the perfect companion for your day-to-day device usage.

Graphr also learns which symbols you use most often and moves them to a location that is more readily accessible so that they become easier to find. As you use the app, you will notice that your favourite characters will slowly move towards the top-left corner of the screen (note that it takes a while for the algorithm to kick in). Plus, it’s iPhone 4-compatible, taking advantage of that device’s Retina Screen with high-resolution graphics for its button frames and text.

Why Graphr?

Graphr is an app that I have wanted for a long time. Unicode characters are handy for a number of reasons; first, they are there: most OSs support them, so I don’t see why we shouldn’t be able to use them on iOS the way we do on other platforms. Plus, they are succinct: writing “YYZ✈MCO” is just as clear as “I’m flying from Toronto to Orlando” in Twitter parlance, but only requires seven characters. And those “I ♥ You” e-mails, while corny, always impress!

Graphr is inspired by GlyphBoard, a web-based Unicode symbol picker that features a great concept but that is ultimately impractical for everyday use, mostly because switching back and forth between Safari and any other app (including other Safari windows) takes too much time. By writing a native iOS 4 app and supporting fast switching, however, I can keep Graphr loaded and switch back-and-forth between it and other apps very quickly, thus making it almost an extension of the built-in keyboard. The app doesn’t support anything before iOS 4, because, frankly, the usage experience would be abysmal—can you imagine quitting your apps, launching Graphr, copying a character and then relaunching your other app on older iOS versions? Besides, GlyphBoard already does as good a job of that as possible under the circumstances.

Why not more features?

Graphr is the app I wanted to build—in fact, it didn’t even occur to me to release it to the public until after it was pretty much finished. Even though it doesn’t necessarily look like one, it’s pretty much built like a keyboard and, therefore, must be as simple and intuitive to use as one. And so it is: launch it, click on a button, and you’re done. There are no secret handshakes, no settings, no geeky character tables or codes. The app tries to learn how you use it and adapt to your specific needs rather than asking you to “tell it” something you may not even be aware of.

This is not to say that there are no features to add. For example, the app is built for right-handed users, a “leftie mode” that pushes popular symbols to the top-right corner instead of the top-left corner would be useful. Likewise, the symbols that the app supports are based on a thoroughly unscientific survey of web pages and tweets with some biases thrown in for good measure, which may or may reflect reality for everyone else.

Also, unlike Glyphboard, Graphr doesn’t allow you to copy more than one symbol into the pasteboard at a time. I considered this feature (obviously—it was staring right at me), but ultimately decided that having more characters and a simpler look was more important.

Why free?

Graphr is completely free, although it features iAd ads. This is not because I think the app is cheap or useless—quite the contrary. First, it’s an app that provides value over time; therefore, asking people to pay upfront doesn’t reflect the return that they will get out of it. With iAd, if you load the app and only use it once or twice, I will maybe make a few cents from showing you a couple of ads. If, on the other hand, you become a regular user, I’ll make more revenue over time. Of course, people are also going to be more likely to try out a free app, which doesn’t hurt, either.

Incidentally, I could have made the same decision for some of my other apps, but, well, iAd simply wasn’t available when I developed them, and I’m not about to show Google ads—the fast food of online advertising—alongside my work. Apple’s ad platform appeals to me because it has a high bar of entry, making it more likely that high-quality, brand names will appear next to my name. It’s not so much that iAd generates more revenue—it’s that using iAd is a bit like having lunch at the French Laundry while your favourite actor strikes up a conversation with you. As far as ads go, I want to be a foodie.

Times loses almost 90% of online readership

The Guardian:

The Times has lost almost 90% of its online readership compared to February since making registration mandatory in June, calculations by the Guardian show.
Making people pay or register to access your content causes a loss of readership 1. Big surprise.

But let’s look at this from a different perspective. Let’s assume the Times had a million readers before the paywall went up, in which case a 90 percent drop would mean that they now have around 100,000. Let’s also assume that the Times used to sell ads and rake in a $10CPM fee (which is probably high—but it doesn’t matter).

If every one of those readers read one page, they would generate $10,000 in advertising. If every one of the 100,000 “paywall” users forks $1 to buy access for one day, they generate $100,000 in fees. In other words, it would take ten times as much usage from ten times as many people in order to generate the same revenue without the paywall.

Now, I’m no big fan of paywalls, but maybe these people have realized that newspapers are in the business of selling content and not eyeballs?

  1. That’s of course assuming that these “calculations” are correct.

Headway Themes is now licensed under the GPL… uhm, no, wait. It isn’t. Well, sorta.

Grant Griffiths on split-licensing the PHP code of his themes under the GPL and the images/CSS/JS files under a proprietary license:

The split GPL license still allows us to retain enough teeth that we can bite someone in the butt if they violate our own license for Headway.
I fear that Grant hasn’t quite thought this whole affair through. But let’s take a look at the Headway ToS themselves:
All WordPress themes produced by Headway Themes are released under the GPL version 2.0 license (http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2). Specifically, the PHP code portions are distributed under the GPL version 2.0 license.
Are “all themes” released under the GPL or the PHP portions? I think the intent of the author are fairly clear, but this language introduces contradiction in a legal document—not a good start. You’ve just given a prepared attorney a way to show that your language is ambiguous and a reasonable third party could interpret it in a way other than the one you claim is the correct one. And believe me, they’ll latch on to this like the Shuttle on the Space Station.
The Headway Themes Proprietary Use License is a GPL compatible license…
Who has decided that it’s compatible? What happens if a court should decide that it isn’t?
You are authorized to make any necessary modification(s) to Headway Themes to fit your purposes. You may not however redistribute or release modifications as GPL or otherwise.
Wait, what? You get to release under the GPL but I can’t? Sorry, but the GPL says the exact opposite:
4.  You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License.
Incidentally, you also don’t get to choose which pieces of the GPL your code is subject to:
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.
See how confusing things get? And that’s without even counting the fact that a clever lawyer may well point out that the CSS, JS and image files are derivative of the theme because they cannot be used meaningfully outside of it (much like GPL proponents claim that the theme itself cannot be used meaningfully without the underlying WP code).

I hope that Grant got legal advice… uh-oh:

While I know Matt would rather we would have gone 100% GPL, we felt more comfortable with a split GPL license.  We actually modeled our license which we have included in a revised TOS after what Jason has at Press75.  Below, you will see the exact language we now have which according to Matt Mullenweg is “100% legal.”
These people are playing with fire.

⇥ A note on comments on T·A·B

This blog doesn’t get a lot of comments, which suits me fine—I prefer quality of discussion over quantity of words.

However, comments are moderated and, inevitably, the following happens:

  1. I publish a post (usually on PHP or OSS)
  2. Someone leaves a comment
  3. The comment is placed in the moderation queue
  4. The author immediately posts another comment, which also ends up in the moderation queue, telling me off for moderating comments
  5. Lather, rinse, repeat.
The reason why moderation is on is simply to weed out spam. Generally speaking, I let any comment through, regardless of whether they agree with what I say or not—if I only wanted people to agree with me, I wouldn’t allow comments to start with. In fact, the system is set so that, unless I decide otherwise, once a user’s first comment has been allowed, future comments will be published without any further moderation. Basically, I just want to make sure you’re not trying to sell me Viagra. And who knows, in twenty years I may change that rule, too.

So if you post a comment and it doesn’t immediately show up, please refrain from writing me and accusing me of trying to silence your Very Important Opinion™. I may be simply busy, on the phone, out, or maybe I’m just sitting on the can and need a little time to myself. Remember, my house, my rules. Thank you.

⇥ WordPress and the GPL: the day after

Last week, I posted an article that pretty much started with “this is not about a legal interpretation of the GPL.” Therefore, of course, 80% of the people who commented on the article did so to give me their interpretation of the GPL, or to explain why my interpretation was incorrect. So much for that.

You are not Perry Mason

Let me, once more, explain why the legal interpretation of the GPL has no bearing on the issue at hand before addressing some of the issues that were raised in the comments. The positioning of the GPL with regards to derivative works has not been tested in a court of law. This means that there is no accepted definition of what a derivative work is in this context is simply undefined and can, by some account, lead to, shall we say, “interesting” conclusions. For this reason, my opinion on this matter, or Matt’s, or anyone else’s, is entirely meaningless, at least from a legal perspective.

You could say that Matt’s opinion counts, because he wrote the software and he should have the right to decide how his software is distributed and under what rules.

I couldn’t agree more—except for one minor detail: Matt made his decision when he chose to distribute WordPress under the GPL. From then on, both he and any user of WordPress are bound by the terms of the license, and not by what anyone thinks. Matt doesn’t enforce the license: that’s for a court of law to do. Therefore, what he thinks at this point only has value, from a legal standpoint, if a competent court determines that the terms of the GPL agree with him.

This, incidentally, is one of the biggest concerns that I have with the GPL. It’s a license that enforces a very particular meaning of “freedom” whose nuances a developer may simply not understand. Case in point: Matt may well believe that themes must be released under the GPL as derivative works, but there is no real case law to back this belief. The FSF says so1, but they are less than intellectually honest by not admitting that they do not have the legal standing to back their claims.

The reason why I say that this is not a legal issue, therefore, is that, unless and until the WPF sues a theme developer on the issue of whether a theme or plugin that doesn’t incorporate wholesale code from the main project2 is a derivative work, this is a business issue that can deeply affect the future of WordPress if not handled correctly. Hence my points in the previous article.

One thing that many do not seem to understand that the enforcement of a contract (or a license) is, essentially, a failure of the contract itself. A contract exists so that two parties can have an understanding on how a business relationship should take place. If the contract is sufficiently clear and unequivocal, it should only ever be enforced if one of the parties maliciously and willfully breaches it and then refuses to cure the breach. If it is unclear and equivocal, as is the case here, the enforcement of a contract represents a failure to draft a proper agreement in the first place.

When people play armchair lawyers and give their own interpretation of the legal meaning of the GPL, I can tell immediately that they have never had the unpleasant experience of being involved in a lawsuit. Those who have, on the other hand, know that lawsuits are a very dangerous game whose rules are known only to those in the legal profession—and are, ultimately, in the hands of a referee who is as human as everyone else, and often called upon to render judgment on topics he or she has no real technical expertise to understand, let alone determine. It’s like playing a game of soccer in which losing might mean forfeiting your business, house and livelihood, and in which each team can put as many players on the field as their money allows. Oh, and the refs are asked to rate the player’s bedroom technique instead of counting the goals.

When most people talk about lawsuits and court cases, they think “Law and Order” or (God forbid) “Boston Legal,” and truly have no idea of what they are getting themselves into—the long hours, constant uncertainty, ridiculous expenses and inevitably dangerous outcome. In real life, lawyers don’t stomp around a courtroom yelling “you can’t handle the truth!” They drudge endlessly through point after point, doing whatever they can to help their client prevail, often flying in the face of the very things their client has done or agreed to in the past. It’s their job and, even though while they are doing it you would like for nothing better than jump up from your chair and stab them in the eyeball with a pencil, you can’t fault them for it. Remember, despite the fact that everyone called bullshit on SCO’s claim against Linux vendors, it took seven years to finally kick them to the curb. Is that they way you want to run your business?

Regardless, enforcement is not the point of a contract—the point of a contract is to establish a clear framework in which everybody can conduct their business in a clear and unequivocal manner.

It was a honeypot!

Ultimately, I am happy that so many decided to post “legal” comments to my article. In fact, I was counting on it, because it helps me drive home a simple point: we need a better framework than the GPL to help us define our freedom.

What is happening in the WP world is a perfect example of how the GPL’s one-size-fits-all approach is failing us. If Matt wanted themes and plug-ins to only be distributable under the GPL, he could have simply expressly said so in his license, thus clearing the air once and for all. Of course, this wouldn’t prevent some third party from maliciously attempting to circumvent the license, but then at least we could focus on the maliciousness of their action instead of grasping at straws trying to figure out what the license means in the first place.

Instead, we are stuck with the GPL and its less-than-perfect definition of derivative work and this, at the very least, is going to cause concern and confusion. Remember, even though you may be convinced that a particular interpretation is the correct one, that doesn’t mean that everyone else will as well. I, for one, disagree with Matt’s interpretation of the license and I will freely admit that I would have probably missed this particular problem had it not been brought to my attention by what has happened. Luckily (for me), it doesn’t affect any work that I have done, but it will now force me to think twice about any project that we build based on WP.

By the same token, if this issue becomes big enough, any reasonably sophisticated client that does his homework will have to wonder how the licensing of WordPress—and the WPF’s willingness to go to court in an effort to enforce its own vision thereof—will affect their projects. At the very least, they will want to consult a lawyer on the topic, which is expensive and will probably lead to an inconclusive opinion (which, I believe, would be the only honest one). Again, what you think is the right or wrong way to interpret the GPL means absolutely nothing—what matters is what the client thinks and, if you’re handing out legal advice because they ask you, you’re setting yourself up for big trouble down the road when it turns out that you were wrong.

This is why, in my previous post, I said that no good can possibly come from what has happened. It’s not so much that I dislike the GPL—which I admittedly do; it’s that it needlessly introduces problems that we shouldn’t have to deal with. Contracts and licenses should be the legal expression of a business intent and must, therefore, be written with the business goals of each particular project in mind by lawyers who are acting the best interest of their clients (the project maintainers). The GPL, which is itself not free, is written in the best interest of the FSF to protect a prototypical, but abstract, software product. If you adopt it, you are letting someone else impose their philosophy, values and objectives on your work.

A final thought on copyrights and work for hire

A number of commenters honed in on whether client work is work for hire or not, expressing surprise at the fact that I do not normally assign copyright when I work as a consultant, so I thought I’d spend a few extra words explaining my position on the subject.

When a client engages my services, there are usually two scenarios: either they ask me to solve a specific problem, or they ask me to build something for them. The distinction is, in my mind, very significant. If a client comes to me and asks me to, say, develop an algorithm to do something, I consider that work for hire and am happy to assign all the appropriate rights to them.

When, on the other hand, a client asks me to develop a solution—for example, build a website or perform any work in which the end product is unique to client, but the processes that are used to arrive to it are not—then I insist on maintaining copyright and assigning a properly-drafted license to the client. The reasoning is that my client is not purchasing access to my trade secrets or to the methods and knowledge that go into creating whatever the final product is. Rather, they are employing my knowledge to enable them to perform a particular task. This is not unlike, for example, buying a car: you do not acquire the copyright in its design or the trade secrets that go into, say, the creation of the drivetrain: all you buy is a tool that allows you to move.

In these cases, the final license has, obviously, to be appropriate to what the client needs to do with the product—for example, modify, redistribute, sublicense and so on. But the ownership remains mine, because the knowledge that goes into the product is orthogonal to the product itself. Note that copyright and trade secrets are, obviously, two separate concepts, so that the copyright in code I write could be assigned without having to give up the associated intellectual property, but why confuse the issue? Being able to reuse portions of code between projects makes it possible for me to provide my clients with more affordable services without compromising the uniqueness of their product and gives me the opportunity, if I so choose, to release it as OSS. Naturally, the client maintains control and ownership of all of their bits and pieces, like trademarks, proprietary code that is included in the final product, etc. etc.

There are, of course, some exceptions, but by and large I have yet to encounter a client worth working for who has a problem with this—in fact, it’s great for clients whose internal policies make it difficult for them to interact with OSS, since the copyright never gets assigned to them and the product can, therefore, be directly distributed under an open-source license.

  1. In an FAQ that is not part of the license and therefore has no legal value whatsoever found evidence of actual copying in Thesis, which, if true, would be an obvious violation of the GPL. But I also want to make it clear that this happened post-facto: the initial claim that Matt made is that a theme is a derivative work “no matter what,” so that my argument remains entirely valid.