Found some old screenshots…

When I first came to Penn, the website for the Nominations & Elections Committee looked like this:

Old NEC site circa 2011
No, this wasn’t the year 1999… this was in 2011.

NEC website redesign

I set out to redevelop and redesign this, upgrading it from a static HTML site edited over SFTP to a WordPress CMS on Canvas. More importantly, the website redesign in 2012 needed to fit the rebranding that Penn underwent that academic year. In other words, I wanted it to look more like the university’s design. (An email to the Communications office responsible for web assets clarified that we could, in fact, do this.)

Continue reading “Found some old screenshots…”

What’s wrong with the Internet?

I just have a lot of feelings, from Mean Girls

BuzzFeed is not known to be a shining beacon of quality journalism. It has a reputation for link-bait headlines (“38 Crazy Things You Never Knew About Kangaroos”) leading to GIF-laden lists. It publishes quizzes (answer a bunch of seemingly random questions before a script shows you the logical conclusion of your answers) so unscientific that no one should ever take them seriously for big life decisions.

BuzzFeed thrives on the short attention span of Generation Z—children born into an age when they can expect news to be spoonfed to them in bullet points and images.

I just have a lot of feelings, from Mean Girls
… how could long walls of text about important things ever compete with simple GIFs worth a thousand words?

The people behind The Onion certainly saw right through this. They recently launched “ClickHole — Because all content deserves to go viral”, to parody both BuzzFeed and every other content-aggregating website that feeds on social media frenzies. (Worth mentioning: ClickHole parodies far more than BuzzFeed itself; it even incorporates references to Upworthy, the feel-good viral-video site with a cloying habit of telling you what to think about its clips before you’ve even watched them.”)

ClickHole, the Onion's parody of viral content
ClickHole, the Onion’s parody of viral content

But BuzzFeed has also published some high-quality longform pieces, dubbed BuzzReads. These are serious articles that cover the entire spectrum of subject matter, from politics, to technology, to rape and social justice. They’re of sufficient quality that they could easily pass for an extended newspaper exposé or magazine centrepiece. Targeting a more mature audience seeking longer reads, these feature stories often carry the same socially-liberal perspectives espoused by the rest of the site, while employing words more eloquent than their pop-culture GIFs could ever be.

I’ve had my doubts that BuzzFeed can sell itself in both markets. As great as the quality of their content may be, and as awesome as their access to reliable sources might be (the site has a DC operation with press pass access), it’s hard to “[break] down the divide between the light and the serious.” It’s a challenge the site’s editors realize:

“I think we need to show people that it’s up to us to write it in a way that has the context, has a compelling narrative to it. If you give them more of this and mix it in with fluff, and it’s treated equally by the publication, the public will start to treat it the same way too.”

Two years later, I think they’re starting to make some headway, at least among the social media users who are more publishers than consumers. People are sharing BuzzFeed’s longform essays on social media, using the site’s content to express beautifully the thoughts they could not write themselves.

What’s the reception like? I think many people on the consuming end of content are still sometimes skeptical. And I’m not sure that many people associate BuzzFeed sufficiently with quality content that they would be willing even to give reading BuzzReads a chance.

Case in point? This ignorant comment posted by a BuzzFeed reader on a post about the termination of American Apparel CEO, Dov Charney.

People don't like serious BuzzFeed
Apparently some people don’t like BuzzFeed getting serious.

That article wasn’t even a longform essay. BuzzFeed had, through an anonymous leak, obtained an exclusive copy of the CEO’s termination letter, which no other news outlet reportedly had done. It was news, and it was worldly.

Apparently too worldly for this one commenter, who seems to think that only funny, entertaining, and “pertinent” (whatever that means in this context) content deserves to be published on a site from which they expect only entertainment.

I would be a fool to equate this one person’s opinion with everyone else’s. However, this is merely one example of the derisive attitude towards long online content I’ve witnessed first-hand—scroll through my Facebook timeline, or my friends’, and you will certainly find that GIFs and short interactive quizzes get more likes and click-throughs than essays about anything.

Why is that? It’s not like everyone is working 18-hour days in finance… Why don’t we, college students and young professionals, seem to have time for intellectual engagement outside of the classroom, on the Internet?

Old lady learns about the Internet from Orange is the New Black
An old prisoner learns about the Internet. From Orange is the New Black, season 2.

This old lady learns about the Internet for the first time, in Orange is the New Black—my newest favourite show. “But people are still stupid, right?” Indeed, the very technologies that made information so much easier to access, also made it easier to seek information in the shortest tidbits possible. Why read an entire screen of text, if you can get the essentials in 10 animated images?

