Author Archives: Brian Whaley

Unknown's avatar

About Brian Whaley

Technologist, Digital Transformation Professional, User Experience Champion, Landscape & Macro Photographer, Avid World Traveler, Advanced Open Water Scuba Diver, Enthusiast of Home-Cooked Food

Techno-Christmas 2007

Christmas in 2007 was centered around electronics for the whole family. Invion 4″ GPS Navigation Systems were given and received for all of the cars. They were easy to set up, and work great… the only issue is that the SD card is the source of the maps. If you lose the card, or it breaks, or gets erased, the unit won’t work any more.

I bought my wife a Jawbone Bluetooth Headset. She is using that with her Palm Treo 700w, and is having some problems. The headset does not seem to reliably connect to the unit, we have not been able to transfer an existing phone call to the headset, and the voice dialing doesn’t seem to work. If I turn the headset on, make sure it connects to the Palm, and dial directly on the phone (or answer an incoming call), everything works great. The sound quality is really good, and the noise cancellation does a fantastic job. I think I wanna try the unit on another phone before I let my wife go to the Verizon Store for help.

Mary Ann bought me the Toshiba HD-A3 HD-DVD Player. The first thing I did after all the presents were unwrapped was hook this up to the television I have in the basement. The DVD player came with two movies, and I dropped one in and sat riveted to the screen. I bought my Panasonic 42″ Plasma TV about 4 years ago now. At the time 1080p was way too expensive, so I settled with 1080i. The DVD player is compatible with both 1080i and 1080p, and connected easily to my system. I even tried a standard DVD movie, and the DVD player up-scaled the picture pretty good, too. My complaints about the player are not really with the player itself, but with the format. News that Warner Brothers announced it would be aligning with Blu-Ray instead of HD-DVD rocked the CES Conference. The price of the player, less than 2 weeks after Christmas, has fallen from $299 to $129. Blu-Ray has now captured 93% of the Hi Def market share. now my player, and the movies I have received with it, are obsolete, and it is less than one month since they were purchased. I am now a victim of the BetaMax Syndrome.

With the television, audio receiver, cable receiver, DVD recorder, Playstation 2, and VCR to operate, and now adding the new HD-DVD player, I was lost in a sea of remote controls. I did a little research, and found the Logitech Harmony 550 looked to be a great fit. I found it on sale at a local electronics shop, and brought it home. There are a few simple steps to program the remote: 1) install the software on your PC, 2) plug in the remote to your PC via USB cable, 3) enter in each of your manufacturer and models, 4) you choose what activities you want to do (i.e. Watch TV, Watch DVD, Play Game, Play Radio, etc.), and 5) the software downloads all the profiles your remote and programs it. It was easy, and it works fantastic. It was worth every penny.

So, Santa was on top of all of our wish lists this year and delivered a 2007 Techno-Christmas under our tree.

Netscape is Dead, Long Live Netscape!

Well, it is official.  The once-popular browser, from Mosaic through Netscape Navigator and all of its Mozilla variants, fought in the Browser Wars from 1994 through 2008, and is now throwing in the towel.  My once-favorite browser has finally fallen under the weight of Internet Explorer (and Firefox, too, I suppose). 

AOL announced on December 28, 2007 that as of February 1, 2008 they will no longer be providing Netscape Navigator.  Oh, how the might have fallen.  I found out about this on Engadget – Netscape finally bows out, browsers no longer supported, but you can read about it on the Netscape Blog – End of Support for Netscape web browsers.  The Browser Wars will continue, but without one if its original participants. 

Book Review – How Would You Move Mount Fuji?

Over the holiday break I decided to tackle some of the books that I have stacking up next to my bedside.  One of them was How Would You Move Mount Fuji by William Poundstone.  This was a book that I know some of my colleagues had read already, and they recommended it highly, so I decided it was my turn. 

The book was a quick read.  The author kept my interest with not only the topic, but also with his concise explanations and his witty comments. 

Poundstone describes the history of the intelligence tests, and how it was developed.  They were used by our military to determine qualification for different job roles.  This led to the popular use of intelligence tests in the corporate world, particularly in the use of Silicon Valley.  During the civil rights movement, intelligence tests were determined to have a racial bias in the questions, so were banned as a hiring practice by the federal government.

The ban of intelligence tests did not deter those types of questions from remaining in interviews, however.  Looking for more people with minds like Bill Gates, puzzles made their way into the interviews at Microsoft.  They have popularized the use of logic puzzles and impossible questions.  Poundstone also describes the grueling day-long series of interviews at Microsoft and how you are rated throughout the process. 

