May 20, 2013

Embracing Remix Culture

"Good artists copy; great artists steal."
The first fandom I was ever really got in to was the Redwall series. Pokemon was another thing I was a fan of for quite a while, along with Dragon Ball Z. Recently I've become a fan of My Little Pony: Friendship is Magic. Both My Little Pony and Pokemon are notable for producing truly absurd amounts of fanart. Many people aren't actually aware of the massive amount of pokemon fanart that exists. Sonic is another fandom that produces stupendous amounts of fanart, and some of it is incredible:
Endless Possibilities Miles Tails Prowler Rat Rage BLAZE
Cracking down on fanart is obviously a futile endeavor, and so it has persisted in a legal grey area. People regularly sell unauthorized fanart at conventions like Emerald City Comicon, but it's largely ignored by the large companies, since the benefits clearly outweigh the costs of actually pursuing legal action. The exception to this, at least in recent years, seems to be games. For whatever reason, games are a large enough endeavor that they attract the attention of large companies and are squashed regularly. There have been many, many fan pokemon games (usually aimed at building an MMO) that have been shut down by Nintendo despite the fact that an official pokemon MMO has yet to materialize.

This happens even when the games are non-commercial, which is frustrating, especially when the game in question has clear, obvious disclaimers that it is not officially sanctioned and has no affiliation with the original company. If the company is so worried about maintaining the image and representation of its trademark, why doesn't Nintendo do something about the terabytes of pokemon porn being produced? The answer is that it can't, because there's just no economic way to do so. I bring this up, because this raises an interesting question: If Nintendo has been forced to allow truly absurd amounts of rule 34 being applied to literally every IP that it owns, why hasn't Nintendo's brand image suffered at all?

It seems to me that a large amount of this stems from the overzealous protection of brand image that heralds from an era when brand image was easily corruptible. This isn't 1990 anymore. We live in the age of Rule 34, where there is easily accessible, unspeakably horrible adult pornography made of basically everything that exists. The internet generation has grown up in a world where the instant we leave officially sanctioned websites, there will be grotesquely inappropriate artwork drawn that involves that franchise. We know this art has nothing to do with the official image because it's obvious and we're used to it. If someone makes an unofficial Pokemon game and it sucks, no one is going to mistake it as an official Nintendo game and fault Nintendo for it unless it gets really big.

Even if they do, Nintendo's ruined their own IP several times, and it never really seemed to matter. A case study is actually Sonic, which is an IP that has been phenomenally mismanaged by SEGA. They made a reboot of the franchise that is widely considered one of the worst games ever made. Then they released Sonic Unleashed, and a bunch of people grumbled, but they still bought it. Then they released Sonic Colors and managed to at least redeem themselves as being capable of not making crap, and then they released Sonic Generations, which was lauded as being a superb game and sold almost 2 million copies, doubling the sales of Sonic 2006.

In short, it doesn't matter. Even when the companies themselves completely screw up their own IP, it was rapidly recovered from. Franchises are not fragile. Despite this, we have super draconian copyright laws that prevent everything that was made after Mickey Mouse from entering the public domain. So far all we can really hope for is tolerance towards fanart from a major corporation. Given the increasing power of creative tools and the proliferation of the internet, it is becoming cheaper and cheaper for people to make their own art. There is a fundamental shift happening, but no company seems to want to acknowledge it, let alone take advantage of it.

With one exception.

