Monday, May 30, 2011

Twitter for Business Part 2: Twitter Usage and Etiquette

Not long ago, I posted a defence of Twitter called Twitter for Business: Beyond what you had for lunch. That post focused on the value and benefits of the Twitter service—emphasising that Twitter is open, democratic and acts as an instant worldwide bulletin board.

In the first post, my goal was to distinguish the legitimate value of Twitter from the widespread misunderstanding that Twitter is just people ranting about their pets and what they last ate. I didn’t cover the nuts and bolts of how to actually use Twitter for business and how to distinguish your marketing efforts from simple automated tweets—the ‘sock puppets’ for hire.

The reason I didn’t cover the ins and outs of using Twitter in the first post is simple that Twitter is not new; it has been around for many years and it should be the case that most people on Twitter understand how to use it. However, that’s not necessarily true. I’ve seen plenty of examples recently in the Microsoft SharePoint community of tweets that demonstrate a lack of understanding of the basics of Twitter. So here’s a quick refresher on using tweets.

Tweeting in All Capitals

Let’s get a quick one out of the way first. Do not tweet with the Caps Lock key. Just like other media—such as e-mail, newsgroups, forums, and texting—the convention on Twitter is that writing in all caps is tantamount to shouting. Don’t do it unless your team just won the Stanley cup or your daughter  just got accepted to med school. In a business context, it’s easier—don’t do it.

(Ironic Note: The Heading 2 tag of this blog changes text to all caps, and the title of this blog template is always in caps. Let’s say that’s the exception that proves the rule.)

# Tags (read: HashTags)

