For the last 4 years or so, I’ve been hosting my blog/site using Orchard CMS. Orchard has been a pretty good platform. It offers a great deal of customization and extensibility points, and for .NET developers it can be a nice place to start for building an application. Unfortunately, whether because of my own customizations or some other reason, I ended up stuck on an older version of Orchard, and despite many hours of trying, could not get the site updated to a newer version. So I decided to move the site to the WordPress platform. Continue reading Migrating from Orchard CMS to WordPress using Windows Live Writer
Short version…some extra traffic crashed my blog last week, thanks to my decision to use cheap shared hosting. In response, I moved my blog to Windows Azure Web Sites, where I can easily scale to meet any traffic spikes. Read on for the background, or skip to “Making the Move” for the technical details.
Cheap hosting. It lures you in with the siren song of saving lots of money. And for a while, perhaps even a long while, it may give you everything you need. But sooner or later, you find out that you get what you pay for.
Wanted to share a few posts from my fellow Microsoft Technical evangelists here in East Region, hopefully you’ll find them as interesting and useful as I did:
- New Digs, Windows Azure and Orchard – Michael Cummings talks about the reasons he chose Windows Azure and Orchard CMS for his new blog. Given that I run my blog on Orchard (and just moved to Windows Azure), I thought it was interesting to compare his reasons to mine. Also interested to hear more about his idea for a Bing search module.
- From Steve Maier comes The Puppy Eat, a somewhat sick and twisted casual game for Windows 8, but quite well-executed, and fun, if you don’t take it too seriously.
- Jim O’Neil has a good post on using Fiddler to test an APIMASH app. Of course, the technique can be used on any Windows Store app you happen to be developing.
- Jesse Freeman is starting a new event series for game developers looking for focused coding time, called Game Developer Studio Time. If you’re in the NYC area, you should definitely check it out!
- Maria Naggaga reminds us that Unity is offering $100,000 in prizes, including a $30,000 grand prize, for the best apps and games built with Unity 3d, and as a bonus, she’s got a dancing elephant!
- Planning to attend Visual Studio LIVE! this fall in Orlando? Be sure to catch Dave Isbitski’s talks on Windows Phone and Windows Azure.
- Want to get a better handle on building a site or app on Windows Azure, and keep costs in line? Check out part 2 of Brian Hitney‘s “Building for Cost” series. Part 1 is available here.
- Joe Healy, aka DevFish, is looking for Florida devs who’ve published Windows Phone or Windows Store apps. Hit him up on his MSDN blog for more.
- Want to learn how to build games with Construct 2? Diego Lizarazo Rivera has a 5-part series that shows you how (link is to part 5, which has links to the rest).
- If you’re looking for info on Virtualization, Hybrid Cloud, or SharePoint, or if you’re an IT pro focused group in Mid-Atlantic looking for a good speaker, you should check out my IT evangelist peer Yung Chou.
- Do you already know VMWare, but want to learn more about using Hyper-V? Tommy Patterson shares a webcast you might be interested in.
That’s all I’ve got for today…I’ll post more links from my peers in future roundups. Let me know if you find these valuable!
The Other Shoe…
OK, so I mentioned a few days ago that I updated my blog theme, and as a part of the process of revamping the blog, I also thought it might be a good time to add some better analytics, since the analytics suite used by default at my web host (who shall remain nameless, despite my temptation to call them out publicly) had started throwing 502 errors pretty much all the time.
I decided on the Piwik analytics platform, which was suggested by one of my peers. The good news is that Piwik is pretty straightforward to install, and despite my lack of familiarity with PHP and MySQL (ASP.NET is more my speed, given that I’ve written a few books about it), I was able to get it up and running reasonably quickly.
As I mentioned on Saturday, I just updated my blog theme to something a bit more clean and modern. In addition to just wanting something that looked good, one of the features that factored into my choosing the Wise Words theme for Orchard was its support for responsive web design, leveraging Twitter bootstrap and bootstrap responsive to automatically reformat content and resize elements depending on the available screen real estate.
Seemed like it was about time, so I’ve finally gotten around to doing a little housecleaning on the blog, and installed a new theme for Orchard, called Wise Words, by Shovel & Rake. I’ve done a fair amount of tweaking to the theme to get it the way I wanted it, and while I was at it, I’ve cleared away a few of the less important sidebar items.
While I was at it, I took Scott Hanselman‘s advice and did a run-through of all the PNGs on my site (after downloading the code and assets locally), and ran them all through PNGOut via powershell. A few of the largest images, I pulled into Paint.NET and saved in 8-bit format, which makes a HUGE difference in filesize, and with reasonable dithering levels, didn’t make that big a difference in quality.
So hopefully, things will be a little easier to read, and to find, and with luck the site will load a little faster, too. And since the new theme is designed to be responsive, it should hopefully also be more friendly for mobile device users.
I’ve still got a few things to tweak here and there. For example, the code samples in my posts came out a little wonky with the new theme. But I’ve updated most of the images and videos that were hanging over past the sidebar, and tweaked other issues that I ran across.
If you see something that’s clearly not right, please drop me a note and let me know, or simply post a comment here.
UPDATE: I was informed by Sebastien Ros from the Orchard team that some of the code below exposed an Cross-site Scripting (XSS) vulnerability by writing out the raw value of t.TagName to the markup to be rendered by the alternate template. I’ve updated the listings (and my blog) with some code/markup suggested by Sebastien that both simplifies the code and takes advantage of Razor’s built-in HTML encoding when using the @ block syntax. While the risk of an XSS attack on the tags is relatively small, it’s always a good idea to apply HTML encoding to your strings before rendering them. My thanks to Sebastien for catching that.
One of the first things folks typically want to do after they install Orchard CMS is start customizing the look and feel of their site or blog. The easiest way to do this, of course, is to install one of the themes available from the Orchard Gallery. One theme in particular, The Theme Machine, is designed to facilitate customization, and in fact there’s a whole section of the Orchard documentation devoted to the subject of customization based on The Theme Machine. There are also customizable themes that you can purchase from the folks at http://bind.pt/ (my theme is a custom version of one of theirs).
When publishing a blog with Orchard CMS, the blog module includes default RSS feeds for the items as well as for comments. One limitation of the default implementation is that the feeds only show up when you navigate to the main blog page, or to a post within the blog. Other pages in your site will not make the feed url(s) available.
During the process of creating a new Orchard CMS-based blog, I wanted to future-proof my RSS feed. Most blogs have RSS feeds that are effectively hard-coded to the domain/url of the blog, meaning that if you ever need to move your blog to a different domain/url (which I’m now doing), you end up breaking your feed for current subscribers.
The only real solution for this today is to use Feedburner, which effectively abstracts the URL for your feed from the actual URL your blog uses to access the feed. Subscribers use the feedburner version of the URL (in my case, a custom domain version, http://feeds.devhammer.net/devhammer) instead of the direct URL, and feedburner provides the mapping to the actual location of the feed. This also enables feedburner to provide stats on subscribers, click-through, etc. (assuming you’re comfortable with providing that information to a third party, Google, that now owns feedburner…whether that trade-off is worth it is up to you). Continue reading Troubleshooting a Failed Orchard Module Install