My most important takeaways from the book was these nuggets of golden advice –

  1. When the technology you use is changing rapidly, you must hire for problem-solving stills, not just for the technology.
  2. A bad hiring decision is likely to hurt the company more than a  good hiring decision will help it.
  3. If you ask puzzle questions in your interview, make sure they are worth the effort by asking yourself these two questions:
    1. Are you willing to hire someone because of a good answer to this question?
    2. Are you willing to reject someone because of a bad answer?

I highly recommend this book to any hiring manager who plans on asking any puzzle type questions.  I also think the book adds insight into the overall interview process, even if you don’t plan on asking them that type of question.

Have you read the book?  Do you have an opinion on puzzle questions in interviews?  Leave me your feedback and let me know what you think.

The Lost Art of Debugging – Part 3 – Things To Do

As I have said before, debugging is a complex and time consuming process. I have outlined 10 resources for debugging, and provided a primer for things not to do when debugging. Now, we get to the meat and potatoes of debugging. This is a guide of things to do when debugging. I have broken this guide into three sections – a description of the Scientific Method of Debugging, Tips for Hunting for Bugs, and Bug Prevention Methods.

Scientific Method of Debugging

This is a parallel to the Scientific Method that you learned in your grade school science class. The book Code Complete by Steve McDonnell outlines this methodology to debug your applications.

  • Stabilize the bug by identifying the simplest test case that reproduces the error
  • Locate the source of the bug
    • Gather data about the bug and its behavior
    • Analyze the data regarding the bug
    • Form an hypothesis about the bug
    • Write test cases that would prove or disprove your hypothesis
    • Run the tests and prove your hypothesis, or begin again with a new hypothesis
  • Fix the defect
  • Test the fix with all of the new unit tests you have written
  • Continue to look for similar, cascading, or peripheral errors

For a more detailed breakdown of the Scientific Method of Debugging, read Code Complete by Steve McDonnell.

Bug Hunting Tips

These tips for finding bugs, broken out into different areas, will help you narrow down where your bug is.

General Tips

  • Be sure to save the original source code
  • Be sure the fix the problem, not the symptom
  • Make one change at a time
  • Check and Double Check your fix
  • Consider the possibility that the bug is generated from multiple sources
  • Divide and Conquer
  • Check other places where bugs have existed
  • Check other places where code has changed recently
  • Compile the application again

Logging

  • Insert Trace, Print, or Alert Statements to help track the bug
  • Create a logging methodology to trace the application
  • Check the Log Files of the servers, etc.
  • Search the web for the stack trace

Unit Testing

  • Design By Contract
  • Write unit tests that cause the error
  • Try to reproduce the bug in different ways
  • Try boundary cases and special cases

More Complex Methods

  • Recompile with a different compiler
  • Create a mini version of the application
  • Sequentialize the Parallel to see if it is a timing or resource issue
  • Try the code in different environments (local, dev, test, prod, other developers’ machines, etc.)
  • Grab someone else to talk through the bug without looking at the code (explaining the problem may trigger some ideas)
  • Do a full, in-depth code review on the broken code

Last Resort

  • Rewrite the whole section of code that is causing the bug
  • Take a break for a few minutes, or an hour, or until the next day, to give your mind time to process the data

Bug Prevention Methods

These are things that you should be doing during the planning and development of your applications that will help you identify, fix, and test your bugs after you are done with development.

  • Identify and track consistent bug types within your own code
  • Introduce debugging methodologies early
  • Implement loose coupling techniques
  • Implement Information Hiding Techniques
  • Write a regression test that tests the bug you just fixed

So… these are some different ways to attack debugging. Are there methods that have proven themselves that you have used? Do you take a different, more unique approach to debugging? What have your experiences shown to be your best practices? Please leave your feedback and let me know what you think.

The Lost Art of Debugging – Part 2 – Things Not To Do

Debugging is a complex and time consuming process.  In my last post I listed 10 Resources for Debugging, both web sites and books, that every software developer should read to keep their debugging skills sharp.  Knowing what not to do is just as important as knowing what you should do.  Here is a list of things not to do when you are debugging your application

  • Don’t guess what the problem is
  • Don’t dive into making changes without a plan
  • Don’t code right away without a thorough analysis
  • Don’t fix the shell of the problem, not the problem itself
  • Don’t trust line numbers in compiler messages
  • In fact, don’t trust the compiler messages at all
  • Don’t ignore the value of automated unit testing
  • Don’t delete the original code
  • Don’t ignore recent changes to your application
  • Don’t ignore resources available to you, like the Internet or the Library

This post is a teaser for the one that is to come – what thins should I do when debugging?  Is there a more formal process for debugging?  What steps should I follow?  What things should I look for?  What place should I look?

The Lost Art of Debugging – 10 Resources

