Inline css and javascript must die

Managing a large codebase with inline styles and javascript is a pain in the ass.

Retheming a site becomes impossible.

Print and mobile versions are difficult to implement.

Inconsistencies appear between views.

All changes must be duplicated throughout the site.

It’s a mess.

I have been using Inline Code Finder for Firebug and Find/Replace in Komodo IDE to identify all the similar inline code instances.  Then, I am grouping the styles together for reorganization later.

I would love a tool that finds all the inline styles and groups them together by selector for me.

Commenting disabled motivates me to comment

I usually hate comments.  I purposely avoid them, especially on my local news’ networks website (KSDK).

Today, I read something that really compelled me to say something, but:

Commenting is off.

Let’s follow the hops.

I started out reading @CaseySoftware.

Which took me to Open Sourcing Google Page Rank Algorithm.

Where I clicked on  “…effect SEO practices actually have“.

In this article, the author reviewed the top ranking sites for 10 different keywords.  He noted that their HTML markup was awful and inconsistent with some SEO “rules”. Therefore, he concluded, that SEO does not determine a page’s rank, but rather serves as a tie-breaker between pages with the same rank.

Arg.

On-page factors account for a small percentage of a site’s search engine ranking.

I really wanted to post that in the comments, so that others who read his post wouldn’t buy this flawed experiment as the whole truth. But, he said “No commenting allowed”.

Comments can add a tremendous amount of value to your content.

For example, Brandon Savage posted about why there are no enterprise projects written in PHP.  He planned to fix that in 2010 by contributing a bug tracker, VC browser, etc.  In the comments, he was overwhelmed with people suggesting not to reinvent the wheel and to check out Arbitracker.

Without comments enabled, Brandon’s monologue is trivial to me. But, he started a conversation that introduced me to a potentially useful piece of software that I was unaware of until he boldly stated he was going save the world.

If you are sharing an observation, please leave the commenting enabled for others to chime in.

What Matters Now

Giving Virtualbox a run

I’ve been using VMware Server for a few years now and I usually have no issues with it at all.  Occasionally, when updating Linux kernels I will have issues rebuilding some of VMware’s modules.

Then, I will end up on an endless journey of reading forum posts and trying ridiculous suggestions just to get the software to build.  The problem is with my lack of understanding of the software because it is a tertiary need.

I don’t need VMware Server.

I need instances of IE6, IE7, IE8 and other Windows browser variations to test against.

I would love to learn all the magic that is virtualization, someday. For now, my need for virtualization is solely browser testing.

So, here is how my first attempt at using a legal/licensed Windows XP for IE6 virtual machine went down.

Downloaded and Installed VirtualBox 3

http://www.virtualbox.org/wiki/Downloads

Downloaded Windows XP SP3 image

http://www.microsoft.com/Downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&displaylang=en

Installed qemu

sudo apt-get install qemu

Converted the VirtualPC image to a VMware image

qemu-img convert -f vpc WindowsXP-SP3-IE6.vhd -O vmdk WindowsXP-SP3-IE6.vmdk

Note: this step is probably wrong, but I intend to fix my VMware Server setup when I get a chance and Virtual Box is capable of playing nicely with vmdk images, so whatever.

Downloaded driver for virtual nic

http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_6629_2452%5E2454%5E2486,00.html

Created an ISO to load from virtual machine

mkisofs -r -o drivers.iso ~/downloads/xp_vm_drivers/

Booted up the virtual machine, installed the drivers, rebooted… Boom!

Lotsa issues.

But, I didn’t care, because I just wanted to see one page in IE6 long enough to deal with a css issue.

When bofe returns to noising up the internet (January 12, 2010), I fully expect an update to this post on how to set up a legal browser test environment for IE6 correctly.

The great Google Webmaster Tools cover-up

In 2006, a friend of mine was getting married, so naturally planning for a bachelor party began.

With everyone involved spread out across the country, I setup a subdomain and a WordPress blog with accounts for everyone to post/comment/etc.

