Thursday, March 24, 2011

Yuja Wang

While we're on the topic of music stuff, I wandered upon this ...


Holy Cow!

Wednesday, March 23, 2011


By some happenchance I wandered onto this video on YouTube the other day.

I thought it was pretty awesome. I like this other video game themed performance as well.

I noticed the ads on the video for I start clicking around, and sure enough, the website is partly owned by an old friend of mine in college, and her husband is playing the violin in the videos. It's a small world sometimes.

Sunday, March 20, 2011

Mac vs. PC vs. Linux

A number of years ago, Novell released a series of Mac vs. PC vs. Linux commercials parodying the Mac vs. PC commercials. I think the commercials are awesome.

There are so many subtle meanings to quotes in the commercials. My favorite is:

Linux: "I keep up with the latest trends."
PC: "And people just share that stuff with you?"

It's an obvious reference to the open-source nature of Linux and how many people contribute technology to it for free.

Thursday, March 17, 2011


I recently came upon the web series The Guild, it's absolutely hilarious. It follows a group of MMORPG players and their lives after meeting each other in real life. The writing is absolutely hilarious and delves well past the typical geek humor of most video game-centric humor. I especially love the character of Vork. He's overly frugal, constantly analyzing the cost of everything possible, and loves to operate by a strict set of rules. He's also always cooking food right next to his computer (toast, eggs, tator tots, etc.). Here are some of this best quotes: (Oh and some of these videos have bad language. So POSSIBLE NOT SAFE FOR WORK.)

Season 1 Episode 5

At 2:50 you see Vork's excellent mathematics. "Cheese Gouging!"

Season 3 Episode 2

I love Vork's commentary on the formation of a "line" at 1:25.

Season 3 Episode 10

At 3:10, just nonsense.

Season 2 Episode 6

As an added bonus, from 3:45 to 4:10 is my favorite quote in the entire series. I just can't get over it.

"I don't participate in shoddy craftmanship! Use the stencil! Do it!"

Sunday, March 13, 2011

Ann Coulter vs. Al Franken

I was at dinner with friends last night and somehow Ann Coulter came up.  It reminded me about perhaps my favorite YouTube video of all time.

There are so many subtleties to the video that I love.  I love how Ann Coulter trys to twist the original question into a political message.  Al Franken jumps on the twist with a way better answer.  You can tell Al Franken uses his comedic background well. He adds the appropriate pauses and facial expressions to make the answer come out so much more hilarious. I also love the look on Ann Coulter's face at 0:54 in the video.  You can tell she is just p*ssed.

Friday, March 11, 2011


I just learned about a company called Roundpegg, that is (as called by Techcrunch) the "eHarmony for jobs". They give you a personality test and use that to fit you to different companies/jobs with different types of corporate culture.  Similar to my discussion about Codility, these kinds of websites bother me.

It's not that Roundpegg isn't a good company.  I think their personality test is probably very good and would be very useful for companies and candidates.  Many companies use similar tests when employees apply for a job (Zappos comes to mind).  The issue is that there is a strong likelihood such a system could be abused will be used poorly.  The best way to use such a system is to use it to weed out the absolute worst candidates, not to find the best candidates. (Similar to the argument in my Codility argument.)

Update (3/15/11):

I suddenly had a thought. Similar to my comments in my Codility comments, how does Roundpegg recommend candidates to companies? Do they give a score like 0-100%? Or like many dating websites, do they give broad "strong match" vs. "maybe match" vs. "no match" grades? I suppose a more subjective grading criteria like the later might make a Roundpegg less susceptible to poor use.

Tuesday, March 8, 2011

Get Outta My Head!

I found this cool remix song the other day and I can't get it out of my head.

Monday, March 7, 2011

Bret the Hitman Hart the programmer

I saw this video clip around 10 years ago on a now defunct website, and I remember it for one line in the video.

For those who don't know about him, Bret the Hitman Hart is a legendary WWF/WWE professional wrestler (Wikipedia entry). He's known as the "Excellence of Execution." He is so talented, that he's also awesome programmer. Check out his skills at the 1:54 mark in the video below.

I love thinking about the staff putting together this video. At some point in time, they probably approached the programmers and asked them "Give us a line for Bret Hart to say." I'm sure they came up with all sorts of phrases:

  • "You have an off by 1 bug"
  • "You have a buffer overflow"
  • "You're using a single equal sign instead of a double equal sign."

