I haven't ever legalized marijuana, and neither have you

The basics of this great post by Stevey Yegge is that people who are for the legalization of Marijuana haven't thought about all the questions that are associated with making it legal, and that it is much harder a problem than it looks on the surface.

As soon as I saw the high comment count I was pretty sure I knew what most of the comments were going to say, and I was spot on. The comments are littered with, "actually, legalization would be super easy" (it wouldn't) and, "you are making it way harder than it needs to be" (he wasn't). And on, and on.

But the most prevalent comment gist was "just because it's hard, doesn't mean we shouldn't try." Sure it does, if the perceived benefit isn't outweighed by the perceived costs associated with making it a reality.

I happen to agree with Stevey here. I think legalization of Marijuana would be tons more difficult, with way less pay off, then most pro-legalization people would have you believe. And personally, I feel that the vast majority of people that smoke marijuana wouldn't benefit from legalization anyway since they are under 21 years old and any legalization would most likely be for 21 and over.

Now, for some of the quotes I liked from the post. The first part of the article talked about complexity, to highlight how complex a problem like the legalization of marijuana might be, by highlighting how hard it was to make a change at Amazon.com (where he used to work):

anything you try to do at Amazon these days involves touching a thousand systems, all of which are processing gazillions of transactions a second, and you want to completely redo the database schema [...] I suppose I should think of it as a valuable experience. If nothing else, I understand Complexity in a way most people will, mercifully, never have to.

Stevey then describes what most management, most of the commenters on the internet, and every armchair programmer, armchair activist, and armchair politician have in common:

[they] have what my brother Mike refers to as "Shit's Easy Syndrome".

You know. As in, shit's easy. If it's easy to imagine, then it's easy to implement. Programming is just turning imagination into reality. You can churn through shit as fast as the conscious mind can envision it. Any programmer who can't keep up is an underperformer who needs to be "topgraded" to make room for incredible new college hires who can make it happen, no matter what "it" happens to be, even if they have to work 27 hours a day [...] Shit's Easy syndrome is, well, pretty easy to acquire. Heck, you don't even have to be a VP. Directors sometimes get it if they stay away from the code for too long.

Sadly, most of the people that suffer from this syndrome have made their way onto the internet, and they love telling people what they want. They don't care if the majority of the population doesn't want the same thing, or care at all for that matter. All that really matters is they want it, so everyone needs to accommodate them. after all, their request is easy, right?

But what I love most about these people is they can't be wrong, despite often times not having any real data to back up their position. And they don't hesitate to attack your character if you offer a differing opinion.

The great thing about the internet is that anybody can voice their opinion. The bad thing about the internet is that anybody can voice their opinion.

Twittering Conspiracy Theories

much like the sketchy history of MySpace.com, the rise of Twitter has had its share of bumps and bruises. On Thursday (May 1, 2008) there was some discussion (see here and here) that Twitter might be abondoning Ruby on Rails (RoR), the web framework Twitter was originally programmed in.

There was also an article on Eweek about Twitter proving how great RoR is which Venture Beat chalked up to bad timing.

The Eweek article is a typical fluff piece but does have some interesting comments from Twitter Senior Engineer Britt Selvitelle, who I assume was speaking for the company. He opens with a nice quote about how great RoR has been for them:

"if we need to drop down to a lower-level language we are prepared to, but we haven't had to." In the future, he said, "We might have to optimize certain parts of the system with C++ or something, but as of yet, we haven't had to." [Emphasis mine]

Then he closes with a seemingly contradictory quote:

"We use Ruby as our primary language. We have plenty of back-end architecture in other languages. Especially prototypes. We still use Rails and have no plans to discontinue this in the future." [Emphasis mine]

So which is Mr. Selvitelle? Has RoR solved all your problems? Or have you switched some things to other languages? Something you said you haven't had to do yet?

According to Evan Williams, Co-Founder at Twitter, lots of RoR code has been replaced:

