Support: Not just for Fixin’

As the sole IT person for the company I work for, my responsibilities are to make sure the nine employees have working computers, back up solutions, and can come to me for any questions or problems that may arise.

We have a humble back up solution.  It involves a server and an external drive which gets switched out every week.  While it’s not perfect, it has worked great for years… until that faithful afternoon, December 31st 2009.

Because my schooling is not in server administration or networking and quite frankly, I have no time to research the problem, I called Dell.  After two separate calls (the problem was intermittent, so it was hard to nail down and test), Dell decided the motherboard was fried on our server.  Ouch.

Then came one of Dell’s consultants the following day to our humble set up.  He determined that it was my backup drive which was causing all the issues! What was worse was that the drive was not purchased from Dell, so it wasn’t under warranty.  Even bigger ouch!

What happened next was the unbelievable.  He could have left.  He could have reported back the problem and perhaps, made my life a little harder with Dell.  Instead, he took a look at the backup solution and advised me on how to strengthen it.  He told me about how inexpensively I could configure redundancy, and which particular hard drives I should look to purchase.  While this was all stuff I’ve dabbled in on a personal level, it was very educational to learn on a professional one.

If he just replaced the motherboard as Dell sent him out to do and left, without checking how everything was working?  I would be calling Dell back, 3 weeks later, with the same problem.

The Chinese proverb:

Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.

Comes to mind.  It’s absolutely true in this case.  I am glad to have my server back and set up with redundancy (as it should have been in the first place).  However Dell was the true winner in this case:

  • I personally have further trust in Dell and am more likely to pick them for buying new equipment in the future. (more profit)
  • They’ve avoided another support request from a disgruntled customer (doesn’t matter whose fault it is!) (less cost)
  • I’ve told multiple people of my story, thus giving more positive awareness to Dell. (more positive exposure)

What can be learned from this experience?  Focus on what the client/co-worker/customer is looking for before fixing the problem.  Sometimes, the problem is over the user’s head, and you cannot explain the fix.  That doesn’t mean you cannot help them change their usage and perhaps curb them from getting themselves into the problem again!  This empowers the user to accomplish their goals, while lessening your support requests.

Mini Post – DotNetNuke and web.config problems

I could have Twittered this but I wanted to put it here: Every now and again I find myself refreshing my developer’s copy of my project on my local computer from source control.

The way I have source control is primitive and probably incorrect. I tend to save ALL of my project (DotNetNuke included) into source control, so when I get a clean setup, I can basically run it out of the box.

This particular time, I was working with a different database than I normally do. Because of this, my source control wrote over my web.config and copied the wrong database settings, which resulted in the web.config pointing to a no-longer existing database.

When I loaded up my website, I was greeted with the installation wizard from DotNetNuke. “Okay,” I thought, “Perhaps I forgot to update this particular database with the new DNN version.” I clicked on next a few times and realized it was just the wrong database being referenced. I changed the web.config to be the correct database and credentials and all was well…

Or was it?

I loaded up my project and I was getting rather unhelpful “I need to put a ScriptManager on the page in order to use AJAX.net” error. I just couldn’t figure it out! It worked before! Long story short, the DNN install wizard messed around with the web.config and broke a few things configured specifically to my install. Once I pulled up an older web.config, everything worked perfectly.

This wasted about 2 hours of my time (which I don’t really have) and was easily avoidable if I was paying attention.

Lesson learned: Always be methodical with processes which you perform regularly.  If something strange goes wrong within the process, it probably doesn’t belong and should be approached very, VERY carefully.

Opening to a New Window – Why Isn’t the Target Attribute a Valid Tag?

Ever since I was a young web developer going through college, it has been drilled into me to be standards compliant when developing for the web.  In fact, it went as far as being 20% of your grade just to be XHTML 1.0 Strict standards compliance.

Just to be clear, I am talking about XHTML 1.0 Strict.  Transitional, while it has its uses, doesn’t capture the essence and spirit of why we want to be standards compliant.  Creating your web sites to be standards compliant is something as web developers we should strive for.  It promotes standardization of markup, it helps to separate layout from content, and it creates the ability for all modern browsers to display the site same way… sort of.

