Sling Alibi | Diary of a Microsoft blog – the early days. A true story. Happening in real time.
Bing

Diary of a Microsoft blog – the early days. A true story. Happening in real time.

by asli 27. August 2009 17:28

LIVING WIKI: This means that this blog post will get updated frequently with more content. Currently , this post is being  broken up into separate posts under Blogging 101 category for easier readability.  All the sub-posts will be linked to from this main stub article.

Last Modified: 10/16/2009

This the original stub article in a series giving you the behind the scenes story of setting up a .NET and SQL Server hosted application platform that runs on Windows 2008, IIS7.  The series will cover how to set up a blog engine, RSS feeds, optimize them and give you best practices on writing Search Engine Optimized content. The series will also cover tips on how to publicize the content with a Social Networking Optimization strategy.  This is a living series, happening in real time.  Each post will be updated as the story develops, so be sure to check the last modified date listed at the top of each post.  Please post any questions in the comments, as they will be answered directly through the updated content.  The goal of the series is to help both novice and intermediate developer go independent with their own customized blogging and development platform. 

For information on the entire series, please refer to the this original post which links to all the sub-posts in the entire series. Or, better yet, subscribe to the actual feed: RSS feed for Blogging 101 - Behind the Scenes at SlingAlibi Blogging 101 - Behind the Scenes at SlingAlibi (1)

 

Diary of a Microsoft blog – the early days. A true story. Happening in real time.

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. 

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.

BASIC CHECK LIST

  1. Install Live Writer or an equivalent blog writing tool. Do not use MS Word because adds a lot of heavy markup to your blog.
  2. 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 Windows Live Writer.
  3. Install IE8, Firefox, Safari and Chrome. Test to see the differences in each browser. For example, WMV files display much larger in Firefox & Safari, and will autostart even when you set it not to. Read more on the ongoing evaluation
  4. On your site, once you sign in you will see a link that enables you to Enter My Dashboard (Community Server) or Control Panel (for BlogEngine.NET). You’ll want to setup a few settings such as:
    1. 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. On my MSDN blog, I am using: simple – blue right sidebar.Theme for blog
    2. For BlogEngine.NET, you can select a theme through the Settings panel.
  5. 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.

CORE SETUP INSTRUCTIONS

Setting up RSS Syndication

  1. 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.
  2. Go to your blog and select the RSS syndication option. This will give you your RSS URL, copy it into the clipboard.  burn your feed 
  3. Sign into Feedburner and claim your feed by pasting it into the form. This will in turn give you a Feedburner URL. 
  4. 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:syndication settings
  5. 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.
  6. 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). cname redirection with hosting  At the end, I now have this feed to publicize with my subscribers: http://feeds.slingalibi.com/slingalibi
  7. 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.

RSS Optimization

  1. If you are using Feedburner, there are some optimizations you can set up…
    1. 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.
    2. 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.
    3. Next you’ll want to activate a bunch of services. Most are turned off by default.
    4. Optimize your feed with SmartFeed.
    5. You can then add some interesting features – such as a Headline Animator which is a circulating banner of your latest posts.
    6. Then you can set up publicize settings – such as PingShot, Email Subscriptions, FeedCount.
  2. BlogEngine.NET enables categories to become feeds. For example, I have a category for ASP.NET tips. I could also track this feed independently too to see how popular it is versus other “columns” (I think of categories as columns in a magazine. I created a redirect on my hoster from feeds.slingalibi.com/asp to the category feed for ASP.NET Tips, again to add a layer of abstraction between myself and Feedburner when I migrate. You can do the same for the other category feeds.
  3. Search engines love feeds.  Feeds give search engines an easy way to know when you’ve updated content with ping services:image

Going Indie! Buying a domain

So only a week after launching on MSDN, I have decided to republish the content on another domain...>>>This section has been broken out into a separate post that describes how to purchase a domain and set up your web hosting platform.

Setting up a custom blog engine

  1. 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). 
  2. You can pull BlogEngine.NET directly from their site, or (even bettter) pull down the free Web PI (which provides tons of free tools – more on this later), and select BlogEngine.NET in the install options under Web Applicaitons, Blogs: download WebPI
  3. 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.
  4. 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.
  5. 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.
  6. 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://blog.slingalibi.com/sitemap.axd
  7. 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.
  8. 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.
  9. 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.
  10. I mapped blog.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.
  11. Then go to the site, login with the Admin as user name & password. Change it as soon as you are in.
  12. Add a user for yourself, so you can show postings under your proper name.
  13. Set up your blogroll to point to fellow teammates and bloggers.
  14. You’ll want to avoid comment spam (more on this below), by checking off the box for Moderate comments, under settings.
  15. It is also nice to enable avatars for your users by choosing the option for MonsterID, Wavatar, Identicon.
  16. By default, BlogEngine.NET does not have trackback moderation, but you can turn that on with a bit of code. (more on that later).

    Posting Content (with Windows LiveWriter - WLW)

    1. I opted for windows LiveWriter as my content publisher. It works like a charm.

    2. Ideally, WLW would let you change the path of WLW 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.  The setting is neither configurable through Tools Options, .config file, or registry. So LiveMesh is your best option for backup or transfer between multiple machines. Just install Mesh and right click on the Draft folder %MYDOCS%\Microsoft\Windows Live\Writer\Preferences\PostEditor\Drafts and sync it with Mesh.

    3. 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 indicate the moment you hit Publish. The only reason I would use this feature is to back-date a post.

    4. There are 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, which you can see here.

    5. It’s always a great idea to have an About Page. I use the Page feature of BlogEngine.NET to create the About page. I then created a subdomain about.slingalibi.com that points to my root folder, BlogEngine. From there I set IIS to redirect that page to the URL for my About page. (If you are planning on doing this step, you should read up on some of the ASP.NET 4.0 enhancements around 301 and 302 redirection).