Something particularly magical has happened with My Little Pony, where multiple background ponies have actually been named by the fans of the show. Derpy was the most prominent instance, though sadly the result was censored after it was deemed too offensive to people with disabilities. The fandom has produced ridiculous amounts of art, music, fanfiction, and even entire fan-made episodes. Hasbro has been remarkably lenient about all this, and it gives us a glimpse into the future of creative media. Sadly, the whole game thing is still there, with basically every single fanmade attempt at a My Little Pony game getting shut down by Hasbro (seriously, what's up with that?).

Eventually, modern companies will need to embrace Remix Culture as an integral part of the creative process. I would like to see companies allowing fans to sell their work so long as a 10% royalty is provided to the company, or something similar. This is basically an enormous emerging market that is being completely ignored. Furthermore, as a society, we need to let go of draconian enforcement of IP. Just as the patent system has become hopelessly outdated, so has our copyright system. We are entering a new era, where the tools needed to make incredible works of art are made available to the general population, and instead of encouraging it, we are crushing it.

Companies are so worried about piracy and people not buying their products the way they want them to buy their products that they aren't looking at alternative revenue sources. The companies suffer, the consumers of the media suffer, the fanart suffers, and the world is a less enriched place because of it. Art is an integral part of any successful civilization - look at the magnificence produced by fans of My Little Pony and tell me this isn't something we should be encouraging. I believe that something truly beautiful is happening here, made possible by a bunch of people who like cartoon ponies.





May 16, 2013

Contact

"We must be the change we want to see in the world." - Mahatma Gandhi
Given the enormous influence of The Matrix on a lot of what I make, many people assume that it is my favorite movie. My favorite movie of all time is actually Contact.

Many people assume the message behind Contact is that Religion and Science aren't mutually exclusive, but this is only part of the equation. Contact is really about faith. It's about never losing faith in your own passion, regardless of what it is. It can be science, religion, art, music, it doesn't matter. All that matters is that you find your passion, and you have faith in it, and no matter what happens, no matter what stands in your way, you fight for it.

Naturally, in real life, we don't have a Dues Ex Hadden Industries to magic away all our problems, but the movie does an excellent job of making sure the drama that plays out on screen does not undermine it's purpose. Even with virtually unlimited funding, Ellie finds out she's being forcefully kicked out of the Very Large Array. No matter what anyone says to her, she refuses to let it go. At that point in the movie, it is abundantly clear that absolutely nothing will stop this woman from pursuing her passion, no matter how insane or misunderstood it is, no matter what obstacles are put in her path, no matter what friends she may lose along the way. At this darkest hour, after everything seems to be falling apart, she goes to a cliffside to think.

And then she comes back.

She comes back, and she starts listening again, because she isn't going to give up, and that is when she hears the signal. That is when our hollywood movie is yanked out of reality and brings us on a fantastic journey through the stars. It happens after Ellie refuses to give up, even after the universe itself seems to be conspiring to ruin her.

Then, the project is stolen from her repeatedly, and she has to fight to keep it. Then, she is denied her desire to be the one to ride through the machine. Then the machine is completely destroyed and everything she fought for is taken away from her.

Then, our little Dues Ex Hadden comes back. Hadden gave Ellie her funding because of her emotional outburst at the investor meeting. Hadden saw the passion she had, the unstoppable fire and unshakable faith she had in her science project, and that is when he decided to fund her. Once again, Hadden moves us into the realm of fiction, and gives Ellie a second chance.

Contact is brilliant because it begins firmly anchored in reality, and only later, with a few nudges in the right direction, throws us into a world of make-believe. Carl Sagan is trying to make us ask, what if? What if we could fly? What if we could go to the moon? What if we colonized Mars? What if aliens contacted us? Contact shows us how beautiful life can be. It reminds us of all the amazing things that human beings are capable of when we ask that simple question, What If?

To answer it, we just need a little faith.

April 20, 2013

Playing On Easy Mode

Many people have difficulty understanding why I'm so upset about failing to do things that are, admittedly, things that very, very few people ever manage to accomplish. By any normal measurement of accomplishment, I should be leading a happy, fulfilling life as some hardworking, trustworthy programmer in a faceless corporation. What people don't understand is that this is the bottom of the barrel for me. Judging accomplishment based on absolute values is ridiculous and poisonous. It breeds entitlement and greed. Accomplishment is relative, because everyone is living life on a different difficulty setting. I'm a straight, white male in one of the most progressive cities in the United States. If life was a game, this would be the lowest difficulty setting.

I realized from a very early age that I was extremely privileged. It was obvious to me that I had the prerequisite talent and intelligence to be very successful if I worked hard. I was also intensely aware of the struggles that my less fortunate friends were going through. I utterly despised at how entitled the rich acted, as if they were more deserving of their money than the people who were simply less fortunate. I realized, if I could get rich, I could fight the system from the inside. Besides, with the ridiculous safety net I had access to, I could take far more risks than normal. This served as a nice dream, but my concrete goals still stayed firmly within the realm of reality.

It was when I took that fateful internship at Microsoft that things began to change. I began to realize that simply by teaching myself how to follow instructions so I could get through this ridiculously broken school system, life was starting to hand me things on a silver platter. I suddenly realized that my current goal of getting a job at Microsoft wasn't actually an accomplishment. It was too easy. Coding came naturally to me, and thanks to having a father who was also a programmer due to living 10 minutes away from Microsoft HQ in Redmond, I was able to start learning at the young age of 14. The demand for software engineers would only continue to rise as I got older, ensuring that I would never have to worry about employment ever again.

It was sickening.

People would tell me how talented I was, fawn over how I would do things that other people would find incredibly difficult with ease. By the end of my second year in college, I had stopped attending classes. I would walk in, drop off my homework, and leave. I still maintained a 3.3 GPA even though I was only trying to ensure I passed my classes. College wasn't worth my time, because it was still the path of least resistance. If I am forced to take on a normal job after graduating, I will not have succeeded, I will have failed so spectacularly that the only thing I was ever able to accomplish was the least difficult thing I was required to do.

On the other hand, a black lesbian women born into poverty in Alabama managing to get an associate's degree out of a community college would be fucking amazing. Anyone who can manage that has already accomplished far more than I ever have. Every time someone tries to compliment me on the scant few things I have managed to do, I want to scream at them to look at all the less fortunate people in the world who have managed to do incredible things, to whom no one pays attention to. I have the utmost respect for someone who can pull themselves out of poverty, because it is extremely hard to do. Those are the people that we should be admiring, not a bunch of rich white guys who don't know what it's like to not be able to pay the bills.

February 28, 2013

The Magic

There are weeks where I forget about the Magic, buried under instruction manuals, homework assignments and to-do-lists. Times when I can feel a burning hunger for fantastic journeys in far away lands, but can only swallow it hard and try to press on to deal with more urgent matters.

And then there are times where I am swallowed by it, my mind deposited inside another world, ravenously devouring every shred of artwork, literature and music, drowning myself in the tribulations of another universe. My imagination turns from a smoldering flame into a raging inferno, a hurricane of ideas that make me feel alive.

I often struggle with my music - my ideas are more often the result of luck than actual talent. But when I'm surrounded by the Magic, my troubles melt away and I become music incarnate, masterfully crafting melodies and harmonies with precise meaning, knowing precisely how to extend and embellish them even as they sit around as meek sounding rough drafts. Instead of worrying about the massive disconnect between my imagination and the song that is actually coming out of my speakers, I hear only connections, threads between them, roads that must be crossed to bring the song to life.

I always have a sense of Magic that flows through certain artistic works. In some it's barely a whisper, in others I can hear a raging storm behind a locked door, struggling to break free of artistic limitations. But in a select few, it is simply all-consuming, effortlessly carrying me away into another world, to such a degree that when I need to go to the bathroom, I pause halfway down the stairs, momentarily confused as to whose house I'm living in and why I know where I'm going. Sometimes it is music, divine melodies and delicately chosen instruments that coalesce into something beautiful, taking my mind to places it has never seen before without showing me a single picture. Other times, it is a story, a work of literature so powerful I forget that I am actually reading it, instead losing myself inside another universe, watching everything play out in front of me as if it were as real as the book itself. Twice now I have seen it in the blur of animation, stories brought to life with little more than sketches and a few in-between frames that affect me so deeply, they continue to fundamentally influence my imagination to this day. Other times it is the perfect harmony of all these things at once, a game that sweeps me into a galaxy far away where I care more about a 8-bit pixelated image than I ever thought possible.

I'm really more of an artist than an engineer. Sometimes I wield integrals instead of pencils and recursion instead of instruments, but they are nothing more than unusual artistic implements. I live to drown myself in imaginary worlds, and have spent my life trying to help artists achieve precisely this, which has significantly contributed to my tool problem. I want nothing more than to find an artist who has crafted something magical, and lose myself inside it as I help sculpt their world and breathe life into its inhabitants. My tendency to follow where the Magic guides me has resulted in a rather disproportionate number of artistic friends, which has unfortunately not been the most ideal situation.

I've always been disappointed by the fact that so many programmers consider code as nothing more than an obstacle to be overcome. The code is always somewhere else, separated as much as possible from the real art. There are so few who revel in the code itself rather than simply getting it out of the way as soon as possible. It tends to stunt their growth and narrow their vision as they spend less time trying to find elegant solutions to problems and more time writing hacks using what they already know. The trap we fall into, is that it's a good thing to be focused on producing results and not crafting elegant solutions at your job... but it's terrible for self-improvement. Reality dictates that successful programmers must be able to produce results, and yet in order to become good enough to do so, the same programmers must learn how to bury themselves in their code, exploring the infinite nuances of common problems and the aspects of various particularly wondrous solutions that arise. Once learned, the seasoned programmer can put these solutions to stunningly effective use in a real-world scenario - but they must be learned, first, and that requires more than completing homework assignments.

But I digress; my current badly timed state of heightened creativity right before a convention and having to grade a ton of homework is the result of two hilarious coincidences: Having a really bad day the weekend the season finale of My Little Pony was shown, which resulted in me catching up on all the episodes I had let slip me by the past year, followed by a google search that accidentally turned up the tvtropes page for a certain My Little Pony fanfic. There is a fascinating aspect of the My Little Pony fanbase where many of the writers keep building on each other's historical embellishments, to the point that there are now several relatively consistent canons running around, being cross-referenced in metafictional tales in a truly astounding level of creative co-operation. This culminated in one particularly long masterpiece that was such a brilliant work of art I stayed up all night to finish it because I just could not stop reading. There were quite a few random melodic ideas that sprung out of those stories, but that last one had a much more direct impact:



There is something otherworldly about how a fictional tale of characters that have never existed can touch us in such a profound way that it changes the course of our lives forever. That the stories we tell each other can shape the very fabric of history itself. It almost feels a bit... magical.

Twilight is very, very brief, lasting for all too short a time; it is rich, and beautiful, and in that moment the proud sun learns to set, and rest, and the moon ascends to watch over the peace of night. And then twilight is over, leaving the sun and moon to remember its beauty and wonder, after it has gone, changed forever by that brief moment of transition.
   - Eternal

February 24, 2013

The Dark Side of Web Development

I am, by no means, a very good web developer. I am, however, a highly experienced C++ developer. The end result is that people usually ask me why I like C++ so much when everyone else hates it, and everyone is supposedly in agreement that C++ is the worst language ever made and unless you are writing drivers you should never, ever use it. I mean, you can write games in Python now, right?

While these kinds of ignorant opinions are frustrating for me and my fellow C++ developers who actually need efficient cross-platform programs, that's not what I'm here to debate. In fact, if you think C++ is a complete piece of shit, I won't argue with you about that at all. For all I know, you may be right!

Unfortunately for you, web development is just as bad as C++.

Of course, I just said that I'm not very good at web development, so doesn't this disqualify me from having an opinion about it? On the contrary, the fact that I'm not very good at web development is extremely important. The reason is that one of the major complaints about C++ is that good C++ code is hard to write if you are an inexperienced developer. I can certainly attest to that fact, it's taken me years to develop my C++ skills to this point. The fact that Python code is so easy and natural to write is one of its major selling points.

The thing is, good HTML/CSS code is also hard to write if you are an inexperienced developer. I can attest to this too, because I'm an inexperienced developer, and its really goddamn hard to write good HTML/CSS code. Let me clarify what I mean by "good" here: by "good" I mean code that works on all platforms, doesn't blow up, and doesn't contain strange edge cases that will cause it to fail for no reason. Many developers preach the joys of functional programming, which eliminates most edge cases by prohibiting functions that have side-effects.

Everyone knows about the subtle, nasty bugs that can crop up in C++, often as a result of doing something that was intuitive, yet wrong. This is rehashed in the "C++ is bad" arguments over and over and over without end, especially with the functional programming zealots. The problem is that HTML/CSS has all sorts of really stupid crap that can happen when you do something subtly wrong with the HTML that is not immediately obvious to a new developer.

It took me a while to learn that you shouldn't be putting block level elements inside inline elements in your HTML - it will almost always work, until it doesn't, and it won't be obvious what exactly is going wrong. Many people new to HTML aren't even aware of HTML resets, so they'll have to try and remember which elements are block-level by default and which aren't. Then the new standard introduced a bunch of psuedo-block level elements that try to fix some of these problems, except they aren't supported by everything because MICROSOFT, so now you're stuck with a bunch of workarounds for IE that take forever to develop.

Just recently I discovered an amazingly weird bug with my webpage, wherein upon first loading it, all my buttons would be stacked vertically. It appeared that Chrome was ignoring float:left on those elements... until the page was refreshed or any other part of the website was visited, at which point everything started working again! Firefox, of course, didn't have any issues with it. The problem was that I had a <p> element defined as a giant button, then put <a href=""></a> around it because I wanted the entire button to be a link. This, of course, violates the inline/block element mandate I outlined above, despite it being a very natural thing to do - you want the entire button to link somewhere? Put a link around it. It'll almost always work, until it doesn't.

Trying to write perfectly standards conformant HTML is exceedingly difficult because half the time what you want to do isn't in the standard or is some hack that works almost all the time but not quite. The rest of the time, the "standard" way of doing things is completely and utterly bizarre, like using margin:auto 0; to center elements. But wait, that only works on horizontal elements! If you want to vertically center an arbitrary element, you have to use a lot of weird crap just to get it to work on everything. Or you could just use a table. But tables are bad, so you should never use them, even though they actually solve a whole lot of problems new developers have because their non-table solutions are completely unintuitive, because we're all trying to use a document layout engine to make GUIs, for crying out loud.

Many web developers argue that these problems are going away now that we have a better standard. Sadly, they are just getting started - WebGL will become exceedingly important in the next 5 years, and its standardization is an absolute mess almost to the point of it being unusable. Then there's the sordid situation with HTML5 audio and video, which is only just starting to get tolerable. These problems are not going away - they are simply being replaced by different problems. Of course, some stuff actually is becoming easier in HTML - just like a lot of stuff is becoming easier in C++11. So either you ignore both the new C++ features and the new HTML features, or you admit that C++ has become less horrible recently.

Of course, C++ is still way too easy to write unmaintainable code in, and HTML/CSS code is clearly self-documenting! Except it obviously isn't, given the endless horror stories of terrifying CSS dependencies with random !important keywords flung around in a giant mess that's just as impossible to understand as templatized C++ hell.

But wait, if you just write proper HTML, it won't have that problem! Well, duh, if you write proper C++, you don't have that problem either. I'm sorry, if you are going to hate something, you can't have your cake and eat it too. If C++ supporting features that can be abused to make code impossible to read, like operator overloading, makes it a bad language, then CSS is a bad language, because there is an endless list of obscure, bizarre syntax you can use in your CSS style sheets (like !important) that will make your HTML almost impossible to read. But wait, C++ is also incredibly hard to parse! HTML being easy to parse must be why Opera recently gave up trying to maintain its own HTML layout engine... Oh wait. Well at least javascript is a consistent, easy to understand language that doesn't have any weird quirks... JUST KIDDING!

So it seems modern technology has succeeded in replacing a very fast, difficult to use, inconsistent language with 3 different, very slow, difficult to use, inconsistent languages.

Now, if you want to believe that HTML/CSS is still good when used correctly, then all I ask is that you grudgingly admit that, maybe, just maybe, C++ is also good when used correctly. If you still think C++ is an abomination from the depths of cthulu, I hope you can admit that web development therefore must also be an abomination.

Or we can just keep arguing with each other, because that's always productive.