I’m Shaving My Beard

Posted on January 5th, 2009 in Miscellaneous by jed

But I need help deciding what style. Check out www.shavemybeard.com and vote on one. On Jan 30, I’ll shave the most popular style. I’m hoping to get enough people to vote to make it an interesting experiment, and not just friends and family. Let me know if you have suggestions for attracting more votes.

How to Troubleshoot

Posted on July 14th, 2008 in Computers & Networking, Miscellaneous by jed

Ok, I know I don’t normally post about “non-technical” stuff, but this is one that EVERYONE should read. At least, everyone that is required to help solve problems of any sort, especially Network admins, IT Managers and Staff, and Support folks at a minimum, if not all engineers and just about everyone else. This post is about Troubleshooting. Yes, I know, a boring topic, but one that far too many of us have forgotten the basics of. We all solve problems in our daily lives, and as a result we tend to think that we are good at it. Well, the truth is, we aren’t good at troubleshooting, especially when it comes to solving complex problems (e.g. networking problems, IT issues where someone brings the machine in and says “it doesn’t work”, etc.). But by practicing and some basic fundamentals, we CAN be good at troubleshooting.

The Nerd Guru has an excellent Introduction/Refresher on Troubleshooting and it happens to be an entertaining read as well (with a site named “Nerd Guru” would you expect anything less than at least one summarization of the plot of Start Trek II to make his point?).

One of the most important things to do BEFORE you actually start any real troubleshooting is to define the problem. The most common mistake I see when people are trying to resolve some issue is that they don’t take the time to articulate exactly what the issue is in the first place. Here is an example:

User: “My computer doesn’t work.”
Admin: “What did you do to it?”
User: “Nothing.”
Admin: “Liar, you must’ve done something.”
User: “Really, I didn’t. I came in to the office, sat down, and tried to use it, and it isn’t working.”
Admin: “Ok, I’ll come to your cube and take a look.”

Notice anything wrong there? The first question the Admin asked should have been “what exactly do you mean by that?”. If he had, the User would have told him that he couldn’t log into email because it didn’t recognize his password. By narrowing down the problem the Admin could have resolved it remotely, without having to actually visit the User’s computer. By not asking any questions about the exact problem, the Admin not only wasted a bunch of time, but will also be pretty angry when he gets to the User’s computer and realizes that the computer is fine and the User’s password just needs to be reset. The Admin will leave thinking the User is an idiot and the User will be thinking that the Admin is a condescending jerk.

The point is that before doing anything else, you need to take the time to identify what the problem REALLY is. A good reference that makes this point pretty well and gives you some example questions to ask is Cisco’s System Troubleshooting Methodology. This is a very useful guide even if you don’t have any Cisco gear.

If you aren’t convinced about why you should spend some time taking a quick refresher on troubleshooting, I highly recommend you take a look at The Universal Troubleshooting Process. This site makes an excellent case for why you should define a troubleshooting process and practice it regularly, and it gives you lots of tips on troubleshooting and troubleshooting methodology. Brushing up on troubleshooting will save you time, money, and effort, and will make you look smarter and harder working in the eyes of your colleagues.


Troubleshooting Techniques [The Nerd Guru]
System Troubleshooting Methodology [Cisco]
The Universal Troubleshooting Process [Troubleshooters.com]

This article is copyright OPNET Technologies, Inc., and is reprinted from the original at www.itsnotthenetwork.com with permission.

VMware Server Tip: Get Current Bridge/NAT/Hostonly Info on a Linux Host Without Running vmware-config.pl

Posted on June 13th, 2008 in vmware by jed

vmware logoThe other day I was trying to help troubleshoot a networking problem with our Virtual Appliance on a VMware Linux Host. I could pretty easily surmise that the problem was somewhere in the configuration, but I was unable to tell what exactly the host’s networking configuration was because you must run vmware-config.pl to configure the network on a Linux VMware host (Windows has the very handy “Manage Virtual Networks” tool that you can use, but alas, no such analog exists on a Linux host, to the best of my knowledge). The problem with running vmware-config.pl is that it requires all virtual machines to be turned off before it will even show you any information, which is a total pain when I just want to see what is bridged to what. So I went searching for a way to extract the information I wanted form the system, and eventually I found it (I was unable to find it on a google search or by searching the VMTN Forums or VMware Knowledge Base, which is pretty rare, so I ended up digging through my own files to find it). Eventually I discovered that the information I was after was stored in /proc/vmnet, which has an entry for each vmnet that is configured on the system. By simply looking in the files, I was able to tell what was going on, hooray!

On my system, I only had a few bridged interfaces, but there were still a lot of files there:

root@my-server:/proc/vmnet# ls
bridge0 hub0.1 hub0.5 hub1.1 hub1.5 userif22 userif50 userif66
bridge1 hub0.2 hub0.6 hub1.2 hub2.0 userif23 userif51 userif73
bridge2 hub0.3 hub0.7 hub1.3 hub3.0 userif24 userif64 userif74
hub0.0 hub0.4 hub1.0 hub1.4 netif0 userif4 userif65 userif75

A little exploring and I was able to surmise that hubX mapped to what we commonly know as vmnetX, with X usually being 0,1, or 8 for a default VMware configuration (in Windows land these are usually called “VMware Network Adapter VMnetX”). I think the hubX.Y files actually show which interfaces of which running machines are connected to that hub, kind of like link lights on a real hub, but I didn’t spend enough time to really be sure. In any case, I was able to determine that since I only have bridges configured on this system, the files bridge0, bridge1, and bridge2 were the ones I was after:

root@my-server:/proc/vmnet# cat bridge0
connected hub0.0 mac 00:50:56:00:00:00 ladrf 00:00:00:00:00:00:00:00 flags IFF_RUNNING,IFF_UP,IFF_PROMISC dev eth0
root@my-server:/proc/vmnet# cat bridge1
connected hub2.0 mac 00:50:56:00:00:00 ladrf 00:00:00:00:00:00:00:00 flags IFF_RUNNING,IFF_UP,IFF_PROMISC dev eth1
root@my-server:/proc/vmnet# cat bridge2
connected hub3.0 mac 00:50:56:00:00:00 ladrf 00:00:00:00:00:00:00:00 flags IFF_RUNNING,IFF_UP,IFF_PROMISC dev vmnet1

It is pretty plain to see that bridge0 connects hub0 (aka vmnet0) to eth0, bridge1 connects hub2 (aka vmnet2) to eth1, and bridge2 connects hub3 (aka vmnet3) to vmnet1 (I’ll explain this funky mapping another time).

Hopefully someday VMware will implement a handy tool like the Windows “Manage Virtual Networks” tool on Linux hosts, but until then, this will be good enough for me to at least tell what is going on on an unknown system.

This article is copyright OPNET Technologies, Inc., and is reprinted from the original at www.itsnotthenetwork.com with permission.

About the Previous SEO Article

Posted on August 23rd, 2007 in Search Engines by jed

Ok, so I have a little confession to make. Today I was talking with a really smart guy who knows his search engine stuff, and he happened to catch a glimpse of my web site while we were poking around on a browser. Of course, being very observant, he immediately keyed in on the Search Engine Optimization article and said he wanted to read it. Now, keep in mind that this guy knows search engine inner workings, and about a bazillion other things better than I know, say, the back of my hand. So I was immediately apprehensive about him reading my article. Especially considering the fact that I kind of twisted the truth around a bit while writing it.

So here is the deal: the stuff in the SEO article is what I would currently consider to be the “best” way to optimize your site for search engines. By “best”, I mean the most likely to get you lasting long term results, provide value to the internet and to the rest of the community, and avoid potential issues if/when Google decides to change the rules. I’ve come to this conclusion based on a moderate-to-fair understanding of how search engines work, along with reading a huge pile of other SEO articles that are all probably made up. Having good content is key, and I am confident that if you have good content, your site will win over the long term. Now with that said, I have to note that the actual technical details of getting a high ranking in Google and other search engines do not precisely align with the way I have articulated things previously. If you want to talk about the topic further, I’d be happy to entertain a discussion about it, feel free to contact me.

Pie Chart about Lies and Truth

Oh yea, and don’t ask about statistics, especially ones in a shiny Pie Chart with rounded corners. As a reasonably intelligent human, you should consider all statistics you see anywhere to be completely made up and purely for demonstration purposes, especially if they are on the Internet. Always ask for the source if someone is quoting statistics to you, and try to keep in mind that usually, statistics and other things like black and white statements and hyperbole are solely for the purpose of making a point.

Search Engine Optimation (SEO) Simplified

Posted on August 17th, 2007 in Search Engines by jed

I recently had a friend ask me about submitting his employer’s site to search engines so that he could get indexed and ranked as high as possible. While there are hundreds of sites I could have pointed him to (I’ll like a bunch of my favorites at the end of this post), I’ve distilled all the tips I’ve ever read down to three simple rules, in order of importance (I’ll elaborate on them further below). The following is mostly just clipped from the email I sent him, with a few minor edits:

  1. Put good, reasonably well written, useful content on your site.
  2. Have popular sites link to you.
  3. Link to popular sites.

SEO Importance Pie Chart

  1. Put good, reasonably well written, useful content on your site. This is by FAR the most important thing you can do to get a good search engine ranking (seriously, this probably 90% of it). If you do a google search for “printing services”, you will notice that all the top sites (that aren’t ads) have something in common on their home pages: lots of words that say meaningful stuff. And not pictures of words, actual words. I notice that your site has a lot of pictures of words, but if I look at the source there isn’t much there that describes what you do. You’ve gotta say, in actual text on the page: what you do, why you are special or different than everyone else, and why someone should continue to look at your site and/or purchasesomething from you. And all that has to be in grammatically correct sentences that make sense and aren’t hidden using special tricks with CSS or JavaScript.If you really want to one-up everyone else, you could also provide some meaningful content on your site that helps people even if they don’t buy your services. For example, if you have a site that is a print shop, create some pages that have free useful articles and tips. Some examples I can think of are:
    • things to look out for when shopping around for a print house
    • questions to ask your printer before purchasing
    • tips to save money on printing costs
    • tips to really make an impact with what you are printing
    • the truth about paper quality
    • you get the idea
  2. Have popular sites link to you. This counts for about 8% of the remaining 10. While the best way would be for popular sites to decide they like you so much that they spontaneously decide to link to you, but there are some places where you can get links “for free” to help things get started. Submit the your content to digg, del.icio.us, reddit, blinklist, stumbleupon, reddit, furl, and every other “social” news/bookmark service you can find. Have all the employees at your company go home and vote up your content from there (make sure they do it from home and not the office, cause it will be obviously bogus if 50 diggs come from 1 IP address).
  3. Link to popular sites. Link to other sites that have good and popular content. This accounts for about 1.5% of your rank (with the final .5% being miscellaneous other stuff that isn’t worth bothering with). Don’t get too tricky with the linking though, cause if you are obviously trying to artificially inflate your pagerank google will squash you off the face of the Internet. And don’t for a second think you are smarter than they are and won’t get caught, or that they are too big and you are too small. There are a bazillion worker bees at google and they are all smarter than you and I put together. In addition to that, they have super smart robots that have already started taking over the world.

That is about all I have to say on the subject at the moment, but here are a few links to get you started on researching it more for yourself (I’m only putting a few links here now, will add more later when I’m back at my home computer with all my bookmarks).