Will You Follow the DoFollow Movement?
March 18th, 2008 by John Paul Narowski

What is Nofollow, Dofollow?

Nofollow is an attribute that can be added to a hyperlink preventing Google from passing link credit to that site rel=”nofollow”. Link credit is one of the major factors Google considers when determining how authoritative your site is. You will these tags on to blog comments, and on sites like Wikipedia. It was created to fight dirty spammers, spam bots, and anyone trying to get a free link without adding any value to the site.

Dofollow is the practice of removing the nofollow tag from your links. In certain circles it is becoming the “in thing” to spread the link love.

Example badge from U Comment I Follow wordpress plugin

Pros

Share the Link Love

If a webmaster posts a legitimate comment, then does it really hurt to share the link love? Everyone wants to build their link popularity, but if it can be done by helping to contribute to other’s thoughts and ideas then it seems natural.

Reward people for taking the time to write quality comments

You don’t need to accept every comment. One that is not legit usually screams spam.

Discount Canadian Pharmacy Says:
“Your post is good. I know many peoples who also have this problem”

It isn’t hard to filter out the blatant spam. If you get hundreds of comments to your blog, then you might want to consider the Link Love Plugin, which allows you to specify the number of comments required before the visitor gets a link credit.

If you are interested in dofollow plugins Andy Beard has The Ultimate List Here. He has become a dofollow evangelist, with a great amount of information about the good, the bad, and the ugly of the dofollow movement

Encourage cross linking across sites

Allowing link credit naturally encourages cross linking amongst similar sites. You say legitimate comments should come from the heart right? As an SEO, much of my time is spent link building as opposed to leisure blog reading. If I can provide a meaningful comment to a blog and gain a backlink as a result, I will read and contribute everywhere that I can.

Note: You have to actually READ the article, and write a comment that isn’t limited to “Nice”, or “Cool…”. You still have to read articles and posts that interest you, so you can provide a meaningful contribution.

Cons

May cause comments to be less genuine

If you advertise your dofollow blog, chances are you are going to get more spam. This is just a natural result of sticking your bleeding finger into an ocean of sharks. You may start to get comments from people who just breeze over the article, and post a comment. This amigos, is called manual comment spam.

Not to say that these comments aren’t genuine, but you just have to be a little more careful while accepting comments.

Too many external links

If you have a lot of comments for a particular post, you might end up with hundreds of external links. This has been known to dilute the sites page rank, and cause it to loose favor with Google.

Vandelay experienced a direct decrease in traffic after removing the nofollow link. Read the post here.

Bad Neighborhood

You might have people who write genuine comments, but link to a bad neighborhood… EG link farms, spam sites etc. If your site passes link credit, then you might get penalized.

Conclusion

I am all for giving back to contributing readers, but it requires a careful watch. Removing the nofollow attribute might be something to consider if you have time to ensure the commenting doesn’t get out of hand. Plugins like the Link Love plugin, allow you to give something back, while still maintaining the integrity of both your posts and your posts page rank.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
5 Ways Your Business Can Embrace Micro-blogging
March 3rd, 2008 by Julie Cameron

Over the last few years, micro-blogging has spread to the masses and everyone from Barack Obama to the New York Times to Amazon has joined in the fun. Essentially (and according to my dear friend, Wikipedia),

Micro-blogging is a form of blogging that allows users to write brief text updates (usually less than 200 characters) and publish them, either to be viewed by anyone or by a restricted group which can be chosen by the user. These messages can be submitted by a variety of means, including text messaging, instant messaging, email, MP3 or the web.

Some of the most popular independent micro-blogging services are Twitter, Jaiku, Tumblr, and Pownce. But even existing platforms like Facebook and MySpace have begun building in various types of micro-blogging functionality.

So, What’s So Special About Micro-blogging?

To put it simply, there are two things that separate micro-blogging from traditional blogging. The first is the compact length of the post and the level of personalization that generally accompanies it. The second is the social element.

