Monthly Archives: March 2010 | Force 5
  • Left Brains.

  • Right Brains.

  • Brand Soul.

Monthly Archives: March 2010

Mar
26

Do's And Don'ts Of Running Facebook Business Pages

Posted on March 26, 2010 by nmcelwrath

More and more businesses are moving to Facebook as a platform to reach new customers and communicate with existing customers. It is becoming increasingly important to set yourself from the pack in the world of Facebook business pages. Make sure you are getting the most out of your Facebook business page by following Force 5's Do's and Don'ts of running a Facebook page for your business.

Do: Post at least daily. A stagnant page will often be forgotten and be viewed as irrelevant. If you don't have the time to stay within view of your customers, you more than likely will not be the first option they think of when they need your services.

Don't: Send frequent mass emails to your fans. This could be viewed as a form of spamming and is often annoying to many users. Although this can be determined by industry, typically the limit is weekly – although we recommend monthly or quarterly.

Do: Post questions or conversation starters. Engage your audience and let the conversation and interaction drive the relationship. This will keep you relevant with your fans.

Don't: Post personal information. This is more common than you may think. The line of business and personal life in most cases should not be crossed and is important not to blur. Create rules within your organization to help curb any chance of posting anything sketchy and of course use your best judgement.

Do: Ask questions about your fans. Market research can be tricky to gather. Facebook is filled with opportunities of gathering customer information to better know your core audience. Ask questions, create polls, engage your audience with thought provoking questions.

Don't: Just post links. Mix your posts up. Ask questions, post links, post photos, post a news update, ask a question, comment on posts, etc. Don't come across as a machine, mix your content up and keep your fans on their toes.

Do: Post various forms of media. Utilize photos, music and videos as a way for your fans to see “inside” your organization. Behind the scene insight is a great way to connect with your fans and gain trust.

Don't: Sell something all of the time. Post your deals respectfully and without salesman clichés. Create a tab where fans can find the deals you are offering and don't let “Act Now” posts dominate your wall. Let interaction do the driving.

Have questions? Post a comment below or on Force 5's own Facebook page.

Mar
19

Robots.txt - Telling bots where to go and where not to

What is the robots.txt and why is the robots.txt file important?

The robots.txt file is placed in the root folder of your website. This file instructs search engine bots what can and cannot be indexed. All you need to do is to define some criteria of what can be indexed and what cannot.

Examples:

Below you will see “User-agent: *” which is defining all bots and “Allow: /” is stating index all folders.

User-agent: *
Allow: /

Here is a direct opposite to not allow indexing for all bots.

User-agent: *
Disallow: /

Not allowing indexing for your whole website would probably not be recommended. Although there can be special situations where you would want to block all. For example, if you are working on a ‘beta’ website that you did not want to get index. This would be the situation to use if you were not using an authentication process on the beta site to be able to view the site.

A few years ago when bandwidth was costly I ended up having to create a special rule to block my portfolio image folder. In this example you will see how disallow a folder for all bots.

User-agent: *
Disallow: /images/

For more information regarding robots.txt here are a few resources worth checking out:

Lastly, it should be noted the robots.txt is merely a recommendation than absolute. Meaning a bot can totally ignore the robots.txt rules that you have laid out. So if you have any important content that you need to keep from being indexed, it is a best practice to put login credentials on the folder storing that content to keep it from the bots.

If you need help with your robots or SEO please feel free to give Force 5 a call.

Mar
11

The Bean Brand

Posted on March 11, 2010 by ddefreeuw

L.L. Bean is taking a leap into new territory! They are creating a brand extension called L.L. Bean Signature. The new line is a collection for men and women with updated styles and cuts. One of their new offerings is called the "Plain Weave Signature Suit," and sells for just over $200.00. I have looked at the video preview on their website and I can’t wait to see the whole line when it rolls out on March 15th! The clothes are still “outdoorsy” in a way, they still utilize plaid, denim and twill, but they look closer in design to Ralph Lauren than the traditional, more conservative L.L. Bean.

I went to the L.L. Bean website to look around and compare the new line to their current line. I also found a video on YouTube with the story of how L.L. Bean started, with the Bean Boot. Employees were featured and talked about how much they love working at L.L. Bean and how they are committed to quality. When they see a box in a store with a number on it that they recognize from shipping, they take pride in knowing they packed that box. L.L. Bean is doing everything right; they are living their brand from the inside out. Their employees believe in the product they manufacture and sell, they are brand ambassadors.

Because L.L. Bean has such strong core brand equity, the new L.L. Bean Signature line will be expected to live up to that standard offering high quality clothes at a reasonable price and great customer service. I am certain that is exactly what they will offer!

L.L. Bean has already proved they have brand “extendibility.” Everything from backpacks, furniture for indoors and out, canoes and even branded a line of Subaru cars has sported the L.L. Bean name. Obviously consumers have a strong association to the brand name and trust that it will offer what it claims.