There’s something deeply disturbing about this trend. It’s different—markedly different—from high school classes recognizing comic books as valid literature. This is a trend that makes education and self-expression more difficult, and less valuable in the eyes of this generation.

Media in our technological age must seek not only to earn pageviews, but also spark deep, insightful conversations about important contemporary issues. Instead of stooping to the lowest common denominator, as BuzzFeed seems to have done in its early launch, they have to champion the cause of literacy and engagement.

Why are genuine discussions about ethnic conflict or self-determination (indeed, a late-night discussion I’ve had quite a few times this week with my friends) outside of the academic environment so rare? Maybe, in part, it’s because of the Internet we consume.

Spambots gone wild

On one of my sites running WordPress, Akismet (and other antispam plugins) is not installed. In some ways, it has served as a honeypot, revealing interesting tidbits about how spambots work.

Fascinatingly, there were several hundred of these comments, all identical to each other. They look like templates for comments to be generated by spam-producing software, except that the software never processed the templates and posted them verbatim instead:

When NOT to use Flash

I’m calling out The Daily Pennsylvanian for worst uses of Flashever. Flash animations make sense when interactivity is demanded, and only then, in rare cases.

A couple of months ago, this happened: a post lauding the university for winning the 2012 CIO 100 Award for mobile-friendly sites, using Flash as the only content on the page:

The irony.
The irony.

To top it off, guess what the mobile site shows on a phone?

Mobile friendly, my ass.
Mobile friendly, my ass.

Yeah, that’s right. A blank article.

I wouldn’t be so mad if it were a one-time thing. But then this illustration of our commencement speakers was published this week:

You can't think of a way to present this well with a table?
You can’t think of a way to present this well with a table?

Again, a blank article shows on mobile. And it’s not just my phone that does this: development of Flash for mobile was halted nearly 2 years ago, and iOS has clearly not had Flash since the start.

But my gripe isn’t with Flash itself, or even with mobile compatibility — I’m just upset that people are using a medium that doesn’t make sense for things that shouldn’t even be interactive. I get it; college kids like to play around with software, or whatever. But you guys gotta stop this.

Random PHP/MySQL discovery: time differences

I had been plagued by a nagging question while developing a PHP application: how do I calculate the difference between two timestamps, to check whether the timestamps are within x minutes of each other?

My initial solution wasn't at all perfect, although it was still better than developing an algorithm from scratch to decipher timestamps into hour/minute/second objects and coding math.

Solution 1: MySQL's TIMESTAMPDIFF()

My first solution was to use a function native to MySQL, TIMESTAMPDIFF(). This function takes in three parameters: the unit of time in which the return value will be, and two datetime expressions.

To query whether a given timestamp was within 15 minutes (either +/-) of the current UTC timestamp, I used this statement:

SELECT ABS(TIMESTAMPDIFF(MINUTE, *********, UTC_TIMESTAMP())) < 15

It worked, but I wasn't satisfied with having an extra query just to verify a timestamp. Besides, I was concerned about speed; that one query takes about 0.004 seconds to execute, which was too much for me.

Then I discovered the native Date/Time extension, built-in on PHP 5.2 and above.

See the better solution after the jump »

Tracking the #thesiswp matter: Part 1

Twitter erupted into argument last night in a fairly important battle for open source, the GPL, and WordPress. At the centre of the issue is a theme framework called Thesis which plugs into WordPress, sold with a restrictive license that does not permit redistribution.

Background

To provide some background, WordPress is a blogging platform licensed under the GPLv2, which specifically forces all copies of a work licensed under GPL, as well as derivative works, to be licensed under the GPL:

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

The Free Software Foundation explicitly addresses plugins in its FAQ, making it clear that plugins that share data structures with the main program and make function calls to each other are derivative works to which the GPL also applies.

Themes were an uncertain matter prior to last year’s legal opinion from the Software Freedom Law Center, because these works from third parties certainly build on top of the WordPress platform, but often extend it with original artwork and programming. The analysis states clearly that:

… it is our opinion that the themes … contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works. Specifically, the CSS files and material contained in the images directory of the “default” theme are works separate from the WordPress code. On the other hand, the PHP and HTML code that is intermingled with and operated on by PHP the code derives from the WordPress code.

Though almost all of the other theme foundries have adopted the GPL license for their PHP code, Chris Pearson stands nearly alone in asserting the GPL’s viral clause is inapplicable to him.

Initial controversy

On a live webcast with both Chris Pearson, the developer of Thesis, and Matt Mullenweg, the founder of Automattic and the WordPress project, Chris expressed his personal belief that the viral nature of the GPL goes against his personal freedoms and rights as a developer:

Chris: One, it would require me to make a concession about something that I don’t think that I need to concede to. Why should I change? I’m protected right now. My work is protected, which it should naturally be. I want to retain that right. If I go GPL then I am ceding that right. The number one issue for me is the personal concession that I would be making. Not of any real impact to my business. I don’t want to make that personal concession, because I don’t have to. Okay?

Note: it is possible, in terms of the GPL’s legality, that Chris never had the right to prevent users from redistributing his code; if the GPL applies, a developer cannot restrict redistribution.

Matt, on the other hand, debates to defend the applicability of the GPL to themes and plugins:

Matt: … If you build a module for Drupal or a module for WordPress or a theme for WordPress or anything like that, the license says that you do have to follow the GPL. I think that it’s just a matter of choosing the platform. If you disagree with the GPL, just use a platform that doesn’t have the GPL.

I listened to all of the long back-and-forth encounter, which was interesting until Chris began to assert his importance in the community:

Chris: I’ve done great things with WordPress since 2006. I have been arguably one of the top three most important figures in the history of WordPress. You, Mark Jaquith, and myself, are the three people that I am talking about.

Wait, what? A developer whose theme accounts for such a small fraction of WordPress’s usage puts himself in the top three figures in WordPress history? Jane Wells had a similar encounter with his ego.

» See the top 10 figures in WordPress history.

[acm-tag id=”468×60″]

Analysis of this part of the controversy

The crux of the controversy is summarized by Chris’s sentences here:

Chris: I think the license, the GPL, is at odds with how I want to distribute my software and what I want it to be. I don’t think that it necessarily should inherit WordPress’ license when over 99% of the code within Thesis is Thesis code based on the actual process of building a website.

As someone who also contributes to open source software, I can certainly understand his sentiments on the ‘infectious’ nature of the GPL, which forces derivatives to inherit the GPL. It’s pretty hard to release projects under even more permissive licenses (for example, the Apache License), or in Chris’s case, extremely restrictive proprietary licenses, when so many open source projects enforce the GPL.

That really is, though, the purpose of the GPL: to keep open source open by prohibiting its inclusion in fully closed-source or proprietary (and restrictively-distributed) projects.

Are themes derivative works?

A lot of the open source advocates and lawyers seem to think so. After all, themes do things like:

<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?>

and

<?php if ( $wp_query->max_num_pages > 1 ) : ?>

which show clear integration with WordPress core functionality, much like a program in C would use the MySQL library with

mysql_real_connect()

Granted, the MySQL developers explicitly allow derivatives to use non-GPL licenses even though MySQL is GPL, through an additional license exception. The reason such an exception is necessary is that they understood that works which link to library code are derivatives.

The biggest problem is that the GPL was written with compiled code in mind, where derivatives would have to bundle the libraries (e.g. DLLs or SOs) in their releases. It’s sort of unclear for interpreted languages like PHP; is it an indication of derivation if one piece of code makes a function call to another?

It’s a bit unfortunate WordPress wasn’t licensed under GPLv3, because version 3 is much clearer about what it means to make a “modified version” or a work “based on” another work. It would also make for a better court case.

Caleb Jenkins (@CalebJenkins) iterates an interesting point: dependent != derivative. While I can see this being an interesting legal argument, it would have a lot of implications for open source in general, completely contrary to the way things have been operating.

If using a dependency is not being a derivative of that work, then it is conceivable that one can produce a C application which links to a GPL library (for example, the FOSS-licensed version of the MySQL client library) without bundling it and is released commercially under a closed-source, restrictive license. It is conceivable that a PHP program might require() WordPress to use its functionality, but simply not bundle WordPress, and would then avoid classification as a derivative.

I’m afraid I can’t entirely lend my support to that argument.

People have argued that making function calls to WordPress is akin to making system calls to the underlying operating system. Unfortunately, only GPLv3 is clear about distinguishing the system and compiler libraries from other general code; of course it doesn’t make sense that every application on the GPL Linux kernel must be open source. It’s a valid argument.

However, I agree more completely with Matt’s contention that a dependency = derivation when it gets to the point that a WordPress theme without WordPress will not work (just try loading any theme’s index.php in a browser) while WordPress without any themes will still function — it won’t show anything, but its backend is still fully functional.

Chris Pearson is wrong when he says “I think that what I’ve done stands alone outside of WordPress completely.” Interestingly, read the context of this quote:

Chris: How is that? I think that what I’ve done stands alone outside of WordPress completely. Why should I respect that? It’s not that I don’t respect WordPress. I do. I only build on WordPress and push people in its direction…

» Now here: Part 2 of Tracking the #thesiswp matter.

» Also read: Why WordPress Themes are Derivative of WordPress by Mark Jaquith (@markjaquith), a lead developer.