Participate in Wednesday’s SOPA strike

Looking for an easy way to participate in tomorrow’s SOPA (and PIPA) strike? The SOPA Strike website has some code you can use to automatically load this page.

I’ve set up my own customized version, which you’re welcome to use. This does not completely black out your site. Instead, the page loads with a black screen. Then after a few seconds, the words "STOP SOPA" with a "Learn more…" link appear in white. The black box then fades to slightly transparent and animates to the upper left corner of the screen. It then stays fixed in the corner as the user scrolls around. The site is still usable, but the “STOP SOPA” message is ever-present. (Be forewarned: as I did not take the time to set up cookies, the entire process also repeats on each new page load.)

If you’d like to see how it works, I set up an awesome fake site to demonstrate the blackout animation in action.

If your site is already using jQuery, simply copy the code below into your page, ideally just after the <body> tag:

<script type="text/javascript" src="http://atomic.room34.com/sopa_blackout.js"></script>

If you’re not already using jQuery on your site, you just need to include it from Google Code first, like this:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://atomic.room34.com/sopa_blackout.js"></script>

If you’re using PHP, you can even use this code to automatically make it appear at 8 AM EST and disappear at 8 PM EST. (Update the times as needed to represent your time zone, and remove the Google Code line if you’re already using jQuery.)

<?php
if (time() > mktime(8,0,0,1,18,2012) && time() < mktime(20,0,0,1,18,2012)) {
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://atomic.room34.com/sopa_blackout.js"></script>
<?php
}
?>

Note: As indicated above, I built this quickly, and have not done a lot of cross-browser testing. It’s pretty basic, but it may not display correctly in some older browsers, especially earlier versions of Internet Explorer. Use at your own risk… just like the Internet itself!

Facing the 2012 RPM Challenge

February is just a couple of weeks away, and as I have every year since 2008, I’ll be participating in the RPM Challenge.

What’s that? It’s simple: produce an entire album (10+ songs or 35+ minutes) entirely during the month of February.

My concept this year is a bit different than in the past. This time around, I will not be using any instruments… just my iPhone. I’ve assembled an interesting collection of music creation apps (which I will detail in a future post, but for now will represent with a pair of screenshots, below), and these will be the only tools I will use to generate sounds. I may sample my voice, found sounds and instruments using my iPhone’s microphone, and I’ll do final mixing and post-production on my MacBook Air, but as much as possible this will be an album produced on the iPhone. Given the nature of some of the apps I’ll be using, I also expect this album to be a lot more experimental/avant garde in style than most of my recent solo work.

I am tentatively calling the album i. And I am also considering producing a companion album, called The Way Out Takes, that will consist of unedited versions of the more experimental tracks that end up on i.

Stay tuned for more details as I think them up.

Why I care so much about stopping SOPA/PIPA (and why you should care too)

As someone who works with, and is constantly immersed in, the Internet, I’ve been hearing a lot about SOPA (the Stop Online Piracy Act, in the House) and PIPA (the Protect IP Act, in the Senate) over the last couple of months. But I suspect most Americans have heard much less about these bills currently under “debate” in the US House of Representatives and Senate. That’s the way the sponsors of these bills (and their corporate donors) likely want it.

You can read the text of the bills, or the innocuous-sounding summaries the government has published. On the surface, without careful reflection, they seem like good ideas, designed to protect hard-working American creators from having their intellectual property stolen. But the implications of these bills, for freedom of speech, for innovation, even for the very feasibility of their technical implementation, are anything but innocuous, and may irreparably harm, rather than protect, the American economy.

What’s it really all about?

Let us be frank: the true objective of these bills is not to prevent illicit foreign websites from destroying American jobs by stealing our movies and music. It is to prop up a dying dinosaur media industry that would rather kill innovation than have to learn to change. Follow the money. A simple look at the lists of corporate supporters of SOPA/PIPA, along with the corresponding list of companies that oppose these bills, tells the story.