Alas, the producers selected the best line he could say, "You're dereferencing a NULL pointer."

Friday, March 4, 2011

How did I end up a software engineer?

One day, I began to think about how I became a computer scientist/software engineer for a career. How did I get here? Here's what I recall.


My dad purchased several computers when I was younger. I can't remember all of them, but there was atleast one Apple II and one Commodore. At this relatively young age, these were mostly just for my sister and I to play games on. I have faint recollections of playing Stickybear, a Conan game, and some game related to cleaning teeth.

Perhaps the most important thing I learned with these early computers was how to touch type (a skill I learned through a program purporting itself to be a game). It's a skill that I now realize was useful for becoming a great programmer, because you weren't wasting time figuring out how to type.

I also was taught very beginning BASIC programming on the Apple II. (Again, I think through an educational program purporting itself to be a game.) I didn't understand much of it, but I technically did write my first code on it.

At some point late in gradeschool my parents also got our first machine w/ Windows 3.1. This was key because ...

Junior High

Thanks to my friend Brian Soucy in junior high (where are you Brian, I've lost track of you) I began BBSing and participating in the local St. Louis BBS community (and later setting up my own BBS). This was the first time I began fiddling with computers in earnest and participating in an online community. I opened up a computer for the first time and installed a modem. Later I installed a soundcard because I wanted to play some games with better sound (non-NPD software, I swear!). Through BBSing I was learning more things about computers and figuring out many tiny things about them. Things like meddling with autoexec.bat, stacker, and defrag.


I was quite fortunate. A lot of schools didn't offer programming classes in my area, but thanks to Mr. Hottelman, my highschool did. I was able to take BASIC I, BASIC II, Visual BASIC, and C in highschool. I didn't learn any advanced algorithms or anything. My recollection was only learning bubblesort. I remember learning about pointers in the C class and thinking it was really dumb (for any recruiter reading this, I no longer think they are dumb :P).

The highlight of my work in these classes was a program I wrote in BASIC that displayed the periodic table of elements. You could move your arrow keys around to select an element and bring up details on the element. It was technically useless (any book could have given you the same information) but it looked neat and awesome. I believe the code is still sitting in a 3.5 diskette in my parent's basement.

Looking back, the coolest thing I ever did in this periodic table project was my intellectual "creation" of functions. I was never taught how to do functions in BASIC, I was only taught about gosubs (I was still young enough in my programming life that the concept of a function was not fully there). With so much repetitive code in my periodic table program, I wanted to condense code so I wasn't cutting and pasting all over the place. I eventually created a system where I would set global variables (I wasn't knowledgeable of local vs. global variables yet either, everything was global) to certain values. The globals were generically named things like val1, val2, val3, etc. I would set them and then call common gosub-routines that would know what globals to read and how to operate on them. I'm quite proud of the fact that I was able to figure out this way to condense code. (Note: My recollection is that gosubs in BASIC don't take parameter arguments. If they do, then the above technique was obviously very dumb. But I'm still quite proud of my ability to condense code this way.)

At some point, I also made a webpage for myself. Not something crappy like on Geocities, but a real hosted one. I made some fan pages for my favorite St. Louis sports icons like Ozzie Smith and Brett Hull. My Ozzie Smith homepage actually got some references in newspapers and sports magazines. All these pages are gone now, but I was able to find my homepage on the internet archive (Most of this was written when I was 15/16 years old, don't laugh!). While I didn't understand how the internet worked and how the pages I uploaded to some server would magically appear at a web address, this was my first introduction to FTP, Unix, and the chmod command (at the time, I had no idea why I had to type 'chmod 644' on these files).

Picking A Major

Well, with interest in the internet, making a homepage, liking programming classes in highschool, and hearing computer people made good money, it was easy for me to pick "computer something" for my career. The "computer something" was a tough choice though. I remember reading the descriptions for "Computer Engineering" or "Computer Science" and not knowing the difference. I think I ended up picking "Computer Science" because I didn't consider myself a hardware guy (other geek friends of mine liked to build computers, but I wasn't as into it). I got accepted to several schools and ended up chosing UIUC.

Final Thoughts

In hindsight, there were a lot of lucky circumstances along the way. What if I had never met Brian and installed a modem in Junior High? What if my dad never got an Apple II? What if my highschool never taught a programming class? Would I even have this career? What would I be doing if I didn't major in Computer Science?