Studio711.com – Ben Martens

Site News

13 Years of Blogging

13poolI’ve been doing this for so long that this one almost slipped by me. Thirteen years of daily blogging! I’ll keep this one short and just say thank you. Thanks for coming here and listening to me babble. Writing is therapeutic and has improved (I hope) my communication skill, but if nobody was reading, I probably would have quit a long time ago. I hope that every once in a while you get a smile, a chuckle or a new tidbit of knowledge from this site.

WordPress Review

wordpresscirclelogoA little over a month after moving to WordPress, I’m giving it a resounding two thumbs up. This is a huge upgrade over my ancient fork of the Community Server codebase. Here are a few things that I really enjoy:

  • Themes are easy to search, install and tryout. There are a huge number of people actively designing themes so it was easy to find one that provided the features I wanted, including a good experience on mobile devices.
  • Updates show up as notifications in the admin page. Click the button an voila, you just upgraded WordPress.
  • The database backend runs MySQL which was new for me, but it’s been a good experience to learn. My favorite part of it is that the database schema is so simple. There are only a dozen or so tables and you can understand most of it by just looking at the table and field names.
  • There are an enormous number of plugins available, and like the themes, they are easy to search and install. I have plugins for things like Google Analytics, Microsoft Application Insights, Instagram, Twitter, Akismet comment spam blocking, and a sitemap generator for the Google and Bing indexer robots. Updating these plugins is just a simple click.
  • One of the best plugins I’m using gives me a calendar view of my posts. You know by now that I write posts out in advance and schedule them to come out one per day around the middle of the night. Seeing the calendar view is an easy way to make sure that I haven’t missed a day, and it’s easy to swap posts around if I want to reorder them.

The list goes on an on but I’m very happy with this. My recommendation of WordPress for your website is pretty pointless. They’ve been around for 11 years. 60 million websites use them including more than 20% of the top 10 million websites. I’m really late to the game, but I’m glad I’m joining the game.

Blocking Traffic To Azure Websites

dosattackThis is a geeky post but I feel the need to give back to the community and help others who might stumble on a similar issue. Regular readers can feel free to skip this. Tomorrow’s post will return to more normal topics.

After moving my website to Azure and switching to WordPress, I noticed that my site was running pretty slowly. It kept getting worse to the point where a lot of users were seeing timeouts and errors. Bumping up the website to run on a bigger machine helped temporarily but the dual core CPU was still pegged at about 85%. For a site that gets a few hundred hits per day, this seemed ridiculous.

I stumbled onto a great Azure feature called DaaS – Diagnostics as a Service for Azure Web Sites. That tool helped me identify that about a few clients were hitting a link that used to serve up data to the CascadeSkier applications. All of the clients should have been updated by the end of last year, and none of them should ever have been requesting that file 1000 times per minute like these were. I don’t know if a few of my apps had gone wacky or if this was something more malicious. Either way, I had to solve it from my end.

Simply hitting a file that doesn’t exist shouldn’t take that much CPU effort to respond to except that WordPress was configured at the root of the site. WordPress did a bunch of checks to determine that the URL was indeed invalid and then served up a fancy 404 page. To mitigate this, I checked in a very simple file that returned a blank page. This took the average CPU usage from 85% down to less than 5%! I was able to drop back down to the smaller single core machine and save money.

When I asked the Azure team about blocking specific IPs, they said that isn’t supported for the Azure Web Site product, but they do support blocking based on the number of concurrent requests and the number of requests in a period of time. I’ve set this up to help protect against potential related issues in the future.

The net result is that my little website is now consuming an appropriate amount of resources and the average time to serve a page has dropped dramatically. If you’ve been visiting the site over the last week, you can probably see the difference.

More Blog Books

This blog has been running every (week)day since July of 2002. Along the way, I’ve been collecting the posts, the moblog/Instagram photos, and the tweets into books which cover one year each. I just finished off the books for 2012-2014 and this is getting to be quite the pile of dead tree. Most of the recent books are around 600 pages each. As I’ve said before, I don’t really think anybody is going to buy their own copy and probably they won’t even be read, but it’s kind of fun for me to have them sitting on my shelf. If I keep this blog up for the next 30 years, this is going to get a bit ridiculous though.

But imagine opening a trunk somewhere and finding a daily journal from one of your great great grandfathers. That would be pretty cool right? Unfortunately my descendants will be a bit disappointed when they read some of the drivel here, but still, there might be something that makes them read a few posts.