The Motion Picture Association of America (MPAA), the Recording Industry Association of America (RIAA), countless “old media” conglomerates. These are the companies that want these bills to pass, because they are in their death throes after over a decade of spending their dwindling profits on fighting, in any way they can, the changes the Internet has wrought, refusing to admit that the massive profits they achieved from the 1970s through the 1990s were built upon an unsustainable model. These industries refuse to adapt. Adaptation is hard. But the world changes. You have to be prepared to change with it, or die.

So what’s the threat?

The Internet has fundamentally transformed the way people communicate, and as a result it has changed the way they get their entertainment. Sure, piracy is a problem. It needs to be dealt with. But there are also huge opportunities to build profitable businesses legitimately selling entertainment products (intellectual property) online. iTunes, Amazon and Netflix prove that. The problem for old media, though, is that the Internet has obviated their role as a high-markup middleman. Look at Louis CK’s wildly successful experiment in DIY production and promotion. Change or die.

True, as the old entertainment industry contracts, American jobs are being lost. But the entertainment industry is a small piece of America’s GDP. By contrast, the Internet, and more broadly, information technology, is significantly larger. (According to Census Bureau data, in 2008 the film, recording and broadcasting industries employed 643,089 people; information services, software publishers and computer systems employed 3,443,162 people.)

The Internet is possibly the brightest spot in America’s economy right now, and it is profoundly threatened by what SOPA/PIPA could do. So, in effect, Congress is preparing to kill (or at least maim) one of the most thriving parts of our economy to save a sector that is going to die anyway. (I’m trying to think of an analogy to make here but they’re all too gruesome.)

How does it work?

Aside from understanding the true motivations of SOPA/PIPA, it’s just as important to understand the implications these bills have for American Internet companies, our cherished freedom of speech, and the daily use of the Internet, even by Americans who by and large are engaging in purely harmless, infringement-free activities.

I’m about as squeaky-clean as Internet users come when it comes to copyright. Sure, I may have a handful of music files on my hard drive that I got from friends, just like we’d dub cassettes of our favorite CDs back in the late ’80s and early ’90s to share. Ever heard of a mixtape? But the overwhelming majority of my 18,000+ songs were purchased legitimately, either on CD or through download services like iTunes or Amazon. And a lot of the music I own, I purchased because I learned about it through friends. Even if they had already given me copies of the music. Even in the peak of the music industry’s profits from CD sales in the ’90s, that’s how it worked.

(I’m also a content producer myself, as a blog writer and independent musician. I’m skeptical of current copyright law and as such have taken to releasing all of my work under Creative Commons licensing. But that’s a topic for another post.)

The point is, sharing music doesn’t necessarily reduce music sales. I’d argue that, in limited quantities, between friends with similar tastes, it actually encourages music sales. But even if we agree that illicit copying and redistribution of things like movies and music is bad (and, when it’s done at a large scale, I do) piracy is not what’s killing old media — mediocre content and exorbitant pricing are. And SOPA/PIPA can’t help that.

The real danger of these bills is in their implementation. While ostensibly they’re only targeted at foreign websites, their means of recourse against infringers could result in the blocking of entire sites due to the alleged infringing activities of one member. This sledgehammer approach has broad-reaching implications for all Internet users in the United States (to say nothing of what it means for free speech, and the company it places America in amongst governments that censor the Internet).

What’s worse, it won’t even work. Already there is much discussion online of means of circumvention (which I will not link to here), and, worse, it breaks the Internet. I don’t just mean that it is going to destroy the way we use the Internet. I mean it actually runs contrary, on a deep technical level, to how the Internet functions. Even SOPA supporter Comcast (my ISP… for now) admits, albeit inadvertently, that at least on a technical level the requirements of the law are incompatible with how the Internet works.

A threat to America’s small-business owners