Debugging is as much of an art as it is a science. There are lots of great tools to help developers debug their code. I believe developers, including myself, have learned to depend too much on these tools instead of thinking through the problem. There is a common thread across all programming languages and development platforms. That thread is the way that you approach, identify, and tackle a bug. To help develop an environment of good debugging practices, I have decided to write a series of blogs on technology agnostic debugging techniques.

My first post about The Lost Art of Debugging is a blogroll of resources, both electronic and print, that developers should read to help develop good debugging techniques. Here are ten great resources on the methodology of debugging.

Web Sites & Blogs

Books

Do you have other debugging resources that you depend on? Have you seen a great article on debugging? Do you have a debugging horror story you would like to share? Leave me a comment with your book, web site, or tale of woe.

Happy Thanksgiving 2007!

Happy Thanksgiving to you all! I can’t believe I am blogging today. I guess I do fit into the addictive category of bloggers. I have read an article on Web Analytics World inquiring How Addicted Are you To Blogging. You can take the blog addiction quiz on the justsayhi.com web site. The author of the article is 77% addicted, and I was 70% addicted. At the end they give you a badge to display proudly. Here is mine:

70%

Anyways, Happy Thanksgiving to everyone.

10 Must-Have Tools for Continuous Integration in .Net

Here is a quick blogroll of ten critical tools to build a continuous integration and continuous delivery pipeline for .Net applications.

Continuous Integration Process

Visual Studio Team System

CruiseControl.Net

nAnt

nUnit

WatiN

WatiN Test Recorder

nCover

nDoc

FXCop

TestDriven.Net

20 Bad Ideas – Black Hat SEO Practices

I have spent a lot of time outlining the right things to do for SEO – things that are typically called White Hat SEO. Some of the practices I have written about would even lean a bit towards the Gray Hat arena. I have even discussed the 3 different hats of a search engine optimizer. But I have never outlined Black Hat SEO Practices. These are content practices, techniques, or methodologies that are sure to get your blog or web site banned from one, or all, of the major search engines. I list these here to help draw the line between what is acceptable, and what is not acceptable to the search engines. I do not list these techniques to advocate Black Hat practices. Use These Techniques At Your Own Risk!

1. Astroturfing

This is when a false public relations campaign or fake social media in the blogosphere generate increased attention to a site, blog, or wiki.
* Livingston Buzz – Astroturfing on the Dark Side of the Moon

2. Buying Expired Domains

Domains that have expired can carry a large page rank. By purchasing the domain, throwing up repetitive content, and linking to your other web sites and domains, you can use link juice to distribute the page rank to those other sites.

3. Cloaking

Cloaking is when a site is designed to show one set of content to your users, while showing a completely different set of content to crawlers, robots, and spiders. This is considered misrepresenting your content.

4. Comment Spamming

This method is implemented by leaving comments on sites with high PageRanks. These comments can be in the form of blog comments, guestbook entries, forum submissions, wiki pages, etc. The comments are filled with high density keywords, and have links back to the spamming site.

5. Doorway Pages

A doorway page is a “fake” page that the user will never see. It is purely for search engine spiders, and attempts to trick them into indexing the site higher. This method is dependent on useragent sniffing.

6. Fake CEO / Celebrity Avatars

This is when a blogger or forums user registers as if they are a person if significance, i.e. a CEO or celebrity. These people leave damaging messages that can sway a user in a specific direction about a product or service. This can swing the other way. A Celebrity or high level executive can act as an anonymous user to leave disparaging remarks about another person, company, or product, drive traffic to their site, and ultimately increase sales.
* CopyWrite, Ink – Silencing Crisis: Whole Foods Market, Inc.

7. Google Bombing

This is accomplished by creating links on multiple sites linking to the same page with the same text. The text link may not necessarily be relevant to the linked site, thus creating the Google Bomb. The most common Google Bomb can be seen by searching “miserable failure” and seeing sites for George Bush appear at the top of the results page.

8. Google Bowling

Google is penalizing (or even banning) sites that purchase site-wide links. A site-wide link is a link that is on every page of the entire site. Google Bowling is buying site-wide links as a competitor to get them banned.
* Web Pro News – Google Bowling: How Competitors Can Sabotage You; What Google Should Do About It

9. Invisible Text or Hidden Text

This Black Hat method manifests itself in many forms. One method is to put lists of keywords in white text on a white background in hopes of attracting more search engine spiders. Another method is to embed and overload keywords into unseen places that crawlers look will get you banned as well. Places like alt tags, comments, JavaScript tags, noframe tags, div tags that are hidden, etc.

10. Interlinking

When multiple web sites are built by the same person or company, with similar content, with links pointing back and forth between them, in an attempt to increase each others’ page ranks.

11. Keyword Stuffing