Or will books just be a novelty at that point? Would it be better to save these off as PDFs? How on earth would you make sure that a PDF file got handed down to your great great grandchild? How do we even pass this stuff down to our kids? I have 3.2TB of data backed up to CrashPlan right now. Is Elijah really expected to sift through that and find the good parts? I have no good answer to this. Instead, I offer you pictures of my custom dead trees.

book2014 bookshelf2014

Navigating the New Site

old-world-mapThis new website is hopefully pretty easy to get around, but there are a few things that I’d like to point out:

  • Reading on a mobile device? The website is now much more mobile friendly! Just go to studio711.com and you should be able to read everything.
  • If you’re already subscribed via RSS, it SHOULD still work.
  • For the handful of people using the Pocket Ben app on Windows Phone, that may or may not continue to work. I’m not supporting it anymore.
  • You can find my various social media accounts by clicking the little icons in the very top right.
  • Search now works fantastically well! Check it out in the sidebar on the right.
  • Comments will get posted much quicker. Once I approve a comment from you once, future comments should be automatically approved.
  • For some of the photos in the posts, specifically the bigger ones that span the whole width of the post, you’ll be able to click on them and get a bigger view.

Any other questions? Let me know!

New Home

This website has gone through a lot of iterations. This post runs through the history of the site, but basically it started in 1996 but really picked up in 2002 when I started blogging daily. I started by writing my own blog software, but eventually switched to Community Server. It was open source and I heavily modified it. Some time around 2008, Community Server ceased being free/open and became a paid product. I just keep chugging along with the software since it was working fine on my server.

Six years later, it still works fine, but I’ve been itching for a change. GoDaddy is ok but they feel increasingly scheevy. Because I no longer have updated versions of Community Server to play with, I’m stuck on old versions of IIS and SQL. Plus I’m missing out on lots of new features that modern content management systems offer. The biggest reason for a change is that GoDaddy limits me to 250MB in my SQL database. Long ago I hit that with the default setup and have had to clean out nearly everything except my posts (no search index, no statistics, etc.) I’m now on a collision course with an unmovable limit and would have no choice but to start deleting old posts.

So goodbye GoDaddy, hello Windows Azure! Azure is the Microsoft cloud platform. It’s an enormous amount of overkill for running a blog, but using it is a good educational process for my day job. WordPress is the state of the art blogging software these days and getting a WordPress website set up in Azure is less than a 5 minute process. It’s stupid simple. Congrats to the Azure team for a quality product.

Configuring WordPress obviously can take a lot longer because it’s dependent on what you want to accomplish. Over the 18 years of this website and 12 years of blogging, I’ve collected a lot of cruft. For the first time, I cut a bunch of it out and stuck to the core of what I think people use this site for: daily posts. The main change is that there are no more photo or video galleries. I’m also ditching my custom moblog and using Instagram instead. You’ll still be able to see the latest images when you come to my site though.

Surprisingly (to me), I’m still quite happy with my web site design. I kept a lot of the basic ideas in my move to WordPress/Azure but cleaned it up a lot. Mobile was also a key scenario. I used to operate a custom Windows Phone application called Pocket Ben. That will be decommissioned because you can just open my website in your mobile browser of choice and get a pretty good experience.

The second half of the move was all the backend server for CascadeSkier. The server does all the heavy lifting of collecting the various weather sensor information, forecasts and webcams. Then the apps all connect to that cached data for a speedy answer. I rearchitected some of that backend flow and also added a bunch of telemetry to the server pieces and the Windows Phone app. I can now get a much better idea of just how many people are using the app and what they are doing with it. The updates to the apps went out around Thanksgiving and I’ll be shutting down the old server at the end of 2014. If your CascadeSkier app stops working, you’re using an old version. You need to go to http://www.cascadeskier.com for more information.

I’m going to make the switchover on January 1. The main reason for that date is because I’m still doing the blog books and it’s easier for me if the switch doesn’t happen in the middle of a physical book. There might be a little downtime along the way as I change my domain names (or you might continue seeing this old site for a while.) To get a sneak peek at the new site, go to https://studio711.com. That’s a temporary URL until I point studio711.com to the new host. You don’t need to change any bookmarks. Also note that the new site doesn’t have all of the posts yet and is still changing on a pretty regular basis. Feel free to give me feedback.

