Welcome

You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

Moved Domain to New Hosting Company

Posted by Keith Elder | Posted in Blog Updates | Posted on 05-03-2008

3

For several years I have been hosting this .Net based web site with WebHost4Life.  The past several months the traffic on the site has gone up to the point to I started noticing long wait times, slow load times, and timeouts.  The final straw was when I sent a link to someone and they told me the site wasn’t loading.  It was time to move.

WebHost4Life has served me well over the years and they have a great control panel.  They work on volume so stacking a lot of domains onto a server is what they do and how they make their money.   I did a check using http://www.yougetsignal.com and found out they were running about 250 domains on the single IP address I was on.  And that didn’t even probably account for other domains on the machine.  As long as there is enough hardware on the machine honestly 250 domains shouldn’t stretch a server.  I think the slowness on their side was their SQL Server setup.  

The other day on Twitter a conversation started around hosting.  Several of us organized and started researching hosting companies to see if we could get our own Virtual Machines by sharing one server.  The results of that investigation was the cost to do this right now is still expensive.  For the record we were looking at a full blown Virtual Machines not a VPS type of setup.  After researching the options I came to the conclusion it was just going to be too expensive. 

Jason Follas reminded me that http://www.Orcsweb.Com provided free hosting for MVPs, a $149.00 / month value.  After looking at their services, reading rave reviews and monitoring their network speeds over the weekend the decision became clear. 

On Sunday I requested my free account from OrcsWeb.  Steve was handling the setup and really nice via email.  Once the account was created I setup DNS on the new server.  After DNS was configured I went to the registrar and flipped the DNS on the domain to point to OrcsWeb.  DNS started to propagate pretty quickly but I waited a day for DNS to fully propagate throughout the Internet.  This gave me time to transfer all of my files and database the new server.  This is the hardest part of switching domains and is the one that keeps many people planted where they are at.

By the time I got done moving the files and database I was ready to pull the trigger officially.  I went back into the OrcsWeb control panel and changed the keithelder.net A record to point to the new server.  The migration was complete.  The best part is there was no downtime.  Either you were hitting the site on the old server or the new server.   

I’m really happy with the load times now, things are so much faster and I have a lot more bandwidth.  And best of all, it is free.  Thanks OrcsWeb!

How To Add Feedburner FeedFlare to Your SubText Blog

Posted by Keith Elder | Posted in .Net, Blog Updates, Programming | Posted on 07-01-2007

13

I started using FeedBurner.Com to power the RSS feeds for my blog and I am quite happy in doing so.  I like the stats they provide and the guidance they provide on various tweaks to the feed without having to re-code anything.  One of the items I added to the RSS feed and to the site is FeedFlare.  FeedFlare places a simple footer at the bottom of each entry which allows people to distribute the entry to other sites or to inform other users of an entry.

Step 1:  Configure your FeedBurner account for your blog

This may seem pretty obvious, but at the risk of someone being confused in order to do this, you have to create a FeedBurner account.  The cost is free.  Once you create an account and link up your feed which points to your real RSS feed on your site, configure it.   Select your blog via the control panel and click on the Optimize tab.  In the left menu select “FeedFlare” and configure the options you want.

There are two options:  Feed and Site.  By placing a check in one column or another will determine where the FeedFlare shows up.    By choosing the “Feed” option, it will place the particular flare chosen at the bottom of your feed as seen here from RSS Bandit.

Choosing the “Site” option will display the chosen flares in your web site next to each item as seen here:

Step 2:  Add any custom flares to FeedBurner

Once you are done configuring which built-in flare options you may want to add other flares.  In the FeedBurner FeedFlare section there is documentation on how to add additional flare items so I will not cover it in detail but I will give you a quick sample on how to add a flare for http://www.dotnetkicks.com.  Essentially you create an XML file which is uploaded to a web server.  Here is the XML to add the flare as seen above for Kick It!

    1 <FeedFlareUnit>

    2     <Catalog>

    3         <Title>Kick It!</Title>

    4         <Description>Submit this post to DotNetKicks.Com</Description>

    5     </Catalog>

    6     <FeedFlare>

    7         <Text>Kick It!</Text>

    8         <Link href=”http://www.dotnetkicks.com/submit/?url=${link}”/>

    9     </FeedFlare>

   10 </FeedFlareUnit>