BONUS STUFF

      Hook up to WorldMaps

      1. Link your blog up to  http://www.myworldmaps.net (disclaimer, Brian is my teammate).
      2. You will need to register and wait approval. At this time, only personal blogs are supported. No commercial sites.
      3. 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).
      4. Once you get a map, you will get an ID that you can use to toss the map onto a web page, like so:
      5. Then you can watch people stumble onto your blog. His app gives you real time stats: http://www.myworldmaps.net/sl/WorldmapsStumbler.aspx

       

    Search Engine Optimization (SEO)

    There are many Search Engine Optimization tips on how to optimize your site for better page ranking and relevancy, and are listed in an overgrowing post.

    Social Networking Optimization (SNO)

    There are many Social Networking Optimizations (SNO) tips on how to maximize the visibility and exposure of your website content, and can be found beyond the jump.

    Set up Email Subscriptions

    1. If you are using Feedburner, you can readily set up email subscriptions. Be sure to set up an email account on your hoster that you’d like to use for subscription management.  For example, SlingAlibi uses subscripitions (at) slingalibi (dot) com.
    2. Then you can add special script to a page to enable your users to submit their email address to sign up.

    Managing comments – aka. Gibberish

    1. 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.  managing comments
    2. This is a good time to start understanding avatars.  There are multiple avatar programs that enable you to carry a picture of you from place to place. One of the more popular ones is Gravatar, and that’s what I am using on this site for the time being UNODIR.

      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.

      working with MSDN 

      I then set up a user name which mapped to my Live ID.

      MSDN User Name

      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:

      Ch9 resource page

      Channel 9 Content Management Process

      Channel9 is a perfect place to post video. Usually this is used mainly by Microsoft employees.

      1. Sign up for a Channel9 account, and determine which show is the most appropriate one to publish your video into.
      2. Follow the publishing process.

    Protect your work

    1. With some exception, Microsoft does have some ownership of the work I write under the employment, although that doesn’t mean my opinions represent the view of the company, they don’t.
    2. If you don’t mind distribution of your work, you can apply for a Creative Commons license to set the restrictions on how you wish your work to be distributed. This is not the same thing as a copyright. The LOAB (see link below) has much more information on how this all works. You could for example allow distribution of your content, but not copying or modification of my work. Within within minutes you can have a license set up. All you have to do is your footers to include details about this license using the HTML script that is provided for you after obtaining your license. 

    3. Create a copyright page with information on on how your work should be used and how you plan to handle violation.s
    4. Protect your RSS feeds from being reproduced elsewhere, often with the addition of ads for products and services you may not support.  With BlogEngine.NET, the best way to do this would be to override the WriteRssFeed method in the SyndicationGenerator.cs with some hard code, or to add a parameter that takes in some copyright value. (More on this later).
    5. Protect your images. Fortunately Live Writer has the ability to watermark your images. It’s simple enough to do.  Here’s an image before the watermark was applied:
      image Simply click on the image, and from the right hand panel, choose the Advanced tab.  Under Actions, select Watermark and the text that you wish to add along with the Copyright symbol.
      image  The After Image is subtle, but definitely instantly identifiable as protected material:
      image

    Useful references for those of you new to building an online presence

     

    Tags:

    Blogging 101 - Behind the Scenes at SlingAlibi

    Comments

    Add comment


    IMPORTANT NOTE: Comments not directly related to the content in the blog entries on my site are charged a $100 fee per advertisement/comment if submitted to this site.


    (Will show your Gravatar icon)

      Country flag

    biuquote
    • Comment
    • Preview
    Loading



    Based on BlogEngine.NET 1.5.0.7
    Theme by Mads Kristensen

    © 2010 | SlingAlibi | Content Copyright | Comment Policy | Privacy Policy

    Calendar

    <<  July 2010  >>
    MoTuWeThFrSaSu
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    View posts in large calendar

    RecentComments

    Comment RSS

    Blogroll

    Download OPML file OPML

    Most comments