The heart and soul of L.L. Bean lives on, that is brand. Here at Force 5 we specialize in helping companies reconnect or discover their “soul” and then bring everything into alignment with what makes them distinct. That message of distinction is then conveyed both internally and externally. If you are ready to discover your soul, let us know – we’re ready to put on our Bean boots and dig in!!

Mar
05

SQL Case Study - Convert data rows to columns

Posted on March 5, 2010 by force5

We recently had a project that involved putting together a survey.  This survey was comprised of almost 150 questions.  As we brainstormed the best way to construct the data tables to store this information, the thought of a table with 150 columns made us cringe.  Time constraints also called for something we could put together relatively quickly.  We decided to create a table that stored each question as a row of data.  Then we made a table that referenced the primary key of the question table along with the user's answer to that question.  So instead of having a table with 150 columns, we have one table with 150 rows and another table that stores a data row for each question answered on the survey.  Now if a question needs to be added or removed from the survey all that needs to happen is add or remove a row from the questions table.

It also made collecting the survey data through a ASP.NET Web Site a lot easier, but that can be a future blog topic.

All of that was a setup for displaying the following solution that we created.  In order to display the data correctly for reporting purposes we needed to be able to transform the 150 rows of data in the questions table into a table with that data as column names.  In simpler terms, we needed to convert a set of data rows in table columns in a temporary table. Then we needed to be able to populate that table with the data from the answers table.

Here is the solution we came up with using the power of a stored procedures in Microsoft SQL Server.

CREATE PROCEDURE [dbo].[Survey_Answers]
AS
BEGIN
SET NOCOUNT ON;

-- Declare variables
DECLARE @QuestionID varchar(20), @sql varchar(MAX)

-- Create empty temporary table with id column
CREATE TABLE #tempTable (SurveyID int NULL)

---- Insert Columns into pivot table ----
-- Declare cursor to loop through table
DECLARE curQuestions CURSOR FOR
SELECT     QuestionID
FROM         Survey_Questions

OPEN curQuestions

FETCH NEXT FROM curQuestions INTO @QuestionID
WHILE @@FETCH_STATUS=0
BEGIN
-- Defines each column
SET @sql = 'ALTER TABLE #tempTable ADD ' + @QuestionID + ' varchar(1024) NULL'
-- Executes the command which creates the column in the temp table
EXEC(@sql)
FETCH NEXT FROM curQuestions INTO @QuestionID
END

-- Clean up cursor
CLOSE curQuestions
DEALLOCATE curQuestions
---- End of Insert Columns section ----

---- Insert id values into pivot table ----
-- Create rows in temp table using IDs from Survey table
INSERT INTO [#tempTable] (SurveyID)
SELECT     SurveyID
FROM         Survey

---- Insert data into pivot table ----
-- Loop through each row in Survey_Answers
-- Update values in pivot table

-- Declare variables
DECLARE @SurveyID int, @QuestionID2 varchar(20), @Answer varchar(1024), @CurrentSurveyID int

-- Initialize variables
SET @CurrentSurveyID = -1
SET @sql = ''

-- Declare cursor to loop through table
DECLARE curAnswers CURSOR FOR
SELECT     Survey_Answers.SurveyID, Survey_Answers.QuestionID, Survey_Answers.Answer
FROM         Survey_Answers INNER JOIN
  Survey ON Survey_Answers.SurveyID = Survey.SurveyID
ORDER BY Survey_Answers.SurveyID

OPEN curAnswers

FETCH NEXT FROM curAnswers INTO @SurveyID, @QuestionID2, @Answer
WHILE @@FETCH_STATUS=0
BEGIN
IF @CurrentSurveyId<>@SurveyId
BEGIN
-- This will run at the end of a set of questions related to one survey
-- And initializes variables for next set of questions
IF @sql<>''
BEGIN
SET @sql = STUFF(@sql, LEN(@sql), 1, ' WHERE (SurveyID = ' + CONVERT(varchar, @CurrentSurveyId) + ');')
EXEC(@sql)
END
SET @sql = 'UPDATE [#tempTable] SET'
SET @CurrentSurveyId = @SurveyId
END

-- Update values in pivot table
SET @sql = @sql + ' ' + @QuestionId2 + ' = ''' + @Answer + ''','
FETCH NEXT FROM curAnswers INTO @SurveyID, @QuestionID2, @Answer

-- This section takes care of the last row since it will not go through the IF @sql<>'' code above. Uses same code as that section
IF @@FETCH_STATUS = -1
BEGIN
SET @sql = STUFF(@sql, LEN(@sql), 1, ' WHERE (SurveyID = ' + CONVERT(varchar, @CurrentSurveyId) + ');')
EXEC(@sql)
END
END

-- Clean up answers cursor
CLOSE curAnswers
DEALLOCATE curAnswers

-- Select values from created table
SELECT     [#tempTable].*, Survey.DateCreated
FROM         Survey INNER JOIN
[#tempTable] ON Survey.SurveyID = [#tempTable].SurveyID
ORDER BY Survey.SurveyID 

-- Clean up the pivot table
DROP TABLE #tempTable
END

Let us know what you think about our approach or if you have any questions.