FWIW: Twitter currently has no plans to abandon RoR. Lots of our code is not in RoR, already, though. Maybe that's why people are confused.

I can see why Twitter has been having so many growing pains if its own engineers don't even know what language it is programmed in.

On a final note, I love Twitter, it is one of the few services I have even bothered to sign up for.

13 TV shows that shouldn't have been cancelled

You can add to the list: Studio 60 on the Sunset Strip and The Black Donnellys.

I must admit, a lot of these shows I had never heard of.

Words that should be banished from the Lexicon

While I don't really agree with a lot of the list, it was still a funny, though NSFW, read (ironic, since I read it at work).

Take that Itunes!

Apple Inc. makes very cool products and currently sit in a position most companies would sell their mothers for. The idea of something new coming out of Apple computer determines buying decisions for many people. For example, Dee needs a new phone, and everywhere we go she looks at phones to see which one she likes. I, however, kept reminding her that the Apple phone was soon to be released and she would be better off waiting for that. Sure enough, when I saw the Apple phone I was in instant geek love. As a person who rarely checks his voice messages and can't stand the slow automated computer lady of my carrier (next...message...from...phone...number...8...AHHHH!), I have no idea why visual voicemail hasn't been around for years.

The problem with Apple though is their first generation products usually have show stopping issues that keep me from buying them. Which means I will have to wait at least a bit to hear about any "issues" before getting an iPhone (which sucks since they are not coming out till June to begin with). The nice thing is that Apple eventually works out all the kinks so their products can live up to the hype. Except for one product -- and it's a pretty important one -- even though its software, not hardware.

