Diary of a Microsoft blog – the early days. A true story. Happening in real time.
LIVING WIKI: This means that this blog post will get updated frequently with more content in it’s new spot on SlingAlibi.
This is the story of how to get an online presence set up from the POV of a Microsoft technology advocate (and employee). It began small, just as a tiny little blog on MSDN 2 weeks ago, but within only a week’s time, has gone well beyond that and walks through getting a full fledged platform setup with Windows 2008, ASP.NET and SQL Server. Hopefully it will serve as a guide for others looking to evangelize Microsoft technologies. The new blog will be moved to blog.slingalibi.com.
- For Microsoft employees covering our development platform, the easiest place to set up an online presence is on MSDN. You’ll need to set up an MSDN account. You will need to be a Microsoft employee to do this. Otherwise you may want to consider Live or MSN Spaces. I actually went through the process of setting this up, lived there for a week and have decided to move to my own managed domain for more robust control.
- Install Live Writer or an equivalent blog writing tool. Do not use MS Word because adds a lot of heavy markup to your blog.
- Post your first entry by writing it, saving as local draft and when you are ready. Clicking publish will send it to the blog you configure in
- Install IE8, Firefox, Safari and Chrome. Test to see the differences in each browser.
- On your site, once you sign in you will see a link that enables you to Enter My Dashboard (Community Server). You’ll want to setup a few settings such as:
- Choose theme – You’ll want to see stars for user rating and also display Posted Date for your blog entries – MSDN blogs currently run on Community Sever 2.0, so there are several themes built in. Eventually you will want to override with your own custom CSS. But for now, I am using: simple – blue right sidebar.
- Track your blog “reach” and content. Reach is tied to the behavior that your audience takes beyond just passively subscribing or reading your blog. Reach can be measured by Feedburner (see below) and also by a URL tracker. For example, I shorten longer links and use bit.ly for my hyperlinks. Then when I login to bit.ly, I can see how many people have clinked on those links. Bit.ly and other similar services not only shortens the URL, but also allows you to track activity and clickthroughs. You can also link bit.ly with to Twitter, cross posting your content with tweets.
Setting up RSS Syndication
- Get an account on Feedburner. (NOTE: This is a Google product. I have yet to discover the Microsoft equivalent, and plan to replace this component once I discover the appropriate .NET software. In the meantime…) Feedburner allows you to track page views, geographies, and client types (Mozilla, Outlook, etc). (Unfortunately, this forces you to get an account on Google). This external feed will make your feed more browser friendly. However, there is a big disadvantage. Apparently, when you set up Feedburner in Live Writer, it is actually causing people to subscribe to Feedburner not your blog. So if Feedburner goes away one day (which I am hearing noises that it may because Google isn’t treating them right). RSS readers are the biggest asset for your blog, so it is important where they are subscribing. The problem right now, is that they are subscribing to Feedburner, so if Feedburner goes away, I will lose my subscribers. This is making me consider buying a domain, so i can then have my subscription URL be feeds.asli.com versus feeds.feedburner.com. apparently Feedburner has a feature that supports this, called Vanity URLs.
- Go to your blog and select the RSS syndication option. This will give you your RSS URL, copy it into the clipboard.
- Sign into Feedburner and claim your feed by pasting it into the form. This will in turn give you a Feedburner URL.
- In the Control Panel for your blog, select Syndication Settings under Global Settings. Drop the Feedburner feed URL into the area where it asks for External Feed URL. For the MSDN blog the set up looks like this:
- For those of you with a domain, you will want to set up Vanity URLs to point to your domain, not the feedburner domain. You’ll need to create a DNS CNAME entry on your hoster (in my case webhost4life). In the DNS settings, create a CNAME record to point feeds.yourdomain.com to ghs.google.com. That way, once I move off google, I don’t have to worry about losing my subscribers at feeds.slingalibi.com. Give it a few hours to propagate the changes across the Interweb.
- Once you have the CNAME redirect set up, in Feedburner, under My Account, select My Brand and modify the settings to point to your new feed URL (thanks to Tim for helping me with this). At the end, I now have this feed to publicize with my subscribers: http://feeds.slingalibi.com/slingalibi
- Take that your RSS feed URL and drop it into Outlook as well. It is important to test what your blog looks like as a feed in the common clients that people will be accessing your content.
- If you are using Feedburner, there are some optimizations you can set up…
- You have an option for tracking clickthroughs. This will route your clicks through Feedburner. Using bit.ly tracks that for me, so I chose not to enable this.
- It is a good idea to opt in for more stats – such as Reach(how many people take action on the stuff you recommend) and individual views.
- Next you’ll want to activate a bunch of services. Most are turned off by default.
- Optimize your feed with SmartFeed.
- You can then add some interesting features – such as a Headline Animator which is a circulating banner of your latest posts.
- If you are migrating from one blog engine (MSDN) to another, like I did, you may want to create a Chicklet to publicize the new location and make it easy for users to subscribe to the new feed. You’ll see the chicklet at the top of this post.
- Then you can set up publicize settings – such as PingShot, Email Subscriptions, FeedCount.
Hook up to WorldMaps
- Link your blog up to http://www.myworldmaps.net (disclaimer, Brian is my teammate).
- You will need to register and wait approval. At this time, only personal blogs are supported. No commercial sites.
- Once you are logged in you will need to create a map. Be sure to have your local lat & longitude numbers ready but fortunately WorldMap is clever enough to look it up for you based on your IP Address. It was accurate for mine, even when browsing through IE8’s new In-Private feature - (I was curious if it shielded your IP too).
- Once you get a map, you will get an ID that you can use to toss the map onto a web page, like so:
- Then you can watch people stumble onto your blog. His app gives you real time stats: http://www.myworldmaps.net/sl/WorldmapsStumbler.aspx).
I opted for LiveWriter as my content publisher. It works like a charm.
It’s a good idea to change the path of livewriter drafts in registry to to a location that you back up. Or you could use LiveMesh to back up your drafts. By default, your drafts will be stored in the My Documents folder, which I never use or back up. I like to keep everything in one folder and store everything in something like c:\data. I dug into the registry and pointed the draft folder to my centralized location instead.
You have the option to set a publishing schedule in LiveWriter– lower right hand corner –However this doesn’t automatically post to the server until you hit publish., it just dates your post with that date that you said. For now I am posting manually.
There is tons of plug-ins for LiveWriter and they are easy to install. I added the code snippet add in to live writer to highlight my code nicely.
Search Engine Optimization (SEO)
Connect to delicious – sign in – drop in tags into your blog
Social Networking Optimization (SNO)
- Set up an account on FriendFeed. Link your blog, twitter, Facebook together. The Facebook Add-In will automatically pull in any friends you have on Facebook. Keep in mind, FriendFeed will notify your friends that you added them. I only realized they were notified when I got some thank you mails.
Going Indie! Buying a domain
- So only a week after launching on MSDN, I have decided to republish the content on another domain. For several reasons (1) to get the content off a MSDN owned side (2) for ease of management purposes (3) for new features, such as Facebook connect, that the current (old) version of Community Server on MDSN doesn’t provide (4) to maintain my readership should I ever leave the company (which i am definitely not planning to do) or if something happens to MSDN blogs. (5) my own branding: In the words of my colleague, Tim “. So I am now going to walk through the process of moving from MSDN onto my own indie site. It’s early enough in the life of my blog as my subscribers are only at 15, with 6 reach (number of actions taken on my site – clickthroughs off my blog), so hopefully it will be relatively painless to migrate :
- Although GoDaddy isn’t necessarily family friendly and it is littered with upselling ads, apparently it is the domain provider of value and choice amongst my colleagues. I did a search on an anagram of my name on WHOIS and found it available. Also, apparently GoDaddy supports DNS redirection so you can move your hoster around. Using a promotion code given to me by my colleague (thanks Tim!), I was able to get 10 years down from $106 to $76:
- Now I had to set up the hoster. From what I heard from my fellow DPE colleague Brian, webhost4life was the best provider if I wanted to own an entire, site and database. I opted for the middle package because it gives you SQL Server & ASP.NET in case I want to add custom pages and projects to my site one day. It takes a few hours for them to set up your account. Once it is complete, you will receive an email. It took me 3 days, or 1 full business day to receive the mail.
- Next, the DNS routing needs to be setup. Your hoster will send you the DNS servers to use. These need to be plugged into GoDaddy settings. Choose the Manage option from the site, Advanced Details. Then edit the nameservers to match the ones given to you by your provider.
Setting up a custom blog engine
- Now i have to set up my blog engine. The screencasts from the development team were extremely helpful when setting this up. I pulled down and unzipped blogegine.net (WordPress is another option, and it does run on our servers, but I opted to try the Codeplex .NET application instead to see if had plug-in support for Facebook connect and whatnot. May decide to switch to WordPress).
- Once i have the installation files (which come in the form of a website, i needed to move those to my hoster). Brian recommended the opensource tool FileZilla to FTP the files over.
- Important note: In it’s current form, BlogEngine.NET will not work in integrated mode with IIS. Your host needs to use the legacy classic mode, unless you take some steps to migrate your code to resolve breaking changes.
- You will have to do a few things before copying the file over. First, you’ll need to right click on the top level folder (in my case BlogEngine) and modify the attributes so that they are not read only. You can do that by right-clicking on the folder and unchecking the greyed out Read Only checkboxbox.
- Change the robots.txt folder to point to the proper location for your site map so that the crawlers can find the sitemap: I modified the robots.txt file, uncommenting the entry with: sitemap: http://blogs.slingalibi.com/sitemap.axd
- I decided to use a database to store my blog content, rather than using XML file. This meant that, I had to modify the web.config file to point to a SQL Server database, versus XML files as the backend for my blog content.
- After copying the files over, you will need to configure the engine. I set the top level (BlogEngine) folder to be a .NET Application. You can do that straight from the webhost control panel.
- Next I set Full permissions for ASPNET, NETWORK SERVICE or IUSR_MACHINENAME (depends on your impersonation settings) on the App_Data folder through the control panel, Security, File Permissions.
- I mapped blogs.slingalibi.com to point to my blogengine site. I did this through the control panel, domains, and mapped a subdomain to point to the BlogEngine folder.
- Then go to the site, login with the Admin as user name & password. Change it as soon as you are in.
- Add a user for yourself, so you can show postings under your proper name.
- Set up your blogroll to point to fellow teammates and bloggers.
- You’ll want to avoid comment spam (more on this below), by checking off the box for Moderate comments, under settings.
- It is also nice to enable avatars for your users by choosing the option for MonsterID, Wavatar, Identicon.
- By default, BlogEngine.NET does not have trackback moderation, but you can turn that on with a bit of code.
Managing comments – aka. Gibberish
Understanding comments was simple at first. But then I got some cryptic scripts – I am not sure if these are trackbacks or what. Apparently users will inject references to their own sites and material in your comments & trackbacks to boost their SEO ratings.
Find a place to dump your code
MSDN is the best bet for my role. In order to set this up, I had to first create a user ID on code.MSDN.com by signing in with my Live ID.
I then set up a user name which mapped to my Live ID.
From there, you can create a resource page and serve as coordinator. You’ll need to configure the settings on the resource page to point to appropriate news feeds and hyperlinks, etc. By default it will look a little like this:
Channel 9 Content Management Process
Channel9 is a perfect place to post video. Usually this is used mainly by Microsoft employees.
- Sign up for a Channel9 account, and determine which show is the most appropriate one to publish your video into.
- Follow the publishing process.