One thing that really gripes me is the target attribute for the <a> tag.  This was marked as obsolete, and in the strict specifications, it’s invalid.  Why is this the case?  It’s very helpful,  unobtrusive, and works really well with tabbed browsers.  I can understand every other valid XHTML ‘no-no’ such as not using align attributes or a center tag, just this one just kind of escapes me.

<a href="http://www.google.com" target="_blank">Why is this invalid?</a>

So why is it invalid? As far as I can tell, it’s because we shouldn’t assume it is what the user intended and that it should be left up to the user.  I really hate this explanation.  It makes me think whomever thinks it has never dealt with a real world user.  Most people outside of the technological world are not savvy enough to right-click and open a page in a new window.  For us that do know how to do it, it’s actually quite annoying.  Besides, when I link to a webpage outside of my domain, how often would we want the user to navigate away? It is not very user interface friendly in my opinion.

Another reason is the page loses the effectiveness of the back button.  Okay, I can buy this, but it’s packed neatly on a new tab on all new modern browsers.  It’s easy to navigate back to the original site.

A last reason I can discover is because of screen clutter.  This is becoming a moot point due to the fact that almost every popular browser uses tabs rather than opening a new window.  In fact, the only browser which doesn’t utilize tabs is IE6, and it’s popularity is quickly dying.

The standards compliant solution: Use Javascript. Bah!  That’s just something else I have to test.  target=”_blank” works fine in all cases.  Using Javascript to do something the browser does natively feels silly.  I know the code is pretty compact and with jQuery you could literally do it in one line, it’s not nearly as clean and understandable as target.

My user experience friendly solution: In order to appease the target-hating standards compliant gods, my solution is this:  Provide a setting on the top of the page which asks “Open all links in a new window” and “Open all links in the current window.”  This way, you allow the user to decide how it works, it’s standards compliant, and it’s fairly simple to implement.

Perhaps help is on the way. Doing some research on the topic, I came across the spec document for CSS3 Hyperlink Presentation (yes, this opens in a new window!) which describes using CSS to determine target parameters.  I can easily get on board with that!  Hopefully we can see CSS3 implemented across all major browsers in the not-to-distant future.

In Conclusion: I will still be using target=”_blank” to pop up new tabs on my blog.  The blog is validated in Transitional anyway.  My belief is that any hyperlink in a blog post will be clicked on to allow further reading of the topic.  That is the experience I want to provide for my readers.

Xbox 360 modding- should you be banned from Live?

xboxcontrollerAs you may know, Microsoft banned between six hundred thousand and one million Xbox 360s. Microsoft claims “All consumers should know that piracy is illegal and modifying their Xbox 360 console violates the Xbox Live terms of use, will void their warranty and result in a ban from Xbox Live.” (from AFP).  Users with modded banned Xboxes are claiming they should be allowed to mod their Xboxes because not everyone is using them to play pirated games.  Other users feel that the bans came conveniently after the two major releases:  Modern Warfare 2 and Halo 3: ODST, which were after boosts in the number of subscriptions. There is even a website dedicated to a class action investigation.

Before I give an opinion, I’d like to look at what can be done with a modded Xbox.  The mod will give control over the DVD player, which allows you to reduce the speed of the drive and bypass checks that makes sure a game is legit.  As far as I can tell, you can play pirated games, back ups, and slow the drive down so the device is quieter.   I’ve also seen reports that it allows you to replace the hard drives with normal hard drives, but they are still limited to the 20 GB and 120 GB constraints.  An original modded Xbox made an older generation machine into a media center powerhouse.  This mod for the 360 looks to be for one thing:  piracy.

So… Should mod users be banned?  Yes, for three reasons:

It promotes piracy. Piracy is illegal, and for someone in my line of work, it’s also unethical and is completely against my principles.  I am a developer, and the thought of someone copying and distributing my work for free without my permission turns my stomach.  I guess it can be argued some pirated software is less crippled than the legit software (I hate it when the software constantly “phones-home” to make sure I’m legit) but it is simply not the case in this situation.