If you would like to use this particular one it is available here:  http://keithelder.net/feedflare/KickIt.xml

Step 3:  Modify SubText.Web.Skins.YourSkinName.Controls.Day.ascx control

I did some searching and couldn’t find any examples on where to place the script needed to insert the feed flare under each entry.  I had to dig into the code a bit to find which variable was needed to get access to the URL of each entry from within the template.  And I had to find the template.

The control we are going to modify is the Day.ascx control which is located in the Skins/YourSkinName/Controls directory.  The variable that we need to place in our user control is “FullQualifiedUrl”.  Since each item on the home page is printed using a Repeater we have to use the DataBinder.Eval to get each item’s FullyQualifiedUrl property.  Here is the sample code you need to place in your Day.ascx user control.  Don’t forget to modify the one associated with your skin and replace the word “yourname” with your appropriate FeedBurner name.

            <div>

                <script src=”http://feeds.feedburner.com/~s/yourname?i=<%# DataBinder.Eval(Container.DataItem, “FullyQualifiedUrl”) %> type=”text/javascript” charset=”utf-8″></script>

            </div>

Once you have this placed in your template where you want it, upload your newly modified template to your web site overwriting the existing one.  You only need to copy this one file.  Reload your home page and your new flare should appear. 

Upgrading and merging of blogs to Subtext

Posted by Keith Elder | Posted in Blog Updates, Internet | Posted on 01-01-2007

10

Awhile back I mentioned playing around with SubText and DasBlog, two open source blogging engines written in .Net.  After several weeks of further investigation I decided to migrate to SubText. 

The decision was pretty easy in the end since SubText works with .Net 2.0 and appears to be somewhat architected the way I tend to do stuff.  That coupled with the pretty active email list made the choice easier. There are some features that it doesn’t have that I wish it did.  For the features it doesn’t have I hope to be able to contribute them to the project.

Before today I had two main blogs:

blog.zorka.com and a .Net blog

Both of these are now combined into one blog on http://keithelder.net/blog/.  It took a lot of hard work to get everything merged into one blog and I thought I would outline the process of how things went since I had to migrate a WordPress and a Community Server blog to SubText. 

Migrating WordPress to SubText

WordPress is written in PHP and I have been using it for a long time on my original blog at zorka.com.  My information went all the way back to 2000 before blogging was even blogging so needless to say I didn’t want to loose it.  I had a couple of options that I could go with when I ported the data:

  1. Write some custom PHP code to get the data into a format I could import.
  2. BlogML export.  WordPress doesn’t support BlogML at this time so even though I investigated it, I couldn’t find anything. 
  3. Export the data from PHPMyAdmin (mysql database web interface) in some format and then process it into SubText.
  4. Write an SSIS package.

BlogConversionIn the end I chose option 3 and 4.  PHPMyAdmin allows you to export data in CSV, XML, Excel etc.  The one that worked the best for me was the Excel format since SSIS has a built in Excel reader.  Instead of writing custom code in .Net, I decided to take this opportunity to leverage SSIS (SQL Sever Integration Services) to assist with the import.  After creating a new solution I was able to quickly throw together a Data Flow to take the Excel file which held the blog posts and import it into the SubText database.  There were some conversions that needed to be done since SubText has some columns that are required in order to work but in the end nothing that was terribly hard.  Looking at some sample articles SubText required 4 additional columns that WordPress didn’t provide so I derived those from global variables after data was converted and verified that I had written the blog post.

Once I got the initial posts imported I had a little bit of clean up to do on some posts because of the way PHP handles characters as well as escapes a lot of quotes.  In the end it was easier to search and replace the exported file and replace the characters before the SSIS package ran. 

