First Post, NYE, and the Website Technology
Posted: Thursday, December 31, 2009 @ 11:37 PM
Updated: Tuesday, January 5, 2010 @ 3:02 PM
So this is the first real post on my revamped and revitalized personal website blog.
First off, Happy New Year to everyone! Here's to hoping that all maintain good health and that we thrive in 2010. Take a moment to remember and reflect, and then to hope, dream, and plan for the future. Dive into 2010, head first.
Ok, so as for the technical development process and base technology for this website. I'll cover it quickly for now and keep it abridged in a predominantly list format. Sometime next week I'll post a sequel to this entry and cover it in a bit more detail.
The hosting for this site is on my own server, shared on a virtualized host running Windows Server 2003. It is hosted on Internet Information Services 6 with ASP.NET MVC 2, targetted at .NET Framework 4. If you'll notice, these are relatively newer technologies. This is one of the main reasons the site was delayed by a few days. I decided to go ahead and use this opportunity to familiarize myself with the newer releases of the platform. I've been using MVC, both ASP.NET and CakePHP for a while now. So far, I far prefer the greater control and ease-of-testing environment provided by ASP.NET MVC over ASP.NET WebForms. The Seperation of Concerns is very clean and modular, and so in my eyes, easier to scale and less susceptible to code rot.
I also decided to finally make the jump and migrate from LINQ to SQL Classes to LINQ to Entities, since L2S is being depreciated. Entity Framework is certainly more flexible, at the cost of complexity. Also, this release is much better, but there are still some rough edges to work out. For instance, auto-generated columns at the database can be hard to manage from withing L2E. I had issues with this when trying to work with created/modified auto-generated datetime fields in MSSQL 2005. All in all however, I'm happy with L2E and am looking foward to future releases. The model class implementation of the data-tier incorporates some standard design patterns as well, such as Dependency Injection (a form of Inversion of Control).
The front-end client side of the website is pretty semantically clean, if I may say so myself. Presentation is seperate from structure, as is behavior. File sizes in addition to the number of round-trip HTTP requests being made have been kept to a minimum as well. The DOCTYPE is HTML 4.01 STRICT, and most of the site complies as such. jQuery is the behavior library, with which I enjoy working. The only section of the site that is not super friendly in terms of rendering well (or at all) on most platforms (*cough* iPhone *cough*) is the gallery, because of Flash. In the next revision of the site, I'll switch that from SimpleViewer (a Flash component) to Galeriffic (a jQuery plugin). Also, I'll be adding a "Most Recent Pictures" gallery, as well as mobile editing capabilities. However, don't expect that update for another couple of months.
As usual, cross-browser compatibility almost drove me to the point of drinking. Even then, I'd rather welcome hepatic failure than the random and sudden-onset stroke that would result from poking and prodding Internet Explorer 6 to play nice.
A couple of people have commented on the picture of me on the left-hand side. This theme and layout was desiged years ago. The original picture, in which I was 20, is below.

I just haven't had any major inclination to redesign or change it. Also, this layout is pretty hard for someone with my limited artistic inabilities to top. I do however still very much enjoy the clean, elegant, and simple design of this current site. It was co-created in 2001 with a designer friend.
Also, I had to tweak IIS a little as well, since it tends to shut down the worker process after a timeout period. This basically means that if no one goes to the site for 20 minutes, the server pulls the site out of its memory. The next time someone visits the site, the server has to reload the back-end code (no small task). After that it's fast again, but this site doesn't see that much traffic to begin with, so it's as if almost everyone gets a slow experience on the first page request. However I've changed some settings and have basically configured IIS to keep this site in memory, since the machine itself has plenty of memory available to it.
Anyway, that's all I have to say for now. There's more to it, but I'll leave it at that. I'm tired and I'm hitting the sack. See you guys in 2010! :)