Enjoy this site while you can. It’s days are numbered. On to bigger and better things! While you won’t notice a huge change as a reader, it’s a giant leap forward for me in terms of server technology and capabilities.

Supporting The Site

This is a personal blog and it’s almost entirely a hobby so it makes sense that I never ask for donations or show banner ads. That being said, it’s not free. I added an Amazon.com link to the right hand side of the page. If you are planning to buy something at Amazon, consider clicking that link to start your browsing session. I’ll get a small portion of the sale for referring you. Thanks!

CascadeSkier Telemetry

As I ponder moving all of my web stuff from GoDaddy to Azure, one of the big pieces is the backend infrastructure for the CascadeSkier line of apps. There is the Windows 7 gadget, Windows 8 modern app, and Windows Phone app, each with slightly different but mostly similar requirements.

Moving the code over is actually pretty simple, and this is a good opportunity to clean up a lot of things. However, one major difference is that GoDaddy gave me free unlimited bandwidth but I’ll have to pay for it on Azure. So how much data was I using from GoDaddy for these apps?

I finally set up a bit of telemetry for my apps on the server side, logging every request that comes in. That gives me a bunch of interesting stats:

  • The most popular resorts that people subscribe to are unsurprisingly Crystal, Stevens and Snoqualmie. Those are the resorts that are closest to the main urban areas.
  • Almost nobody cares about the Oregon resorts that I have in my app. If I was out to make money, targeted advertising in those areas would probably pay off.
  • Only about 30 people are still using the old desktop gadget.
  • While I’ve sold a few thousand copies of these apps, it looks like only about 400-500 of them are in regular use right now. Then again, given that it’s still summer time, maybe that’s more impressive than it looks. I wonder how these numbers will change in the winter?
  • Right now I’m using about 150MB of data per day to service these applications. Azure gives you the first 5GB of traffic for free so that would just fit under the cap. I expect it to increase in the winter but I’m not going to be blowing through terabytes of data or anything like that.

If/when I do move the service over to Azure, I’ll probably take the opportunity to update all the apps and add even more telemetry so I can see which features people are using, etc. My job at work now focuses heavily on our telemetry pipeline so it has me asking lots of questions that I can’t answer about my own application.

Windows Azure

Now that my job at work is 100% focused on running a product in the cloud, I’ve been spending some time at home playing around with Azure (Microsoft’s cloud offering) and wow is it impressive! I remember looking at it a couple years ago and just seeing a garbled mess that was impossible to decipher, but now it’s gotten ridiculously easy.

The biggest change is that you don’t need a credit card to get started. You can sign up for a free account and get a surprising amount of learning and experimenting done without paying a dime. This approach is much more effective than having a big barrier to entry.

Secondly, each of the Azure pieces has gotten super easy to use. Want to set up a WordPress blog? I went from not even having an Azure account to having a functioning WordPress site in well under 5 minutes. That’s just one of the many project templates they have all set up and ready to install.

You can choose exactly how much detail you want to manager. I saw one blog post that described Azure as giving you the choice between building your own house and living in a hotel. If you want to control everything, they’ll give you a barebones virtual machine in the cloud. If you want to have it “just work”, they’ll set up a web application host for you and you can just publish your code to them. They’ll take care of everything from there.

I’m so impressed that I’m thinking about moving off of my ancient Community Server blog code hosted on GoDaddy and switching over to WordPress. That part is easy, but if I’m going to do this then I need to move EVERYTHING off of GoDaddy and that includes a bunch of the back end service code for CascadeSkier. It looks like that won’t be too hard but it will require a few changes and upgrades (which were long overdue anyway.)

Don’t expect any big changes right away. I’ll be picking away at this as I have free time.

Website Traffic

I used our nifty new Power Query tool to connect to the database that contains all of the information for this blog to see what I could learn from the piles of data. I found a table that showed how many visitors I had each day for the last few years. Sure this is available from Google Analytics but this is the raw data straight from my blog management program so it should be about as accurate as you can get. It looks like traffic was growing for a while and then fairly abruptly dropped to a pretty constant level near the end of 2011. I’m not sure what that change represents, but the overall chart does reflect my expectations. This is never going to be a blockbuster site. It’s for friends and family to catch up on some of my ramblings and that’s about it.

Oh and don’t think that 500-1000 people are reading my site every day. This counts everything that hits my page so a lot of it is explained by spam bots and search engine crawlers.