In most micro-blogging applications, posts are generally limited to less than 200 characters and guidelines often suggest posting about what you are actively doing. With beginners you’ll often see posts like: “I’m eating a burger”, “Going for a walk…”, or “Time to get back to work”. This type of posting is alright at first, but quickly leads to the question: ‘Who really cares what I’m doing right now?’ From this, comes the need to post something valuable and worth-while - something others can actually use or find interesting. As Dr. Mani suggests, the emphasis has to change from ‘me’ to ‘you.’ After coming to this realization, micro-bloggers have turned to posting links, planning meetups, covering events, and posting generally, more clever quips.

These short posts ensure that there is no room for fluff. They are personal, honest, and to the point, which leads us to the second important aspect of micro-blogging: the social community. The communal aspect of micro-blogging in combination with the personal nature of micro-posts is what makes this technology so potentially valuable for businesses. Aaron Brazell suggests that the power of micro-blogging is in authenticity and transparency. With the addition of a communal element, organizations have the opportunity to open up to their target markets - providing insight and creating conversations with their customers, ultimately building trust in the organization.

How Can Your Business Get Involved?

As more and more people flock to these strangely addictive platforms, businesses are looking for ways in which they can participate, as well. Clearly, the most obvious opportunity for micro-blogging in business is public relations, but I’ll be offering up a few other applications as well.

1. Public Relations

The list of PR applications in micro-blogging is growing every day as more and more organizations are looking for creative ways to engage their target markets. The easiest way to utilize micro-blogging for public relations is to simply sign up and start having conversations. With search applications like Terraminds, finding users with interest in your product or market is a breeze. Add these people to your network and reply to their posts when appropriate.

Micro-blogging is also a great way to respond to negative press and defend your brand. Take advantage of the personalized nature of micro-blogs to present a genuine defense and reinforce your organizations sincerity.

Another way you might consider connecting with your customers is by setting up a micro-blog for customer support. Use it to announce service interruptions, encourage followers to report bugs, and post status updates.

2. Promotions

Another micro-blogging application that many e-commerce businesses have already taken up is promotional offerings. Amazon, Dell and Woot are just a few organizations already in the mix. These companies use micro-blogs to post special deals for their followers and inform them of time-sensitive sales.

3. Product Announcements

Similarly, you could use micro-blogging to provide your followers with product announcements, updates, and status reports. WordPress uses Twitter to announce updates of their software, while Twitterific includes outage reports, tips, and tricks in addition to product announcements.

4. Networking

For the same reasons that micro-blogging is perfect for public relations, it is also a perfect networking tool. As mentioned above, services like Terraminds allow you to find other users and organizations with the same interests. This is a great way to find potential employees, contractors, and of course, prospective clients and customers.

5. Internal Affairs

Why not use micro-blogging internally? Not only can you strengthen employee-management relationships, but micro-blogging can be used for organizational purposes as well. Try setting up a micro-blog for project members to arrange meetings, post status updates, or inform other members about project specifics or ToDo items.

Planning a large event? Use micro-blogging to coordinate event workers and/or inform visitors of activities. Many large conferences, like SxSW, have begun using micro-blogs as a way to provide live coverage to both visitors and online followers.

You could also utilize micro-blogging for time management purposes. Encourage employees to record their progress both to keep others up to date and to ensure productivity.

A Few More Considerations

A recent discussion on the involvement of organizations in micro-blogging brought up an interesting point - that is, should businesses post as an organization or should they bring it down to a more personal level through individual, employee postings. In my opinion, the answer here will really depend on what you are trying to accomplish through micro-blogging. If you’re posting promotions or product announcements, it might be better to post as an organization and there-by maintain a strong, central identity. However if you’re using micro-blogs as a PR or networking tool, it might be a better idea to use individualized postings with the ability to reach your followers on a more personal level. Or perhaps the answer is a combination of individual and company posts to both maintain relationships on a personal level and re-enforce your overall identity as an organization.