I’m one of those fabled “small business owners” politicians so love to talk about. I’ve been freelancing full-time in web development since 2008. Business has been great, even through the worst economic times in America since the Great Depression. All of the work I do is 100% legitimate, for honest, productive American businesses. This is the new economy, and it is America’s best hope for a brighter future. I’m expecting to expand my business this year, becoming an even larger presence in the community and helping to further spur on positive economic activity.

But SOPA/PIPA threaten the way I do business. Republicans in Congress put on some great political theater in 2009-2010 in their fight against “Obamacare,” claiming its provisions represented an undue threat to small businesses. But here we have a real threat to small and growing Internet-related businesses. If passed, these laws will impose odious burdens of monitoring and self-policing upon website owners, and the threat of takedown without due process will have a chilling effect on whether or not new ventures even get started. In short, nothing could more effectively put the brakes on this “engine of growth” for the American economy.

Take action

So what can you do? Old media still has deep pockets, and is well-represented on K Street. It has the ears of Congress. But, last I checked, these elected officials do also still represent us, the individual Americans who will be affected by these bills. So call them. Politely tell them why you believe these bills are bad. Check out other online resources that can help you get involved.

I will admit, however, that personally I have not attempted to contact any of my representatives. I already know that my House representative, Keith Ellison, opposes SOPA. Over in the Senate, unfortunately, Amy Klobuchar is one of the sponsors of PIPA. And, despite his genuine progressive spirit and work on behalf of American individuals, Al Franken is simply too deeply connected to old media not to also back PIPA. I sincerely doubt either of Minnesota’s senators will be convinced to change their position, no matter how many constituents call them.

But your representatives may still be on the fence. Reach out to them. Let them know why you think these bills are not just bad, but downright dangerous for America. The implications for America if they pass are far bleaker than the prognosis for the industries they are intending to protect.

And, this is an election year. Vote. While it will most likely be too late to affect SOPA/PIPA, do your part to make sure none of its supporters get re-elected in November. I have been a strong supporter of Amy Klobuchar in the past, even having donated to her first campaign, but unless she withdraws her sponsorship of PIPA, I will not be voting for her re-election this year.

As someone who works in the Internet, the implications of SOPA/PIPA are huge for me and for my business. But this affects us all.

Tell me more!

As with a lot of hot-button issues, when I get my dander up it’s sometimes hard for me to calmly and clearly explain the rationale for my argument. I’ve linked throughout this post to some great resources for learning more about what SOPA/PIPA is and why it’s bad, but as I come across other sites that do a more effective job of explaining it than I have, I’ll add them here.

Other sites discussing problems with SOPA/PIPA

Updates on the fight against SOPA/PIPA

Apple’s skeuomorphism reconsidered

I was just looking at the much maligned skeuomorphic interface on iCal in Lion, and trying to decide why it doesn’t really bother me that much. I think I figured it out.

It’s inconsistent with other windows, but the objects on a real desk don’t all look alike. I’ve observed novice computer users, even today, struggle to differentiate windows on a standard computer desktop. They can’t tell which window is active; they can’t tell windows apart; they don’t know the difference between different applications or whether a given app is still running without any windows open or not.

In short: a lot of people still don’t understand the GUI, and never will. And, kind of like I wrote yesterday about Kevin and Robert California, whose fault is that? The user’s, or the interface designer’s?

iCal may look out of place, but there’s no mistaking it in the jumble of overlapping windows, just like there’s no mistaking a particular physical book in a big pile on a cluttered desk.

The arguments for or against skeuomorphism are completely different on iOS, of course, where there’s only ever one app on the screen at a time. But I think the HIG zealots and Magritte maybe need to get over themselves a bit, even if iCal makes all of us want to tear those little bits of paper off.

On the ugly history of early open source CMSes (or why, surprisingly, I did not enjoy listening to Merlin Mann and John Gruber together in a podcast)

It was a perfect idea, or so I thought. Two of my favorite personalities from 5by5 podcasts were going to do a show together: John Gruber (of The Talk Show and Daring Fireball) was going to appear on Merlin Mann’s Back to Work podcast!

