While we're not the type of blog that spends a lot of time blogging about blogging, I wanted to share some of the major changes we've been making behind the scenes over the last week. Well, it's actually been a work in progress over the last several months, we just implemented it over the past week, so you can probably guess that I'm very nerd excited about it and want to fill you all in on the enhancements and features. Trust me, I'm under no delusions and know most if not all of you will find this utterly boring, but hopefully one or two people will say "damn, that's cool," while snort laughing and adjusting their horned rim glasses repaired with white tape.
The thing is, our blog is geared towards DIY, and while changes to the blog may not be exactly a home improvement related item, our blog is definitely DIY. I've mentioned this before, but we don't run our blog on a blogging platform like WordPress or Blogger, but instead a 100% custom programmed blogging platform that I built in ASP.NET a few years ago. (When I say I'm in IT, my background and interests lie in website and web application development.) So in the scope of our DIY geared website, this blog is about as DIY as most DIY blogs come.
Back when I built the blog I thought about things related to web development much differently. This was in about 2010 and the JavaScript revolution and mobile friendly responsive web design wave hadn't yet swept the world. In general, the blogging platform was decent, sufficient, and did the job it was meant to do, but it didn't do it in a particular graceful way. Our previous incarnation of the blog was bloated when it came to HTML and "page weight" (amount of data that had to be downloaded on each page load), slow, clunky, inefficient, error prone, and left a lot to be desired when it came to general usability. Without getting overly technical, our blog was the beater you see driving down the highway.
This month our blog will turn three years old, and late last year I figured it was high time to take a good hard look at our blog to figure out what could be improved or overhauled to better serve our needs and the needs of our readers. We'd had our slow and old blogging engine for long enough, and it was time I put in some effort to get with the times.
So what did we do besides essentially leave the whole old look and feel entirely intact? Well, a whole lot!
Our blogging engine is built on an ASP.NET Web Forms platform. The thing about Web Forms is that it adds a whole bunch of extra and largely unnecessary HTML and JavaScript, which pretty much just slows things down. So I went ahead and stripped it all out. Suddenly our page downloads were about half as big as they were previously. This included the removal of ASP.NET Ajax JavaScript, extra markup for validators, and the happy removal of the bloated and dreaded ViewState.
While that definitely helped things out, it required a pretty major overhaul of the way the internal function of the blog actually worked. I couldn't just rely on the built-in ASP.NET methods for doing things like form validation, Ajax postbacks, and all of the other quick and dirty things that Web Forms takes care of for the develop, ultimately creating a generation of developers who don't understand the basics of what they're actually doing because the hard work and basics of their job have all been handled by some black box. That rant is the web developer equivalent to an old man yelling at the kids to "get off his lawn."
So what does this really mean for you as a reader/user of this site? A fair amount, actually.
First, the speed of navigating from page to page should be much faster than it was before. This has to do with everything from how quickly the server can generate the pages to how quickly they can be downloaded to your computer. We went from a single server and bloated HTML and JavaScript to streamlined and HTML, minified (yes, a major nerd word) JavaScript, all GZip compressed and delivered to the browser in the most efficient way we can.
We also optimized our pages for use behind a Content Delivery Network, or CDN. If you've never heard of a CDN, trust me, you use them extensively throughout the day each and every day. The biggest CDN is a company called Akamai, but there are many many others. Amazon runs one from their cloud computing services. In a nutshell, a CDN is a geographically dispersed network of computers that acts as a middleman between your typing in a domain name and you getting that web page on your browser. During that middleman process, the CDN grabs a copy of that page and stores it locally on their server. That way, the next time someone comes along and types that same domain name, rather than going all of the way to our server for the page, the CDN says, "wait a second, I have that page here on my local storage, I'm just going to pass that back to the user so they don't need to wait for the server to generate it." Then you typically get the page in a much more expeditious manner, letting the server focus on the unique tasks it needs to run, rather than the duplicated. In it's most basic form, a typical CDN architecture sort of looks like this...
...But if that's confusing, you can just think of it like this...
As I said, you've used a CDN every day without even realizing it. Almost every major website in the world uses a CDN. If you've downloaded a file from iTunes, an app on your phone, hit up Facebook, Twitter, or Instagram, or watched a movie from Netflix, you've been through a CDN. CDNs are now ubiquitous with the inner function of the Internet, and without CDNs, our lives would be way less convenient.
If you've never heard of a CDN, and you just read those last two paragraphs, I've just satisfied your nerd quota for the day. You're welcome.
Okay, beyond speed increases, what do these changes mean for you? Well, it primarily has to do with commenting. If you comment on this site, we really appreciate you. And to show you just how much we appreciate you, we've made commenting way better/cooler.
Now, when you submit your comment, the submission takes place right there, without refreshing the page. Once it succeeds, your comment is put in its correct spot and you see it immediately.
Yeah, I know, that's NBD, blogs have done that for years, welcome to 2005. But there are two new capabilities that we have now that you don't typically see on blogs.
After posting your comment you now have a window of 15 minutes where you are able to edit your comment. No more submitting your comment only to realize you've made a horribly euphemistic typo that is now tied to you on the Internet for all of eternity. Now, when you accidentally say "The penis mightier than the sword," you can now click the edit button and make your correction and nobody will ever need to know what you originally said.
And even better, if you accidentally perform the dreaded double or triple comment post, effectively saying "hey, y'all, I'm new here on the Internets and just learnt what this mouse button did, so, like, sorry, y'all!" You can now click edit comment and delete those few errant posts, hiding your Internet noobdom from the rest of the website's visitors that would have undoubtedly judged you for your faux pas. The Internet is a giant scene from Mean Girls, if you didn't know.
So now that we have all of these updates out of the way, we can get back to doing some actual DIY on our house. I mean, our bathroom isn't going to finish itself (I thought it might, I was proven wrong). We hope these changes we've implemented will make your experience on our website just a little bit nicer, and that maybe, just maybe, some of my mounds of otherwise useless tech knowledge has helped to round out a bit more of your knowledge of the Internet's inner workings. If you didn't know about it before, now you know, and knowing is half the battle.
And the last thing, if you notice some weirdness, odd behavior, or something that seems to just not work quite right (or at all), we'd be forever grateful if you wouldn't mind letting us know.