Wednesday, May 21, 2008

My Website's Platform

In my yet to be announced website, I had quite a few decisions to make.

The first was platform. I'm a C turned VB turned C# developer, with a few hackjobs in other languages/platforms along the way. .Net and SQL Server can be expensive to host, though.

I started looking into new and modern RAD web development platforms. Ruby on Rails and Django/Python were the two that jumped out at me. Both implement MVC quite well, and are wonderful open source platforms.

Ruby on Rails of course uses the Ruby language. Ruby has roots in SmallTalk, Perl, Ada, Lisp, and Eiffel, and is a dynamic language. Of those languages, Perl is the only one that I have any experience with, and that was hacking existing code. Ruby was going to pose a challenge for me, but one I was (and still am) excited about taking on.

My decision to not use RoR for this project was based on two thoughts. One is stability. Twitter is a RoR application, and is constantly suffering from outages. While that by itself doesn't mean RoR is actually problematic, it does reek of stability problems. And if coders who work in it all day are having trouble keeping their website running, imagine what newbie like me would suffer through.

The other problem I had was availability of material coupled with versioning in that material. I rolled through a well written tutorial until I realized I had erb files and the tutorial expected rhtml files. Apparently that move was made somewhere between RoR 1.2 and 1.8. The 2.0 framework is on it's way out into the world, and I really didn't want to spend my time working with versioning and backwards compatibility issues.

While I still want to learn RoR, it's now on the back burner.

Python is another popular open source language and platform, and on Google's shortlist of languages they use/promote. Python is also an interpreted language, but is strongly typed (more my flavor), and is also a fairly high level language. There is a rather large batch of libraries available for it, and overall it appears more mature than Ruby.

Django is a web development framework for Python, and is almost to release candidate 1.0. Having only worked with it for three days, I can't say too much about it other than it looked as if it was going to do the job.

Sadly, around the time I started to rework my code into Python and Django, I also started looking for the URL I wanted for my website. As it turns out, several of the names I thought of were already taken (none in use yet though). I panicked a little, and decided I needed to stick with a web framework I was familiar with, C# and Asp.Net, with SQL Server 2005 backing it up.

While this means my expenses will be a bit higher, it also means I'll spend less time developing and supporting the application. If I don't consider myself a free resource, it's probably a wash. Part of my 40 hour a week hobby that supports my home coding job is project management, and it would be silly of me not to calculate my time in on the overall project cost.

So there it is. For now I'll be using MS tools for my website and will be talking a bit about them soon. I'm certain I will get back to Django and Python, and likely to Ruby on Rails soon enough, and will certainly be blogging about them when the time comes.

Monday, May 19, 2008

New Website Coming Soon

A few months ago I had YAIFAWS (yet another idea for a website) and didn't think much of it. That happens to me a lot. To add to it, I get lots of ideas from friends and family as well.

Many of them sound like good learning experiences in both software development and running a small business. Alas, I rarely have time to work on any of them, and they wind up living on a list somewhere.

This time, however, I'm working on the idea. I don't want to give any details yet because it's a simple site. To be frank, I started working on it this past weekend and have a good portion of it done already. I think I'll have a beta version ready by the end of this week barring any complications.

Once that's ready, I'll be counting on friends and family to help with the beta testing. It's a data driven application and I'll need all I can get my grubby fingers on.

My expectations for this website aren't very high, but the possibilities are pretty good. It's a bit "green" and requires community involvement. Five years ago I would have thought community involvement websites wouldn't work, but today, with wiki's everywhere, I think there's a chance this site will succeed.

So get ready for my request soon.