The bachelor party had many creative ideas, but ended up half the country away and I stayed home.  I just enjoyed the wedding instead.

And the blog was long forgotten.

There were no links to this microsite and it stayed in existence until last week or so.

I was searching for this site to see how the SERP listing would appear and was surprised to find:

“____ Bachelor Party 2006 > Strippers”

in the listing.

There were lots of tags that somehow all got indexed.  Hmm.  Then I realized, pingomatic.  I’m an idiot.  Every post was being pinged around the internet for all your indexing needs.

Google Webmaster Tools saved my reputation very quickly. Here is a few notes on removing content with GWT:

  1. Do not remove the subdomain prior to attempting to remove the content (assuming you want to remove content from Google Cache as well)
  2. Add a robots.txt file (User-agent: *  Disallow: / )
  3. Move all content pages & replace index.php content with <?php header(“HTTP/1.0 404 Not Found”); ?>
  4. Read Google’s guidelines for removing content

Thanks #google.

Google is barely important

I just realized that I don’t need Google for anything.  I barely use any of their software as it is.  Out of all the things they list on their Google Products page, I only use the following 20+ items:

  • Gmail
  • Calendar
  • Web Search
  • Google Chrome
  • Google Health
  • Finance
  • Docs
  • Groups
  • Picasa
  • Reader
  • Talk
  • Blog Search
  • Checkout
  • Custom Search
  • Earth
  • Images
  • Maps
  • News
  • Product Search
  • Code
  • YouTube
  • Mobile
  • Maps for mobile
  • Search for mobile
  • Analytics
  • Notebook
  • Latitude
  • Website Optimizer
  • Adwords
  • Local Business Center

Google Reader has stats. Who knew?

reader-details

I am usually not curious enough to go seeking out some of the not so obvious features in software I often use.

Apparently, Google Reader will show you how many other people are currently subscribed to a feed, frequency of new posts and some other nifty charts and such.  Surprisingly, a lot of the feeds I am subscribed to have a smaller Google Reader audience than I would have expected.

I wonder what percentage of RSS/Atom subscriptions are using Google reader vs. other rss apps.  I can’t even name one.

Gmail is kind of cool

gmail-unsubscribe-link

I love it when new, useful features just appear in software I use.  Especially when those features are neatly tucked away, like the new “Unsubscribe from this sender” functionality in gmail.

I subscribed to 1800-flowers email newsletter while writing a post on best practices for email marketing.  I was using screenshots of their designs as essentially “what not to do”.

Random email marketing note:

If images are not displayed, your email should still clearly communicate the message!

So, this unsubscribing feature is cool, because I purposely subscribed to the list.  It would not be fair for me to, in laziness, “Report as Spam”.  The  good email marketing services count those responses and even take action on them, by disabling accounts with too many instances of spam being reported.

Oh, you can “Unsubscribe and Report Spam” too.

git workflows for gangsters

git is where it’s at.

It’s fast. Ridiculously flexible. Borderline life changing tool for any developer.

Here’s one example of git awesomeness.

When adding a new experimental feature:

Create a new branch to work in

git checkout -b awesome-new-feature

Write some code or something

Stage the files (-a) for a commit and commit them to your branch.  (This step probably needs to happen multiple times, I’d suggest git-cola)

git commit -a -m “Added the finishing touches to the awesome new feature’s model”

Switch back to the main branch.

git checkout master

Merge the new feature into the main codebase.

git merge awesome-new-feature

The flexibility of being a distributed version control system lets you clone your work onto your laptop and work anywhere, without relying on wifi being available and stable.

Checkout some more in-depth git workflow examples:

A Git Workflow for Agile Teams

git is really “a tool for designing VCS workflows” rather than a Version Control System itself

git: fetch and merge, don’t pull

The problem with git pull is that it has all kinds of helpful magic that means you don’t really have to learn about the different types of branch in git.