Drungol the Dwarf Finally Gets His Horse

I play World of Warcraft. I’m not addicted or anything, but I find it a welcome escape from reality. My main character is a Dwarf named Drungol. One of the rules of the game is that a Dwarf cannot ride a horse unless he or she is Exalted with the Human city of Stormwind. Without being exalted, Dwarves have to ride rams.I hate riding the rams. The horses sound cooler and look cooler. Today I got incredibly pissed and decided to gain the 3,000 Stormwind reputation I needed to become Exalted with Stormwind…It gives me great pleasure to announce that Drungol finally got his horse!

Mud Slinging. Oh what Fun!

So, awhile back, I helped my buddy Mike with a website theme for TooKookyForKentucky.com, which is basically an anti-Rand Paul website. Rand (son of Ron Paul) is running for the 2011 KY gubernatorial US Senate in the upcoming 2010 election*. He claims to be a Republican but he seems more libertarian, so Mike, being the good Republican that he is, created the site to call Rand’s bluff. Mike warned me before putting a link to my site at the bottom of the theme that I would eventually be a target of Rand’s party. It took longer than expected, but it finally happened. In response to my post informing everyone that I liked my antique Snoopy book, some guy named Hightower^ had this to say:

What about your own Web-Master, Jerry Travis, who states in his entry of November 25, 2009, “(My vampire obsession goes a long way back, and doesn’t involve a single, boring, pasty-faced Cullen “… interesting, so the guy you used to assist you in your web site design is a admires drinking the blood of human-beings, and is self-admittedly “obsessed” with this? My my, you should be careful who you collaborate with.

That’s gotta be one of the funniest things anybody has ever said about me, especially considering the post was about my love of Snoopy!

This is a great example of context, and what can happen when snippets are taken away from said context. The poor sap probably doesn’t even know what my Cullen reference is talking about. Furthermore, Hightower probably didn’t click on the link for the text “vampire obsession.” It was a post from way back in July 2003, where I talked about how happy I was I got to watch a lot of Buffy the Vampire Slayer during that summer. He actually believes that because I like vampire stuff that I drink human blood. By that logic, I guess that means he likes to smuggle whiskey because he watches Smokey and the Bandit every other day.

If he’s going to sling mud at me, he’s going to have to do better than that. If Rand is anything like Hightower, he is Too Kooky for Kentucky.

*Correction: When I first posted this, about an hour ago, I mistakenly put that Rand was running for KY Governor in 2011. He is, in fact, running for the US Senate in 2010. Everybody’s probably going to have a field day with that :)
^Correction 2: The comment wasn’t made by Hightower. It was a guy going by the name Lycurgus.

Trav on Motivation

There are two reasons people do anything:

  1. They want to to it
  2. They are afraid not to do it

The thing that’s wrong with America is that nobody wants to do anything, and nobody is afraid of anything because consequences have been removed.

In education, the kids don’t want to learn and they have nothing to fear if they don’t. In society at large, nobody wants to work, and nobody is afraid of starving to death because of all the social programs we have. So, these two, simple little rules have managed to bring one of the greatest civilizations the world has ever known to its knees.

Cool Google Feature Removed

Google has removed the “Show More Text” option from the “Show Options” menu. I just noticed it a day or two ago. Has anyone heard why they removed the option? I thought it was very helpful, because I often do a search and wish I could see a longer preview of the results before I actually commit and decide to follow a result.

By the way, if you’ve been ignoring (or didn’t notice) the “Show Options” link, I think you’re missing out. On your results pages, the “Show Options” link appears here:

Google's "Show Options" button gives a lot of features

Google's "Show Options" button gives access to a lot of features

I challenge you to click on it and check out all the neat new features. Happy browsing.

Greatest…Book…Ever!

Nope. I’m not talking about Twilight: New Moon. (My vampire obsession goes a long way back, and doesn’t involve a single, boring, pasty-faced Cullen :) Beck got me an original printing of Snoopy: A New Peanuts Book, which was published in 1958! The Owsley County Public Library was cleaning out old books and Beck, knowing that I love all things Charlie Brown picked it up for me. Too bad for them!