Unfortunately, when Merlin Mann’s fire met John Gruber’s ice, the result, like Derek Smalls, was lukewarm water.

Or maybe it was just because they spent the first several minutes of the podcast — all I managed to get through in one sitting (though to be sure, it’s all that’s relevant for this post) — talking about the early days of open source content management systems (CMSes). It maybe wasn’t really their fault. I reflexively dry heave when I hear words like PostNuke or Plone. They’re names I haven’t thought about in years, and haven’t thought about positively… well… ever. I dabbled with both of them in the early early days of CMSes, and quickly ran away.

But then Gruber and Mann (sounds like a comedy duo from the ’60s) got into something that really stings: they started professing love for Drupal (Merlin) and Movable Type (John). I cannot tell you how strongly I dislike both Drupal and Movable Type.

Gruber loves him some Movable Type

It’s been a point of pride for me since becoming a loyal Daring Fireball reader that I do not like Movable Type. The fact that Gruber uses Movable Type for Daring Fireball and is a vocal supporter of the platform, and the fact that I loathe Movable Type, is something I use to prove that I have not just become a devoted Gruber acolyte. I still think independently; I just happen to agree with him on almost everything he writes about.

One of Gruber’s biggest reasons for liking Movable Type, apparently, is the fact that it doesn’t serve content from the database; it publishes the entire site out to static HTML files. This is great for server performance under heavy loads, and has probably allowed him to continue to run Daring Fireball with a much lower-powered server than he’d need if he were using a database-intensive CMS. But in my own experience it also makes the process of using Movable Type a chore. Perhaps that’s because I’ve never actually used it directly myself; my work with it has been limited to setting up templates/themes/whatever-they-call-them-in-MT for other people. MT’s tools for working with stylesheets and templates are cumbersome, MT’s proprietary scripting language is tedious for “non-natives” like me, and having to republish the entire site to see changes to the templates is a real pain in the ass.

On the other hand, Gruber loves to rip on my personal favorite open source CMS (though surely he doesn’t know, nor would he care, that it’s my favorite), WordPress. And it is precisely because WordPress doesn’t publish static pages the way MT does that he hates it so much. He commonly refers to sites that crash under the weight of his referral traffic as being “fireballed” (clever), and sites running a stock installation of WordPress are notorious for this. But there are several caching plugins available for WordPress that can greatly boost its ability to handle peak traffic, in a much less intrusive way than MT’s static HTML publishing process. My plugin of choice these days is Quick Cache. The plugin’s tagline says it all: “Speed Without Compromise.” (I’m not-so-secretly hoping that Gruber links to this post on Daring Fireball, but then again, I’m not sure I want to risk being proven wrong.)

Merlin and Drupal, sittin’ in a tree

And then there’s Merlin, and Drupal. Oh, Merlin. Again my experience with Drupal is fairly limited. I tried using it to run this site for a brief period (which you can probably find if you dig in the archives… I believe it was around early 2006). I very quickly gave up. Drupal’s admin interface was clunky and unintuitive, but it was the fact that my site was almost instantly drowning in comment spam that killed the deal for me. In the time since then the only work I’ve done with Drupal has been focused on helping people move their sites off of it, but the fact that so many people want to do that says enough for me.

I find two major issues with a lot of open source CMSes (like Joomla and MODx, to name two others I’ve tried in the past) that are perfectly exemplified by Drupal and Movable Type.

First, unless you really know what you’re doing and put a lot of effort into it, your Drupal site is going to look like a Drupal site. (Yes, it’s true that as I am writing this I’m using a more-or-less stock WordPress template, so my site looks like WordPress, but that’s not the point; it’s easy to build a completely custom WordPress theme from scratch with little more than basic HTML/CSS skills.)

Second, and I touched on this with Movable Type, many of these systems have their own custom scripting languages or other idiosyncrasies to be learned, such that learning to use these systems is not substantially easier than just learning to code HTML/CSS.