Another point to consider is the separation of content in your micro-blog. If you plan on covering a range of topics like customer service AND networking AND event coverage, it might be a good idea to split these areas up into separate micro-blogs thereby reducing the amount of uninteresting content your followers receive. That way if a follower only cares about customer service, they aren’t bogged down by live event coverage - an overwhelming amount of content that might cause the follower to drop your micro-blog relationship altogether. Having many micro-blogs can quickly turn into a daunting task though, which is why you might consider hiring someone to focus solely on micro-blogging and maintaining your relationships.

In closing, as micro-blogs evolve, businesses will continue to find engaging and creative ways to take advantage of the technologies available. But like blogs, one aspect that won’t change is the link between regular updates and success. So keep it short, keep it simple, and keep it going!

I’m sure there are plenty other uses for micro-blogging in the business world, has anyone seen any other applications in place? Leave a comment, we’d love to hear from you!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
Using Rails Migrations as part of a Simple Installation Script
February 23rd, 2008 by Carson Keith

Rails Migrations provide an easy way to make versioned revisions to your database structure over a period of time. When used properly they can make it easy to make modifications to your existing database programmatically as you need to make changes. This is extremely helpful for large up-and-running projects, but what about projects that are still in development? I don't know about you but for me, after working on large project for awhile there can be a ridiculous number migrations sitting around. It's also quite possible that a good portion of your earlier migrations have been nullified by other migrations later on. When you start throwing data into your migrations this can quickly become a tangled patchwork web of evil.

While migrations are extremely helpful for making modifications on production systems, we have found that having a pile of migration revisions really doesn't serve much purpose during the development cycle. This is especially true if you are not needing to work with live data and you have access to a good code repository like SVN. So during the development cycle for most of our Rails related projects we maintain one large initialization migration, an installation shell script, and a refresh shell script. The large migration handles the standard migration goodness, any type of data import, and other dynamic data installation initialization procedures. The installation script is run once to deploy the application on a new system; it typically sets up the database, runs the initialization migration, and handles whatever other settings you need for deployment. The refresh script simply refreshes the database and reruns the initialization migration; this is used when the migration is updated.

Below is a very simple example of how we put this idea to use:


Database Initialization Migration - 001_initialize_database.rb

require 'active_record/fixtures'
 
class InitializaDatabase < ActiveRecord::Migration
  def self.up
 
    # Initialize fixture array
    # This array is used to load a list of fixtures that will be loaded into the database at the end of the installation process
    fixture_array = []
 
    # It's important to use the :force option if you are not going to drop tables in your down method
    # this forces tables to be overwritten if they are already present
    create_table :customer, :force => true do |t|
      t.column :name, :string
    end
 
    # Add to fixture array
    fixture_array << :client
 
    # CREATE REMAINING TABLES
 
    # Load fixture data
    Fixtures.create_fixtures('db/fixtures', fixture_array)
  end
 
  def self.down
  end
end


Installation SQL Script - install.sql

CREATE DATABASE database_name_dev;
CREATE DATABASE database_name_pro;
CREATE DATABASE database_name_test;
GRANT ALL privileges ON database_name_dev.* TO 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL privileges ON database_name_pro.* TO 'user'@'localhost';
GRANT ALL privileges ON database_name_test.* TO 'user'@'localhost';


Installation Shell Script - install.sh

#!/bin/bash
 
mysql -u root --password=password -e "source install.sql"
rake db:migrate


Refresh Shell Script - refresh.sh

#!/bin/bash
 
rake db:migrate VERSION=0
rake db:migrate

Then to install on a system we simply run install.sh from the command line.

> ./install.sh

If a change is made to the schema we run refresh.sh from the command line.

> ./refresh.sh

Since refreshing the database wipes the database clean and reloads each time, its really only useful until you have reached a final stage of deployment. Hopefully by that time though you will have a relatively stable db structure and won't need to be adding a butt-load of migrations.

It's really a relatively simple concept, but I can't tell you how much time we have saved in deployment using this methodology. We'd love to hear your ideas and deployment strategies.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
Foreign Key to Foreign Key Relationships and Single Table Inheritance in Ruby on Rails
February 20th, 2008 by Carson Keith