Reading the hundred or so simple 4 pane strips, I’m reminded why I love Charles Shulz: He combines frustration with humor in a way that makes life’s problems seem not so bad. For example, how often have we all wanted to be somebody else? Snoopy imitates numerous people and animals in many of the strips, and he always figures out that the grass isn’t actually greener on the other side. What better way to be reminded of the truth of this idiom than in the form of a lovable white beagle!

Diagrams, diagrams, diagrams

I’ve been sitting here for the last couple hours contemplating a program design in my head. (Actually, I’ve been contemplating this design for a month or so, but I really was putting some brain power into it for the last couple hours. Anyway…back to my point…) I have decided to start putting the ideas into some codified form in an effort to start documenting my code and designs better. In trying to figure out which diagrams to draw, I realized that it has been so long since I have done a formal diagram to formal standards that I have actually forgotten a lot of the minor notations. I’ve decided to go with UML, but I have forgotten the rules for using a filled in shape vs. an empty shape, not to mention all the line styles needed to convey relationships…GASP! Looks like tomorrow that I’m going to have to dust off the UML Distilled book laying around here somewhere.

It’s no wonder that I’ve forgotten a lot of these diagramming tools: Many of the clients I work for don’t have a clue what they’re looking at. For the last 4 years, I’ve been relying on text-based use cases because everybody, regardless of technical skill, can communicate with them. Frankly, I’ve gotten use to and comfortable with this format. There are some serious drawbacks to this though, namely the difficulty in seeing interactions between more than a couple modules at once. I seriously need some activity diagrams so I can start writing better test cases. I need to quit being such a Duct Tape Programmer. It’s quick, but it makes maintainability much harder than it has to be.

The best news is that free, open source diagramming tools are exponetially better now than they were just 4 years ago, so as soon as I acquaint myself with some of the formalities, I should be able to have my diagrams cranked out in no time.

To All the Veterans Out There…

Thank you. Being an American wouldn’t be possible without your willingness to risk life and limb to stand for the ideals of Democracy. God bless you!

The Foundation is Eroding

The foundation that once made this country great is eroding…

I saw on the History Channel the other day that immediately following World War II, the United States was producing 80% of the goods in the world. At that time, our population was motivated, hard-working, and just downright productive. When our veterans returned home, they either got a job or took advantage of the GI Bill to further their knowledge.  During the 50s, 60s, and 70s, technology flourished as seemingly every able-bodied man, woman, and child focused on beating our Red enemies in the east in the Space Race. There were social upheavals, but in the midst of all that, Americans were industrious and patriotic.

The legacy of the Baby Boomers and their heightened productivity is gone. The youth today, for whom I have the responsibility of educating, have no dreams and no vision: They see only what they can easily attain today. Even if they do consider greatness, they do not consider the dedication it takes to achieve lofty goals. They don’t even realize what awesome things their grandparents (or at least their grandparents’ generation) achieved. The spirit of my personal heroes of technology, the kind of people who worked in dimly lit rooms at BB&N or Xerox PARC, is gone. The Greatest Generation embraced the tedium and hard work required to do something great, while the youth today hump up and quit if they aren’t greeted with instant satisfaction. NASA put men on the moon with slide rules, but the average student that walks through my classroom can’t even subtract two 4-digit numbers confidently without a calculator. What’s worse, when I try to teach them how, they say, “This is too hard” or “You are so mean!” So, their ineptitude, according to them, is my fault.

God forbid that today’s youth get a taste of defeat. Competition, complete with legitimate reward and failure, has been abolished in the name of self-esteem.  Now, every kid that plays gets a trophy. Why? Because we don’t want them to feel bad about themselves. Most elementary schools I know of don’t cut anybody from sports teams. Instead, they create multiple teams if there are enough kids that want to play a certain sport. Kids today have no concept of training hard and trying to make the team next year. It seems like every parent tries to convince their kid that they are worthy for sports or advanced placement, when in reality, majority of them are average (roughly 69%, if you assume that talent is normally distributed). Instead of assuring their kids that they are good at something, the youth today have been convinced their entire lives that they are good at everything! Self-esteem is great, but only if it is deserved. An overly-confident fool can wreck anything!

No Child Left Behind actually measures part of a high school’s success by graduation rates. On the surface, this seems good. In reality, though, it’s only serving to dilute an already watered down curriculum. There are only two ways to increase graduation rates: a) convince students they must work hard and do as the teachers ask them to, regardless of how difficult the task may seem or b) lower the bar so more students can jump over it. Educational administrators are choosing the latter because it’s impossible to achieve the former until parents and students are forced to accept the consequences of mediocrity. That’s hard to do when one of the consequence of failure to graduate has been removed from the equation.