Filling your page with long lists of keywords in an attempt to rank higher for those words. You don’t view this as high quality content, and neither will Google. This method is typically accompanied with the Hidden Text and Redirecting black hat methods.

12. Link Farming

Another name for a link farm is a free-for-all site. The objective of these sites is strictly to generate inbound links to your site at any cost. This will typically work in the short term, but hurt your site (or get it banned) long-term.
These kinds of sites are also known as mutual admiration societies.

13. Redirecting

Redirects are commonly used along with doorway pages, or spam pages filled with advertising. They are designed to take a user to a page that they did not want to go to. These can be both server side redirects, or client side redirects. Vicious redirect pages often get the user into an infinite loop that are difficult to break from.

14. Scraper Sites

Also known as Made-for-AdSense Sites, these pages are similar to spam pages, except that they are designed to scrape search engine results and dynamically “create” content pages. These are also used in conjunction with do

15. Selling PageRank

Sites can explicitly sell “advertising” (read inbound links) to your site. This essentially distributes some of the PageRank to the newly linked site, and its position in search engine results pages. This has been in the news a lot lately. Google has dropped the PageRank of anyone doing this. Both the buyer and seller of the link are dropped in PageRank.

16. Shill Blogs, Spam Blogs, or Splogs

Spam Blogs are when one person is paid to act as a fan for those who hired them. Generating a source of positive feedback and link sharing will increase inbound traffic and PageRank. These methods are similar in effect to a link farm.
* Business Week – Wal-Mart’s Jim and Laura: The Real Story

17. Spam Pages

Spam Pages are web pages that rank well for specific keywords, but actually hold no content. They are typically full of advertisements, listings to other sites, or are part of a pay-per-click scam.

18. Sybil Attacks

When a single user creates multiple identities to generate additional traffic. This could be in the form of multiple web sites with similar, if not identical, content. This also could be in the form of multiple social bookmark accounts, multiple comments, etc.

19. Wiki Spam

Wikis, just like blogs, are intended to be an easy way to create and organize content for non-developers (read anyone). But the distributed and open editability of wikis make the susceptible to spamming. By placing links in wikis back to the spam site, you hijack the link juice of the wiki, pass the page rank on, and increase results frequency. The subject of the wiki page is typically irrelevant. This is why large wikis like wikipedia have added the nofollow attribute to all of their links.

20. Resources

Are there any other Black Hat SEO techniques that you know of? Any other Black Hat resources that you know of? What do you think of Black Hat SEO? Let me know what you think by leaving me a comment.

50 Easy Tips to Keep your Blog Search Engine Optimized

Blogging is one of the easiest ways to get content published to the Internet.  Everyone, from the average Joe to the Corporate Communications Specialist wants to see their blog and their most recent posts on the Google results page.  But, just like SEO for any other web site, it takes time, effort, and patience.  Here is a collection of tips gathered from around the blogosphere on how to optimize your blog for search engines.

Content

  • Content is always king.  Make sure your content is new, fresh, engaging, and relevant.
  • Update your blog frequently.  The more it is updated, the more your content will be indexed.
  • Stick with your blog – don’t get discouraged!
  • Use an interesting title for your blog and each of your blog posts. 
  • Limit each of your posts to one topic, keeping your pages focused.
  • Keep your posts not too short, and not too long.  This keeps your readers interested and returning.
  • Provide a list of your top 10 blog posts on your site.
  • Make sure your tags, categories, labels, etc. also make good keywords.
  • Use your keywords as often as possible, but only in a natural context.
  • Use a blog service like WordPress, Blogger, etc.  These sites already have high content churn, and attract frequent indexing.
  • Make sure that anonymous users can leave comments.  You will get more feedback that way.

Linking

  • Increase your inbound links from other sites.
  • Link to your own posts that have a similar topic.
  • Outbound links to high quality sites help your page rank.

Markup

  • Make sure your blog’s HTML is W3C Compliant so that search engines can spider your blog easily.
  • Make sure your post titles are live links.
  • If your blog supports it, don’t forget to use meta tags in your blog template.
  • Use your primary keyword in strategic locations:
    • Your blog domain
    • In the title of your posts
    • In the anchor text of links
    • In the alt tags of your images
    • In Header tags – H1, H2, H3, etc.
    • In bold tags

Your RSS Feed

  • Be sure that RSS auto-discovery tags are placed in the header of every page, one for each RSS feed.
  • Your RSS feeds should provide full text for each post.
  • Maximize the number of blog posts provided in your blog feed.  Typical default is 10, 20 or more is better.
  • Provide a feed for every category your blog offers.

Post-Publishing

 

Do you have other tips or resources for bloggers in optimizing their sites for search engines?  Leave me some feedback and let me know.

 

Resources: