Live Free or Die Hard Sucked

Author: Simmoril | Date: 23.2.2008 | Category: General

Full disclosure: I got about 53 minutes into this movie before I had to shut it off. Part of that had to do with me seeing it get a 7.7 rating from IMDB.com, who, btw, I have now lost all respect for. Seriously, anyone who thinks that this movie has a plausible plot line with a credible threat needs to be banned from ever using technology ever again.

Book Review: Way of the Peaceful Warrior

Author: Simmoril | Date: 28.1.2008 | Category: General

Way of the Peaceful Warrior Book Cover

I must admit, as I was reading this book, I radically changed my mind about what I wanted to write in this review. I went though a veritable roller-coaster of emotions; I hated it, I liked it, I loved it. By the end, I could almost guarantee that anyone reading this book will have a strong opinion on it.

I know that this book finds it’s way into the ’self-help’ section of many bookstores, but I really hesitate to place it in that category, as it’s not a how-to; the book doesn’t explicitly state “do this and you will feel better”, but rather it presents the reader with a narration of the author’s life, after which it is up to the reader to decide what they want to take away from it.

Dan’s recount of his tales was really captivating. As I was reading it, I felt myself really associating with him and understanding the feelings he went through in his time with Socrates. At various points in the book, Millman recounts these short tales that almost read like fables. I would often stop and just try to extrapolate the morals behind these tales before going on to read what Millman had to say about them.

Probably one of the most impressive things about this book is its emphasis on the value of hard work. Millman doesn’t just experience a single event with Socrates: he embarks on a journey, a process that takes a great deal of time and effort to help transform him, to help him learn. At the beginning of the book, I had this great fear that the book would present Socrates as this ’silver bullet’, this one magical fix for Dan’s life, and so I was really pleased to see that that wasn’t the case.

Although I truly appreciate the message that Millman was trying to get across with his book, I have to admit that there were some things about it that put me off. First off, Millman’s ‘embellishments’ in his story-telling were too much to take at times. While they may spice up the plot, I think it clouds some of the points the book is trying to get across. Reality is reality, fantasy is fantasy, and with a subject like this, getting the two confused can be dangerous.

Another sticking point with me were some of the values that Socrates deemed unimportant and those he deemed invaluable. The care-free attitude that he and his friend Joseph embodied may work for them, but it forgets the responsibility that many people in this world have. A key example of this is parents: if their children make them unhappy, they can’t just up and leave them. If they don’t like their job, they can’t just quit it if they don’t have another one.

At one point in the book, Socrates made a comment criticizing moderation, saying that it was only something for the bland, apologetic, and fence-sitters of the world. I feel Socrates is making a mistake here by confusing moderation with indecision. I don’t think there’s anything inherently wrong or harmful with being patient and making good, calculated decisions instead of foolish, impulsive ones.

I do honestly believe this is a good work by Millman, and one that just about everyone reading it can get something out of. However, I would encourage people to take it with a grain of salt, and to really decide for themselves whether or not what they got out of the book applies to their own life.

If It’s Worth Having, It’s Worth Working Hard For

Author: Simmoril | Date: 23.1.2008 | Category: General

For anyone who’s been perusing proggit over the last few days, you’ve most likely seen the article Computer Science Education: Where Are the Software Engineers of Tomorrow?. The article is an opinion piece in which the authors outline why Computer Science curriculums are quickly degrading, and what effect it is having on the computer industry as a whole. A number of other bloggers have responded in support of this article, and now I’d like to throw my hat into that ring as well, if for nothing else than the simple reason that they’re absolutely right.

The reality of life that seems to escape nearly everyone out there is that programming is hard. It is. It really is. Anyone who tells you different is lying, and anyone who feels a programming language or an IDE can completely negate the difficulty of programming is kidding themselves and everyone around them.