Of course, I know how to code HTML and CSS. That’s my job. I have “visual” mode disabled in the editor in WordPress. A CMS exists not just to shield you from writing code, but to make it easy to manage, organize, and re-organize large amounts of site content, while maintaining a consistent look and feel. But a good CMS goes beyond that. A good CMS puts the power to manage the website in the hands of people who don’t know, and don’t want to know, how to write code.

A little background

As I listened to Merlin Mann and John Gruber wistfully recall the glory days of crappy CMSes, I wondered why they had devoted so much time and attention to learning and working with those systems, while at the same time I had rejected them out of hand. (I also wondered why they were at roughly the same place in their careers as I was at the time, and now they’re “famous,” but that’s beside the point… or maybe not… read on.) Then it hit me: I didn’t like those CMSes because I had already built a few of my own and I liked them better.

Now, it’s true that I liked my CMSes better partly because, well, I had built them. And I think Merlin was spot-on in the podcast when he said that most systems worked great if you thought just like the developer. (Specifically, he said that Basecamp works great if you think like Jason Fried.) That’s a great point, and one I should not overlook. But there’s another aspect to this. Most of these open source CMSes are developed by online communities of… well… geeks. Sure, they take feature requests from users (I assume), but ultimately the main people giving the developers feedback on how the systems should work are other developers.

I’ve built a number of CMSes over my career. They’ve all been built to meet specific client/user needs, and always in direct consultation with those clients/users. Has that made them perfect, or made me impervious to casting my CMSes in my own image? Of course not. But it’s made it harder to hide away in my geek cave and crank out systems that only other geeks can use.

The first CMS I built was in the heady days of early 2000, just before the dot-com bust. I was working for a certain big box retailer’s dot-com subsidiary. (This was back in the days when certain big box retailers believed they could spin off dot-com subsidiaries as independent companies that issued their own stock and everyone got rich yay!!!)

The company had invested 7 figures in some colossal enterprise CMS that was going to take several months and thousands of hours of consultant time to customize to our needs. In the meantime, our staff of writers (yes, we had writers producing informative weekly articles for each “department” of the online store) would deliver their content to me and to the one other front-end developer who was good at HTML (I know, right?), and we were to manually convert them into HTML and put them into the static pages of the site. (As front-end developers, we were strictly forbidden any database access. Because, you know, we were dangerous. We might put HTML in it.)

After a few weeks, I decided this was a ridiculous arrangement, so over the weekend I scraped together a quick-and-dirty, database-free CMS that would allow the writers to enter their content directly. The system would merge their content with prebuilt page templates, and save the output as static HTML pages on the server.

And so a career as a CMS developer was born.

At my next several jobs, I built more CMSes, honing the process each time (and always starting from scratch, since my previous work was the IP of my former employers). And eventually, when I went out on my own in 2008 (not to mention my first failed attempt at full-time freelancing, in 2003, which is going to be the subject of a future post), it was natural that I’d create my own CMS, and this time since I own the IP, I can keep building on it and expanding its capabilities.

Does my CMS have the polish and ease-of-use of WordPress? Probably not, although I’ve had more than one client (more than two, even!) tell me they prefer my CMS over WordPress. But the stock version of WordPress has a fairly limited scope of capabilities (you’ve got your pages and you’ve got your posts and, hey, why would you need anything else?), and my CMS is more modular, with a number of other capabilities (built in event calendar with registration, ecommerce, custom forms, etc.) that can be turned on or off to suit the needs of the client. WordPress is highly extensible with plugins, of course, but I find that, in short, if a client needs a custom solution, they need a custom solution. My CMS is a shortcut to a custom solution.

So that’s why!

Along this mental journey through the littered landscape of dead (or dying) content management systems, I learned a few things. I learned why I never fell in love with those early CMSes. And I think I probably also learned why I’m not “famous” in the field of tech bloggers/podcasters. I’ve been too busy reinventing my own wheel for much of the past decade to have the time to devote to self-promotion (and I don’t mean that as a slight against Gruber and Mann) necessary to achieve that level of recognition.