Allowing modded software can lead to exploits for multiplayer games. I see nothing wrong– especially on a console — to disallow the user from installing non-approved applications on the console.  It makes security much easier to maintain, and it gives all users a consistent experience when playing online.Apple closely monitors the app store.  They require approval before accepting any app into the store so they can make sure there aren’t any virus-type apps being uploaded.  In fact, the most recent exploit of the iPhone had to do with those iPhones which are jail-broken.

Xbox 360 is not open source. Microsoft never invited you to hack and mod their system.  In fact, doing so voids the warranty.  They have decided to do this, and as a purchaser of their product, you’ve made the decision to comply.

I’m sure there are a lot of opinions about this.  Let me know what you think!

You versus Them: THEY NEVER UNDERSTAND ME!

Sad dogIf you are an IT professional interacting with another department, you’ve probably been in a situation where they just weren’t getting your pitch.  “Why can’t they just understand the problem!” you probably say to yourself.   “They just don’t understand the benefits of the solution!”

How do you make your point and keep cool in the process? I’ve come up with two lists: one to facilitate why we get these responses and one to better facilitate the discussion.

What is going on:

It’s not about how smart you are.  You both have different expertise. Do you always trust your mechanic’s opinion? Have you ever second guessed your doctor?  Ignorance can invoke different reactions.  Some people will not trust an opinion until it has been explained in a way they understand. Let’s say you were buying a house for the first time.  You go and try to understand the process.  There’s so much information that it’s natural to get frustrated and question the process.

Don’t take it personally. We as human beings take things to heart more often than we should and we tend to read into criticisms as a personal attack.  According to You Can Be Happy no Matter What by Richard Carlson, we tend to interpret criticisms based on our thought systems, which is generally not the reality.  Accepting the actual reality of the opposition rather than interpreting its intent will allow the conversation to be more subjective and thus, more productive.  This not only works for IT professionals, but for any professional in a similar situation.

They may be insecure. Someone comes into your workspace, starts discussing a project and you just don’t know where they are coming from.  It makes you feel anxious, nervous, and sometimes, combative.  When you are on the giving end of these conversations, you tend to misread the confusion as either disinterest or anger.  Being IT professionals, it’s easy to be on the giving end of this exchange–  not because we are smarter, but because we have a more specialized position.

You may be insecure. Perhaps you are not 100% sure your solution is the best one for the problem, but it’s certainly the best for you.  You pray that you have an easy sell so that you can do it.  If you are that unsure of your solution, perhaps you should rethink it.

Just like you, they are trying to get their jobs done. This is especially important when everyone is under time constraints.  IT has a nasty stereotype of being that jerk IT guy from SNL or the policy police.  They don’t want an explanation of the reasons why you cannot do it, they want a solution.

What to do about it:

Prepare in advance for the conversation. Do anything to help prove your point.  Remember, you are trying to sell a car to someone who knows nothing about cars!  My suggestion is to quickly bullet out the points you believe would help you explain your point better.  Simplified diagrams and analogies also work, but be VERY careful to not insult their intelligence.  Remember it is a two-way street– picture yourself getting an oversimplified explanation about something you need to know about.  You’d feel insulted and silly.

Try to fully understand what their issue is first. Sometimes you can avoid having the “technical conversation” altogether if you can come up with a different and simpler solution to their issue.  It may not even be IT related.

Accept the fact that they may be right.  Perhaps it is you who have over-analyzed and over-complicated the problem.  Sometimes the “why don’t you just do x” is the answer.  Opening yourself to this possibility early on in discussion can prevent unnecessary arguments and wasted time later.

Only discuss alternatives if they are viable solutions. Keep in mind these discussions’ purpose are to move a project forward; not to prove to the other person you’ve done your homework.  Unless they’ve specifically asked you to look into a situation, don’t bring up solutions you think are not going to work.

Keeping these thoughts and tricks for you will yield a happier you, a happier them, and ultimately, a stronger work relationship and environment.