Are hashtags important? Absolutely! (Or should I write, “ABSOLUTELY"!”?). Hashtags (the # symbol) are one of the best ways to get your tweets read and to attract new Twitter followers.

Hashtags started out as a workaround to the fact that there isn’t editable metadata associated with tweets. In other words, you can’t add your own taxonomy tags (like the categories on this blog) and use them to categorize or search. People would follow the @hashtags Twitter account and their tweets would be added to the data store that collects about tweets. Or in their own words, “ is the defacto standard for hashtag information. The # symbol, called a hashtag, is used to mark keyword or topic in a Tweet. Any Twitter user can categorize or follow topics with hashtags.”

This mechanism allows Twitter users to identify ‘trending’ topics or keep track of messages about a certain topic by searching for the hashtag. While it’s true that lots of people only read tweets coming through on the feed from the accounts they follow, it’s also true that many people set up searches on particular topics and read those feeds as well. In fact, if you’re a heavy Twitter user, these may be the only feeds you read.

But you’re saying to yourself, “I can create my own keyword search in my favourite Twitter client, so why do I need hashtags?” Yes, it’s true that you can create you own search using any words and look for tweets about a particular topic. However, let’s say you were interested in Microsoft’s cloud development framework: Windows Azure. If you were to create a Twitter search for “azure,” you would get all sorts of noise that didn’t interest you. For example, messages such as, “I’m putting up new drapes. I think I’ll go with azure.” On the other hand, if you use the hashtag #azure, then you know that you’ll only be reading tweets about Windows Azure. Hashtags are also a convenient shorthand for phrases that would otherwise be too long for convenient Twitter usage. For example, the 2011  Microsoft SharePoint Conference is nicely abbreviated to: SPC11, so I can search for that tag to follow tweets about the event. In many cases, these tags are advertised on websites, but often they are organically spawned by the community.

If you are using Twitter for business then you want to ensure that your tweets are reaching the right audience. In the previous example, any tweets that you put out without the # symbol before the word “azure” would not reach the enthusiastic Azure development community. In other words, you may as well not be tweeting. Note that you only need to use these symbols once for each tweet, so “#SharePoint is cool. I like #SharePoint” is not necessary. Just use the hashtag once. Otherwise you’re wasting characters and demonstrating a lack of understanding of the Twitter medium.

At the beginning of this post, I mentioned that one dimension of Twitter that I’ll be touching on is how to gain more followers. Using hashtags is an excellent example of how to use Twitter tools to increase your followers. If your fascinating tweets consistently show up under a particular topic, the people interested in that topic will follow you.

In the current generation of Twitter clients, hashtags have taken on even more importance because the creative client developers have added some features that make them even more user-friendly. Personally, I use the TweetDeck client and adding search columns for hashtags is ridiculously easy, you literally click on a hashtag and you’re done; TweetDeck will create the search column for you.

Here’s some more information about hashtags from Wikipedia:

“Short messages on services such as Twitter, FriendFeed or may be tagged by including one or more hashtags: words or phrases prefixed with a hash symbol (#) … Then, a person can search for … this tagged word will appear in the search engine results. These hashtags also show up in a number of trending topics websites, including Twitter's own front page. … The feature has been added to other, non-short-message-oriented services, such as the user comment systems on YouTube and Gawker Media … Real-time search aggregators such as Google Real-Time Search also support hashtags in syndicated posts, meaning that hashtags inserted into Twitter posts can be hyperlinked to incoming posts falling under that same hashtag.”

@ Tags(read: account tags)

Just like hash tags, the @ tag is a fundamental tool in the Twitter toolbox. Instead of writing, “I like Windows Azure,” you should tweet, “I like @WindowsAzure.” The difference may seem minimal, but it is key. The former is just text, the latter is the Twitter account name. Most Twitter users will monitor their ‘mentions.’ By using the account name instead of just a string of text, you’re alerting the user that someone has tweeted about them specifically—not just the subject in general. These mentions are often reciprocated by ’retweets’ (the next topic) and follows. Of course, this example applies when there is actually an official account. It would be harder to do this if your tweet was about wood or milk—although I’ve seen TV ads for both, so maybe not.

If you want people to notice you on Twitter, one of the best ways is to mention their personal account or their organization’s account in your tweets—it’s all about building a buzz and people won’t build you up if you don’t reciprocate. Furthermore, if you’re tweeting about your own organization, you should use your account name—with the @ symbol—so that any retweets show up in your twitter mentions. Mentions are another example of a feature that Twitter clients leverage. By tracking your mentions, it makes it simpler to keep track of who is tweeting about you.

“RT” (read: Retweet Tags)

A ‘retweet’ is the real power of Twitter; it’s like the old shampoo commercial, when someone retweets, you’ll tell two friends and they’ll tell two friends, etc. More retweets means more people will see your message (generally speaking) and you’ll have a wider audience. When a user retweets a tweet, they use the convention “RT “ and then the original users account name “@account:” to give credit to the person who first tweeted the message. Lack of the “RT “ convention in the same message sent out by multiple accounts is often an effective way to detect sock puppet accounts.

When you retweet, the user’s account will be included in the tweet, so the longer your account name, the shorter your tweets can be—if you want to make them easy to reweet, and you should. I like to call this the ‘Twitter tax’ since it take away characters that you’d be able to use. For example, my Twitter account is @cawood, so my Twitter tax is 10 characters because I also need to add the three characters used by “RT “. Every time I write a tweet that I want others to tweet, I should limit it to 140 – 7 – 3 = 130 characters. I don’t have to do this, but it makes my tweet easier to retweet and therefore reduces friction.

It is considered bad form to retweet someone else’s tweet without giving them credit (i.e., leaving off their account name). In the case where their “twitter tax” is too high to allow you to do a simple retweet, you can edit the message to allow it to work. I often have to edit tweets to retweet them properly. When I do this, I make sure that the spirit of the original tweet is maintained. Misquoting a tweet is a really bad idea.

Messages to People

If you are following an account, and that account is also following you, you will be able to send direct messages back and forth. These “DMs” allow you to have a private conversation over Twitter. For example, if you wanted to share your contact information with one account, but not send it out publicly. DMs are also a good way to send constructive feedback without publicly criticizing someone.

If you don’t want your twitter account to seem like a mindless sock puppet for hire, then make sure you actually engage in some social activity on the social network. Account’s that just send out retweets don’t have a personal feel and aren’t as likely to attract followers—which is conveniently the next topic.

How To Attract Followers

The simplest means to attract twitter followers is to have a focused account about a subject that interests you and then send out a reasonable number of tweets. If you send 20 tweets in a row, many users will find you too chatty and stop following. The appropriate number will vary, but understand that you can send out too many or too few tweets.

- Search for popular accounts that are also focused on your field of interest and follow them. Even if you don’t plan to read your Twitter feed regularly, you should follow these accounts because it will raise your profile. Some accounts will reciprocate your follow as a gesture of good will.

- Set up a search for hashtags relevant to your subject matter. Twitter clients such as TweetDeck are great for this.

- Retweet interesting tweets to get noticed by more accounts.

- Send messages to users answering questions or commenting on their tweets. In other words, engage.

There are services out that that advertise the ability to increase your Twitter followership. I haven’t looked into that option, because it seems like you’d just get a bunch of phony accounts building up your now meaningless follower number. However, it’s possible that I’m wrong about this, so I’ll just say that you can check out that option if it interests you.

Follow me on Twitter: @cawood

To read more about Twitter, you can read the Twitter usage Wikipedia article.

Saturday, May 21, 2011

Microsoft Online Services Client Sign-in Issue

I ran into an interesting error last week. I’ve rarely had issues with computers clocks, but for some inexplicable reason, two of my machines were on the wrong time last week. One of the consequences of this fact was that the Microsoft Online Service (MOS) sign-in tool for BPOS (now called Office 365) failed to work. This is one of my public service announcement posts—hopefully, this will help the next person quickly resolve the problem.


The error didn’t give me any indication that it was an issue with the clock: “The client was unable to establish a secure connection with the server. Please try signing in again.

The solution was simply to set the computer clock correctly and change the server that I was using for online synchronization.

The full error is below. it was also reproducible on the MOS customer portal web page.


This issue is discussed on the Microsoft Online: Services Sign In for Windows forums here:

Full Error:

The client was unable to establish a secure connection with the server. Please try signing in again. If the problem persists, please contact your system administrator.

The page requires a valid SSL client certificate

Your client certificate has expired or is not yet valid. A Secure Sockets Layer (SSL) client certificate is used for identifying you as a valid user of the resource.

Please try the following:

  • Contact the site administrator to establish client certificate permissions.
  • If you already have a valid client certificate, use your Web browser's security features to ensure that your client certificate is installed properly. (Some Web browsers refer to client certificates as browser or personal certificates.)
  • Change your client certificate and click the Refresh button, if appropriate.

HTTP Error 403.17 - Forbidden: Client certificate has expired or is not yet valid.
Internet Information Services (IIS)

Technical Information (for support personnel)

  • Go to Microsoft Product Support Services and perform a title search for the words HTTP and 403.
  • Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled About Certificates, and About Custom Error Messages.

Tuesday, May 10, 2011

Geeklit Blog Passes 400,000 Page Views

As you can see by the “old school” counter below, geeklit recently passed the 400,000 page views mark. (Yes, that’s views, not hits, so 400,000 people saw one page, or if it was one person—well that person really likes my blog.) This has me feeling a little nostalgic about the path that this blog has taken.

In the early days, it was very much about Halo. (And trying to be an advocate for legitimate Halo modders. Modding isn’t about cheating damn it!) The first post for this blog was written Monday, January 31, 2005 and the majority of the posts at that time were about my Halo books: Black Art of Halo Mods (Sams), Halo 2 Hacks (O'Reilly) and Halo 2 Battle Guide (Thompson). There was also some content about Microsoft Content Management Server (MCMS) and the book I co-authored about that software: MCMS: A Complete Guide (AW). I don’t feel bad ‘plugging’ these titles because they’re so old now that I don’t think anyone is interested in paying for them anymore.

- this image was in the first post with the caption “I don't recall whether this was staged or not”

Of course, after leaving Microsoft, I eventually made it back into the fold (although writing books about Halo and XNA—how far did I really roam?) when I joined metalogix and started blogging and writing books about content management again—of course, Microsoft had consolidated on SharePoint by that point.

I’ve had people tell me over the years that my blog is eclectic, and I’ve always agreed with that assessment. Whether it was chronicling a drive across Canada, or writing about some development topic such as adding Growl/Prowl push notifications to SharePoint applications, I have jumped around a bit.

There is a common thread though, whether it’s Halo, MCMS, SharePoint, coding for XNA, or even highlighting the no left turn to Tim Hortons sign in Fredericton, it’s all pretty geeky.

Sunday, May 08, 2011

Azure Debugging Database Error

To set up the ability to debug Windows Azure projects in Visual Studio, you need to first run the “dsinit” command line utility (C:\Program Files\Windows Azure SDK\v1.2\bin\devstore>dsinit) which comes with the Windows Azure tools for Visual Studio. I recently ran into an issue where dsinit would not create the SQL Server Express database that would be used for debugging Azure projects.


The error is “Failed to create database ‘DevelopmentStorageDb20090919’: User does not have permission to perform this action. One or more initialization actions failed. The development storage cannot be used without resolving these errors.”

The issue was that the user logged into Windows did not have the “dbowner” right in SQL Express. It was also necessary to add the “sysadmin” right so that the user could set permissions once the database was created.


After adding sufficient rights in SQL Server Management Studio to the SQL Express database, dsinit successfully completed.


Sunday, May 01, 2011

Windows Azure Debugging Issue with SQL Server

I was working on a Windows Azure application today and when I tried to debug, I found that I was being stopped by the error below. I happen to have the full version of SQL Server on the machine in question, so my haughty first response was that I wasn’t going to install something else, but after trying the recommended approach, the simplest solution was to just install SQL Server Express.

Windows Azure Tools: Failed to initialize Development Storage service. Unable to start Development Storage. Failed to start Development Storage: the SQL Server instance ‘machinename\SQLExpress’ could not be found. Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.

I found this blog post that gives a lot of helpful info about the issue: I first checked the firewall and that wasn’t the issue. Then I used the utility referenced on this page to check SQL connectivity.


Sure enough, the SQL Browser service was disabled (it showed NOT LISTENING). I started the service and was able to get past the original error message. I then ran DSInit to specify my SQL instance.


However, after running DSInit and specifying my SQL instance, I got the error below which advised me to install SQL Server Express. Fine. I did and it worked.

Server Error in '/' Application.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

SQLExpress database file auto-creation error:

The connection string specifies a local Sql Server Express instance using a database location within the application's App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist. The following configuration requirements are necessary to successfully check for existence of the application services database and automatically create the application services database:

3. Sql Server Express must be installed on the machine.


Update: I haven't tried it, but I hear I'm supposed to use "/sqlserverinstance." to use the full version of SQL Server.