I’m not saying that there aren’t brilliant young people today that are striving to do something great, however, the number of people who are pushing the envelope to make America the leader again is horribly on the decline.  There is no sense of duty. The rally call today is “Give it to me easy or don’t bother.”

And so, with no vision, no tolerance for tedium, no competition, and no consequences, the foundation of greatness has turned to mush. Most of the youth today reap the rewards of an entire generation’s hard work and contribute nothing.

Introducing Phind, a simple PHP script for finding foreign keys in MySQL tables

For years, I have wanted a way to programatically find foreign keys in MySQL tables using PHP. After a lot of thought, I have written Phind. Phind basically consists of one function getForeignKeys() whose only parameter is the table name. If that table has foreign keys, Phind returns a multidimensional array containing an index for the key as the first index, and the part of the key as the second index.

My ultimate goal is to use Phind to create a PHP CRUD generator written entirely in PHP. That’ll probably be a long way off, though. I just don’t have time to sit down and finish something like that right now.

The source code for phind is here: Simply rename the file from phind.txt to phind.php when you save it. You can also go here to see Phind in action on a table in a database on my server named ‘contacts.’ Eventually, I will add more examples to the documentation included with the phind.php file, but for now, it’s sparse. However, I’m sure there are enough PHP guys who have been looking for a way to make sense of what foreign keys are in a table and where exactly they are pointing to.

I hope this helps somebody.

A Welcome Old Feeling

Recently, I’ve been feeling something I haven’t felt in a really long time: A sense of excitement about technology. For the past 8 years or so, it seems as though innovation and competition in the tech industry has slowed to a trickle. Microsoft killed Netscape and left us with the dead Internet Explorer 6 code base for nearly seven years. In the wake of the ever-exciting browser wars, we’ were left with what felt like a wounded soldier with a wooden leg. Then, the wizards in Redmond heap Vista on us, which did absolutely nothing to excite me. (In fact, it lead to a great deal of screaming and renting of garments in the Smith household.) On the hardware front, Intel and NVidia thwarted the lackluster AMD/ATI combination. Sure, we got faster CPUs and GPUs out of ’em, but who cares…Speed does not equal more fun or innovation. What’s a geek to do?

Thankfully, there are plenty of reasons to celebrate these days. For the first time in a long time, nerds everywhere are buzzing about a choice of quality operating systems. Apple has done a great job continuously improving OS X, which, for my money, is very stable and user friendly at version 10.6. In the wake of Apple’s ever-improving market share in both the laptop and desktop segments, Microsoft has gotten its act together to bring us Windows 7. The interesting thing to me is that neither OS X 10.6 nor Windows 7 are revolutionary products. The improvements are small on both fronts, and at first glance, it seems as though the OS upgrades are nothing more than marketing fodder. But, in the midst of all this, it’s easy to tell that both Microsoft and Apple are seriously trying to one-up each other by making systems more stable and user friendly. In short, end users are being treated to the fruits of healthy market competition. (On top of the OSs that are here now, rumor has it Google is launching its own low-power OS soon!)

Even more exciting to me is that the browser wars are back. Thank God for Mozilla, which delivered the first stable version of Firefox in 2003 and hasn’t looked back since. Again, Microsoft had to wake up and do something. Out of this panic, we were treated to Internet Explorer versions 7 and 8, which actually do a pretty good job at following standards.  But the fun doesn’t stop there: The WebKit folks have given us Safari and provided Google with the foundation it needed to launch Chrome. What we’re left with are fast, secure, standards-compliant browsers. And, more importantly to me, we have several choices in browsing for the first time in a long time!

There’s less to be excited about on the hardware front, but notebook makers are doing a great job making specialized laptops for just about any purpose. The buzzword soup actually has a lot of differentiated products behind it: notebooks, business-class, ultra-portables, netbooks, media stations, and desktop replacements. No matter what your personality or needs, there’s probably a sweet little portable out there to suit you.

To sum up, I’m simply pumped about all this competition. If I don’t like one thing, I can jump ship to another option. Now, if we can only keep the lawyers from stifling all this…But that’s a rant for another day.