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.

Joe’s Race Parts Website is Back Up

Your friendly neighborhood race parts dealer is back online after a short maintenance period! Joe’s Race Parts has the best deals anywhere on race parts. And, best of all, shipping is usually free (and if it’s not, Joe will work with you to get it as affordable as possible). He’ll even ship internationally. I believe in Joe so much, I’m willing to give him the Jerry Travis guarantee!

King-Sized Comforter on a Queen-Sized Bed

Beck recently put a king-sized comforter on our queen-sized bed. I’ve enjoyed it greatly because now we no longer fight for the covers as there is plenty of the cheerful, pastel-colored material to go around. It occurred to me a few minutes ago that if we both could lose a few pounds (*cough* 30 or so is a few) then we could use our other comforters comfortably. It takes a heck of a lot more material to cover us than it should.

We have started walking/jogging on our treadmill. Beck’s doing a lot better than I am, though. Today, I walked at 3 mph and nearly had a stroke…It’s pathetic to be so out of shape. But I guess, my stroke-inducing steps tonight are as good a start as any toward not being so pathetic.

I’ve decided to do something rather drastic: Tomorrow morning, I’m going to weigh myself and post the results on here, and continue to do the same once I week.  Maybe public scrutiny and the fear of ridicule may motivate my fat ass to take action…Who knows, I may actually start feeling better about myself along the way, but let’s not get ahead of ourselves.

On a final note, I apologize to the world for letting this blog become a fat blog. But, as I’ve said a million times, the Internet is a big place and I’m sure you can avoid it if you really want ;)