Migrating Community Server to SubText

 Once WordPress data was imported I had to get the Community Server data imported.  Once again I had four choices and initially tried doing a BlogML export.  While Community Server supports BlogML imports and exports via a plugin, the plugin bombed while exporting data for me.  I think there was some malformed XML or something in one of my posts that caused it to fail.  I couldn’t really tell so I stopped going down the BlogML route and wrote another SSIS package to extract the data. 

BlogML Makes It Easier

For those that aren’t familiar, BlogML is a new format that allows you to easily migrate your blog data from one to another.  Several of the major blogs support it that are written in .Net and a lot of us are hoping it catches on in other platforms.  With all the data from both blogs loaded into the database locally, I copied the SubText files to the server and did a new installation.  Once SubText was running on the server I did an export into BlogML and then imported it into the server.  Within minutes all of my blog data was on the server.  BlogML is really nice when it works and I hope more blog engines start to adopt the format.  It saved me from having to backup and restore the database onto the server, definitely much easier.

In the end of the conversion I lost my comments from both blogs.  I just didn’t feel like saving them for whatever reason.  Hopefully those of you that commented will re-comment.  The conversion is complete and I updated my RSS feed to point to FeedBurner as well.  If nothing else, if I have to move things around again, you won’t have to change your readers. 

I hope you enjoy everything being in one place finally.  I know I do.

New Blog Shortcut and LANUG Presentation

Posted by Keith Elder | Posted in Blog Updates, Presentations, Speaking | Posted on 30-08-2006

0

Somehow I forgot that I purchased a domain awhile ago.  How crazy is that?  I must have been cough, cough, really tired the night I purchased it 🙂  I went online today to renew some domains and saw a domain in the list that I had that I didn’t remember I owned and that was keithelder.net. So, to make it easy on myself when someone asks for my blog I setup a redirect on the domain to point to this blog.  So if you want to remember how to link to my blog (and in case it changes in the future) just link to http://www.keithelder.net.

I may set the domain up and do something else with it, not sure yet, still thinking and weighing options.  I think I may do the first ClickOnce deployed Blog, haha!

Presentation at LANUG
I wanted to give a special thanks to Doug and Matthew for having me down to speak at  LANUG tonight.  They’ve got a great group going there. If you are in the Mobile area and want to hang out with some truly southern warm and friendly people to discuss .Net you should check them out.  Everyone was over the top nice and not once did I get a tomato hurled at me during the presentation (a first!).  I had a blast and hope to come back next year and discuss some more enterprise patterns and practices.

[Update 1/1/2007]
All of my blogs have been relocated to http://keithelder.net/blog/ so you need to update your RSS feeds from http://blog.zorka.com and http://dotnetpimps.net/blogs/theelder/default.aspx

Downed trees and a revived blog

Posted by Keith Elder | Posted in Blog Updates | Posted on 23-02-2006

0

I talked to a couple of friends this past week that I haven’t talked to in awhile and they were like, how come you haven’t updated your blog? The reason is I have been EXTREMELY busy. If I have any free time where I don’t want to look at a computer I am outside working in the yard trying to clean up our wooded area which was wrecked by the huricane. Honestly I need about $5,000.00 to hire a tree removal company to come in and clean the woods up. Trees are down everywhere and while I am skilled with a chainsaw, I am only one man. Along with my normal work load, I recently started a side project for the Clevland Cavaliers basketball team so that is eating up any extra free time I have. The Cavs project is fun so I really don’t mind. Since I have been doing so much .Net coding, I revived the .Net Pimps web site by setting up Community Server on it. Several co-workers and myself will be posting our .Net goodness there. I have just way to much technical info I need to share and I am sure my friends don’t really care to read it on this blog. If you want to keep up on my .Net blog go here. And no I didn’t worry back porting the old content, I just started it over.

[Update 1.1.2007]

This post is no longer valid about donetpimps, all content has been moved to this blog and merged.