ActiveRecord is great and efficient for simple normalized databases, but once you start tread off the beaten path ActiveRecord starts to lose a lot of its mojo. A few months ago I had a rather abstract database that utilized a number of models based on Single Table Inheritance (STI). Prior to refactoring our our database diagram looked something like an upside down untranslated Tokyo subway map. Fortunately single table inheritance saved our butt big time and we were able to knock off a number of confusing entities from the database and refactor in some common functionality. There was but one problem though. Before our moving to single table inheritance we had a few classes that looked something like this:

class Organization &lt; ActiveRecord::Base
end
 
class Client &lt; ActiveRecord::Base
  belongs_to :organization
end
 
class StaffMember &lt; ActiveRecord::Base
  belongs_to :organization
  has_many :clients, :through =&gt; :organization
end

After moving to single table inheritance it was something like this:

class Organization &lt; ActiveRecord::Base
end
 
class Client &lt; Organization
  belongs_to :organization, :foreign_key =&gt; 'parent_id'
end
 
class StaffMember &lt; ActiveRecord::Base
  belongs_to :organization
  has_many :clients, :through =&gt; :organization
end

It looked fine. I had only changed one thing in the client model, but now the has_many association in the StaffMember model just doesn't work anymore. I kept getting an error akin to:

ActiveRecord::StatementInvalid: Mysql::Error: #42000Not unique table/alias: 'organization': SELECT organization.* FROM organization organization.parent_id = organization.id WHERE ((organization.organization_id = 1)) AND ( (`organization`.`type` = 'Client' ) )

Well that just plain sucked... all of that refactoring seemed to have gone to waste. I scoured the net looking for a solution to my conundrum and I couldn’t find a single reasonable answer to it. I could have used the "finder_sql" option but then it only returns read only pseudo models. There just had to be a better way. I begrudgingly started to dig through ActiveRecord hoping to find a quick fix. Alas, I came back empty handed. I had almost lost hope when I realized I could just like the two foreign keys together between the Client and StaffMember model to get the same result as using the Rails has_many :through option. So I dug around a little bit more in ActiveRecord and added an “alternate_key” option to the HasManyAssociation class to define a different foreign_key instead of always needing to link to a primary_key. So now I could link directly to the Client model from the StaffMember model without needing to use the :through option. An example can be seen below:

class Organization &lt; ActiveRecord::Base
end
 
class Client &lt; Organization
  belongs_to :organization
end
 
class StaffMember &lt; ActiveRecord::Base
  belongs_to :organization
  has_many :clients, :alternate_key =&gt; 'organization_id', :foreign_key =&gt; 'organization_id'
end

Now @staff_member.clients should return a list of clients that are part of that StaffMember’s organization.

Download it

I have included the source below. Simply unzip it and drop it into your project’s lib directory and you should be all set. Download

Questions, Comments, Contiributions? Contact Me.

It’s really pretty simple at the moment and it only supports standard has_many relationships. If anyone has any questions or is interested in contributing ideas or code, please feel free to contact me at: A special thanks to Philip Koebbe for pointing out some flaws in my original post.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
Welcome to the MetaSpring Blog
February 19th, 2008 by Julie Cameron

Hello, and welcome to the new MetaSpring blog where we’ll be discussing a wide range of topics - from internet marketing and SEO tricks to web development trends and code snippets. You’ll most likely even find posts about philosophy, music, and the arts, since those are just a few of our core, creative inspirations.

The purpose of this blog is to act as a hub for communications between our company and the rest of the world. We want to start conversations and form stronger relationships because we know that it is these types of connections that produce the greatest ideas. The possibilities are endless in this virtual universe that we call the World Wide Web.

Naturally, this first post comes with the launch of our revamped company website which now features an extended portfolio of our work, detailed descriptions of our services, client testimonials, company history and management biographies. We hope you’ll take a few moments to browse through the site and let us know your thoughts.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
 
Recent Posts