I actually dislike a lot of Apple software (I'm looking at you Quicktime), but the one I am referring to today is Itunes, the bane of my music organizational life. I really dislike Itunes and here's why: It is too damn slow. I have a fairly large digital music collection and Itunes just grinds to a halt whenever I try to maneuver around my collection. I have heard Apple apologists (those who think Apple, and Steve, can do absolutely no wrong) say that Itunes was never meant to handle large collections. What? With the largest Ipod having a capacity of 80 gigs, and the only Apple sanctioned way to get music in and out of it being Itunes, this excuse is lame to say the least. Not to mention the fact that Itunes starts to slow down rather dramatically with just a few gigs of music loaded.

Itunes is slow because of bad programming, pure and simple. And worse, it's bad programming that has never been fixed. Itunes writes out an XML file for everything it does, so when a song finishes, Itunes writes out a whole XML file just to update that songs play count. With one, two, or even a couple thousand songs this is no big deal as the XML file is small. However, with tens of thousands of songs this becomes a problem since the XML file grows pretty big pretty fast. And since Itunes doesn't seem to do the output in the background in another process, it slows the entire interface to a crawl. The XML file is great if you are one of the minority of users actually doing something with it, but most of us do squat with it. And since there is no way to stop Itunes from writing it out (a glaring oversight in my opinion) I thought I was stuck. Itunes has become so unwieldy and slow that it is difficult to even update my podcasts on my Ipod for my commute to work (the only thing I still consistently use Itunes for). Using Itunes has become a chore, not a pleasure, to use, and that is an experience that is very atypical Apple.

Anyway, while surfing Google looking for a solution, I came across a lively discussion at the Apple Blog. The comments suggested, though aimed at Mac users, locking the XML file. This prompted me to wonder if I could do something similar on Windows. Sure enough, making the XML file read only made Itunes respond significantly faster -- though far from fast.

In my opinion, Apple should fix these problems with Itunes since people's music collections are only getting bigger and Itunes is only getting slower. A typical user should not have to do anything like locking an XML file to get a usable Itunes application. I can only hope Apple is working hard in silence to fix these problems (though I doubt it).

The XML file is located, on most Windows XP systems, in: "my documents\My Music\iTunes\iTunes Music Library.xml". Right click, select properties and check read only. That should neuter Itunes' XML writing capabilities.

Have a tall cool glass of Global Warming

From This review of The Revenge of Gaia

Most of us love our lifestyle far too much to think seriously about doing anything to protect the world for future generations.

The problem with tackling a topic like Global Warming is that no one knows for sure what the earth would be like without people crapping it up all the time. And since Scientists don't have an untouched earth to compare the current earth too, they can never be certain the earth isn't just going through some normal earthly cycle.

Cum Hoc Ergo Propter Hoc


"with this, therefore because of this" or "after this, therefore because of this"

Any first year Statistics student is taught that "correlation does not imply causation." While correlation may be indicative of a relationship, it is not definitive. Only through experimentation can a causation be confirmed. Basically, that means in order for you to prove--beyond doubt--humans are responsible for global warming you would need other planets, similar to earth, untouched by any human. Easy, right?

Just because Global Warming can't be proved beyond doubt doesn't mean we shouldn't take steps to protect the environment, it just means our understanding isn't complete and you should be skeptical of any person or organization that uses global warming to advance an agenda (I'm looking at you Al Gore).

At the end of the day though, I agree with the quote above. Even though most people recognize we are causing problems with the world, nobody wants to take the necessary steps and actually sacrifice the luxuries of modern living to prevent something like Global Warming in the face of less than definitive scientific proof. Except for maybe that Ed guy. He seems pretty committed to the environment, though the gas, electricity, and products the cameramen consume might be another ball of wax entirely.

The week in Movies

Hollywood has stabbed me in the back again. They do this to me every year, yet I keep coming back for more. The Christmas season is a big time for me--while most people get excited about Christmas and spending time with the family--I get excited about the big summer movie DVD releases (I love you mom and dad. Can't wait to come home!). Hollywood first got me two years ago with Van Helsing and The Chronicles of Riddick. Last year they nailed me with The Fantastic Four, Charlie and the Chocolate Factory, and War of the Worlds.

But, being ever the optimist, I was sure it would be different this year. After all, Hollywood wouldn't jam that knife in my back for a third consecutive year. Alas, no, this year they even twisted the knife a little with the recent release of Pirates of the Carribean: Dead Man's Chest and Miami Vice. I don't know why I let them toy with my emotions like this. I need to break my dependency on Hollywood for visual entertainment since every year I look forward to watching the big summer movies I neglected in the theaters, and every year I wonder how these movies even got greenlighted.

My time wasn't completely wasted though. Miami Vice has solidified Jamie Foxx's entry into the elite club of Academy Award winners that can't make a decent movie after winning the coveted little golden statue. Jamie is joining such notable former A-listers as Halle Berry, Ben Affleck, and Kevin Costner. Stealth secured his nomination. Miami Vice assured his entry. Congratulations Jamie, this reward is well deserved.

Seriously though, if I sat down with a pen and paper with the specific goal to write the worst movie known to man. I wouldn't have arrived at Miami vice. I am left wondering if stars get different movie scripts in the mail--scripts with explanations, annotations, descriptions, good dialog, and a plot--than the scripts they eventually use to actually film the movie. I can't imagine any sane actor reading the script for Miami Vice and thinking, "I have to make this movie!" The plot (if there was one) made absolutely no sense. At least I was distracted from the lack of a plot by trying to understand what Collin Farrel and Gong Li were even saying--Colin Ferrel because he faked some horrible southern accent in what I am guessing was a poor attempt to cover up his true accent; Gong Li because she evidently doesn't speak English very well.

And don't get me started on Gong and Collin's supposed "romance". It wasn't believable by any stretch of the imagination and proves, once again, that action writers couldn't write a credible love story to save their lives (prove me wrong, dammit!). While I bought Gong's performance in Memoirs of a Geisha, I felt she was a tad miscast as a seductive drug mistress whatever she was, I just didn't buy it at all. Dee gave her opinion of the movie by falling asleep about 20 minutes in and not even asking how the rest of the movie was when I awoke her at the end.

One last little nitpicky thing. I would like to say Miami Vice forwent plot and acting for non-stop over-the-top action and violence, but it didn't even have action. I was young when Miami Vice was on TV but I remember guns and shooting and stuff. This movie had one shootout--AT THE END. What is up with that? It isn't like they were cutting gun play for character development or an engrossing storyline or anything.

Miami Vice was bad, though I might not have been so angry about throwing away my rental dollars had Dee and I not just sat through Pirates of the Carribean: bored Dead Man's Chest.

Pirates is also joining the ranks of an elite club. A club consisting of the last two matrix movies, the last two Jurassic Park movies, and every Star Wars movie that isn't part of the original trilogy. That's right, Pirates is joining the sequels made only for profit club. Normally, at this moment I would blame the new director and the new writers for not being true to the genius that was the original movie. That didn't work in the case of the Matrix movies and it doesn't work here either (damn!), since the writers and directors are all the same.

I do, however, blame laziness. I think their reasoning behind not trying as hard after the first time is because the audience will go see the sequel no matter what because they liked the first one so much. Then, even though they might hate the sequel, they will go see the rest of the movies because they have already seen the first movies in the series and they might as well watch to the end. It is kind of like how I always get hooked into watching the end of Parental Control (bad website design warning) on MTV because I want to see if the kid stays with the boyfriend/girlfriend or choose someone else. Like Lemmings, we follow our favorite movie franchises right off the cliff of good franchise into the valley of mediocrity below.

I like Johnny Depp. He made the first Pirates movie downright watchable with plenty of humor and wit. He also made his character, Jack Sparrow, likable. However, all that has changed in the sequel. Jack Sparrow is a lowlife backstabbing two face possessing none of the redeeming qualities demonstrated in the first film, not even the sarcastic humor. Yet Orlando Bloom and Keira Knightly keep mindlessly helping him with no thought to their own well-being, like lemmings to the slaughter, and I have no idea why. Jack Sparrow has become more like the friend you had in grade school that dares you to do things you would never do in any other circumstance, like stealing candy or something, and then runs away laughing when you get caught.

Also, Keira Knightly sudden attraction to Johnny Depp once again proves my theory that action writers can't write good (or remotely believable) love stories (I mean it, some writer needs to prove me wrong). Overall, the movie had none of the charm of the original and was probably the biggest movie disappointment of the year for me. Dee also decided that Davy Jones voice was not scary, to which I wholeheartedly agree. Villain's voices should entice fear in your heart, not make you giggle.

I am still holding out hope for Jet Li's Fearless. We'll see if Hollywood breaks their losing streak this year. But if I am disappointed, at least there is Christmas and the New Year to cheer me up.

The Problem With Being a Programmer Part 1: User Interfaces

Programmers can change the world. That is the wondrous thing about being a programmer. Our programs have the capacity to be used by millions of people. We can say, when we hear someone talking about that cool new feature in some cool new program, or how such and such a website is the best, that we were a part of something great.

This is something that separates a programmer from say a video store clerk or fast food worker. I remember, during my darker less ambitious younger years, I took a job at KFC in order to work with some of my good buddies at the time. One afternoon we were arguing with the Manager. You see, our manager had taken the stance that managing a KFC is great because the pay was actually pretty good with reasonable hours and benefits. I still remember how my friend ended the argument, "I want to be the guy that changed the world, not the guy that served chicken to the guy that changed the world." This is the great thing about being a programmer, you could actually be that guy who changed the world. Ranked among the likes of Larry Page and Sergey Brin (co-founders of Google), or Bill Gates. After all, they were just programmers--that changed the world.

However, most programmers forget about one of the most crucial elements in software design: the user experience. We get so caught up in figuring out the best way to solve a problem deep down inside the code that we ignore other problems much more likely to affect our users. I bring this up because I went to Kinkos Fedex the other day to send out a fax and mail a package and I paid with a credit card.

Normally, paying with a credit card wouldn't be a big deal, but this one was because after I swiped my card, the little touch screen asked me to sign my name digitally inside a little box. No problem I thought. I grabbed the stylus and began to sign my name. Those who know me have usually commented on my signature at one time or another. My dad says I should have been a doctor because no one can read my signature. I like the long swipes of the pen and the seemingly anarchic look of my signature, but the credit card machine did not. Every time the stylus left the confines of the little box, an error message popped up that could only be dismissed by hitting OK. This happened a number of times until the lady finally stopped me and said to just hit "enter."

This experience didn't need to happen. The programmer made a decision to place an error dialog box instead of just ignoring all stylus touching outside the box. That is all that needed to be done: just tell the code not to record the movement if it is outside the box. I have seen it done on other similar credit card machines. And being a programmer myself I know it is certainly possible, if not trivial, to implement. Sadly, this particular programmer didn't take into account the user experience. Millions of people are going to use and interact with his work, and most aren't going to have anything nice to say about it. After all, I can't be the only one with a long flowing signature.

This takes me to another program that has a similar problem, I use the very cool (and free!) ssh secure shell client for uploading and downloading remote files to my server. The interface is very similar to Windows Explorer, the biggest difference is that when I drag a file from the left (my local hard drive) to the right (my remote hard drive) and I decide that I am dragging the wrong file so I bring it back to the left and let go of the mouse button, the program pops up an error saying:

Cannot copy index: The source and destination filenames are the same.

This is annoying and unnecessary. I know they are the same file. I dragged it back over and let go because I wanted to cancel the operation. Windows explorer does it right by just canceling the operation. No error, no dialog to click on, nothing. That is how it should be done.

The overall user experience should be taken into account when designing something that people are going to use. I know it is difficult, I have problems with it myself. My mom complained to me the other day that she didn't understand how to get out of the pictures that pop up in my very own home brewedimage gallery. Obviously, that meant I had to go back and rethink my whole navigation solution--which I hope is more obvious now.

I guess that is the key, when you do identify a mistake in the user experience as a developer, don't take offense, just fix it. Trust me, your users will thank you for it. Sadly, this probably can't be done easily in something like the credit card machine.

Update: The New York Times has a great article titled: Awaiting the Day When Everyone Writes Software that kind of jives with what I posted above. You might have to login, in which case I recommend BugMeNot.

After Watching Fast and The Furious 3

You know your career has taken a slide when you don't want to appear in the sequel to a hit movie you starred in because you think it is now beneath you. But you then go on to have a cameo appearance in the third installment. I'm looking at you Vin Diesel.

And one other thing, I have noticed this in every movie, but the Fast and the Furious 3 is the straw that broke the camel's back. Why on earth when you are racing someone, or someone is chasing you with their car and they are all slamming into you on the side with their car and stuff trying to force you off the road. Why doesn't the chasee ever slam on her brakes?

It seems to me like this would be the best solution to the problem of getting sideswiped repeatedly. Maybe the chaser would then swerve and lose control. You never know, I just don't understand why no one ever thinks of that in the moment, instead they speed up and try to outrun them. even if the chaser didn't lose control, the chaser would atleast blow by them and they would have some time to react.

Oh yeah, they didn't do it on Prison Break also, and the whole time they were getting side swiped I was thinking that slamming on the brakes would be the best solution to their problem.

I'm one of the people behind Plancast.com. Our goal is to make it easy for you to share your plans. Maybe you read about us on Techcrunch or ReadWriteWeb?

About me: About.me
My Plans: Plancast.com
My Notes: Noopsi.com
My Tweets: Twitter.com
My Code: Github.com
My Resume: LinkedIn.com
My Facebook: Facebook.com
My Google: Google.com