I think the main reason everyone believes that programming is easy, is because they tend to measure the degree of difficulty in terms of one metric and one metric only: ‘Can you write a program that runs?’ While I don’t deny that that is an important metric, there are many other metrics that matter quite a bit, but most people miss, because they (incorrectly) underestimate their impact.

One good example is runtime. Sure, that program you wrote in college to sort 100 numbers via bubble sort is pretty quick, runs in like under a second. So now that you can write a program to sort things, you decide to work for Google. Now your code is being used to sort hundreds of things. Thousands. Millions. Billions. Hmmm, that O(n^2) runtime isn’t looking so hot. Writing the bubble sort was easy. Understanding why its runtime of O(n^2) is bad (or even what O(n^2) means) is hard.

Another example is security. Sure, that home-rolled CMS you did in PHP rocks. It lets you do alot. But are you absolutely sure it doesn’t contain any XSS attacks? Are you 100% positive that tomorrow you won’t see a vulnerability report on BugTraq stating that unauthenticated users can gain admin rights? Typing out the PHP was easy. Identifying and eliminating its security vulnerabilities is hard.

I know that some readers will say that these metrics aren’t really all that important, and that things like scalability and security don’t matter. But, to paraphrase a line from Mudge’s keynote speech at Blackhat ‘99, you are making that assumption for everyone who uses your software. You’re assuming they won’t be relying on your software to be secure or scale well. And, as history has shown many times in the past, that is an incredibly dangerous assumption.

A little knowledge is a dangerous thing. Studying C for 24 hours might give you the ability to write a useful little program. But it can’t explain why it’s a bad idea to open and close a handle to file every time you write to it, and then write to that file thousands of times a second. It can’t explain why not checking the length of a user-inputted string you plan on copying to a static buffer is a vulnerability. Heck, it probably won’t even be enough to help you use a debugger to find out why your program keeps segfaulting!

I see it as being analogous to medicine. To come up with a proper treatment, doctors need to have an exact diagnosis. To have an exact diagnosis, doctors need to know exactly what is going on in the body. And the only way they can do that is to have a total and complete understanding of how the body works. They can’t just skimp out and decide “Oh, the circulatory system’s not that important.” They can’t just say “Heart trouble? Here, have some asprin.” Sure, the asprin might stop the pain temporarily, but in the long run, the patient will suffer even more, and probably die.

Likewise in computer science, not understanding what’s going on at every single level makes you unable to diagnose or fix problems. Sure, you can write code that will work ok now, under these circumstances. But what if those circumstances change? How will you know how those changes have affected your program? How will you know that whatever solution you come up with actually fixes the problem?

Programming is hard. I know places like ITT Tech, and the University of Phoenix want you to believe differently, but this is not a ‘get rich quick’ field. Peter Norvig wrote that obtaining expertise in the field of programming takes about ten years, and I honestly believe that. So unless you’re willing to invest ten years of hard work (at least), I suggest you find a different profession.

American Idol, Eat Your Heart Out

Author: Simmoril | Date: 18.1.2008 | Category: General

Heard this really neat story on NPR about a writer, who, with no singing or acting skills, was able to earn a spot in a production of La Boheme. A short inspirational story, I really love the quote at the end.

[found via The Old New Thing]

Singing Your Accents Away

Author: Simmoril | Date: 21.12.2007 | Category: General

So, I’ve had this question rolling around in my head for some time, and I’m hoping one of my intrepid readers can answer it for me:

Why is it that when someone is talking, you can tell right away if they have an accent or not, but when someone is singing, it’s really hard (or even impossible) to tell if they have an accent?

Please feel free to leave any answers and/or ideas in the comments.

My Newest Record

Author: Simmoril | Date: 7.11.2007 | Category: General

 It was a long time in coming, but after wasting endless hours at websudoku.com, I finally put up a new best time!

1:15

Something tells me it’s time to find a new hobby…

I’ve Joined the 21st Century

Author: Simmoril | Date: 6.11.2007 | Category: General

Yes, it’s official: I now have a facebook page.

Anyone want to help me take a decent picture of myself?