2012-01-27 casual.phantomcode.org is up and running on Google's Appengine

Post date: Jan 28, 2012 2:26:49 AM

I've now got my webpage at casual.phantomcode.org up and running on Google AppEngine using Vosao as my CMS (Java) and I've learned a good bit along the way. I've got RSS and search and Google AdSense and Google Analytics working (I hope) but it seems like a good time to review both what I've done and how I got where I am.

My websites have evolved over the years. I think I first started out thinking I needed a personal website with GeoCities. Back then, Yahoo was the major search engine and my Yahoo accounts were the main way I interacted with the Internet. It was a simpler time. I didn't know much about hosting and was just getting started with HTML and it made it easy to create a presence on the web. The pages on that site were political and opinion driven with computer related stuff thrown in because that was where my interests were.

Later I decided I needed my own domain. I still remember discussing with Gary what domain I should get. I was an early adopter of the web in my own mind, but all the good and easy names were taken so we started brainstorming ideas. Eventually I ended up with phantomcode as my name because it described what I wanted to do: the unseen coding that makes the web work. My first pages were HTML with a goal toward ASP because that was what I was learning professionally. I started out doing ASP with JavaScript because I knew JavaScript from designing HTML, but over one long and lonely manic Christmas holiday, I discovered that running databases on ASP was painful with JavaScript and migrated to programing in VBScript.

As time progressed, ASP became harder to find free hosting for and harder to get to do what I wanted. I needed more widely adopted database systems and I needed more control and email through ASP was becoming harder and harder as more and more vulnerabilities cropped up. Eventually I wanted something that would keep working instead of forcing me to learn a new method of doing things and I switched over to PHP.

Ahhhh PHP. As soon as I started using PHP, I loved it. Everything I knew from JavaScript and HTML made it easy to do all the things I'd been having to learn to do with VBScript, but it was easier, faster and more reliable. I could effortlessly work with MySQL (my database engine of choice now) and I could create dynamic content without having to learn a whole new system every time I wanted to change things. Free hosts were plentiful and the databases could do anything I could imagine wanting so I stuck with it for quite a while.

When I learned enough to want to run a site on my own computers, it was easy to set up Linux-Apache-MySql-PHP systems (LAMP.) I started testing and building without having to interact with somebody else's server and things got faster, easier and I was able to control everything I could want. I was quite happy and stopped trying to learn major new programming languages and databases. It felt like a resting point. I learned that content is what I was really interested in and LAMP made it easy for me to focus on that.

Time passed and I focused more and more professionally on learning the administrative side of computer science. Gone were the long nights learning how to program and how to configure web servers. I knew what I wanted and knew enough to get to that part quickly. I can set up a LAMP server in an hour or so from scratch now. Given a computer and an Internet connection, I can turn a piece of hardware into a serious webserver and be ready to add content in an hour and really, that pretty much ended my interest in learning new technologies.

Still, it wasn't quick or simple enough so I stared learning how to use the work of others to make my own content look and work faster and more beautifully. I stared learning how to use Content Management Systems. For the uninitiated, CMS is a system, usually a set of programs, that makes your website something you can edit and build on without having to worry about HTML (the language pages are shown in) or the programs that produce customised HTML for a visitor (dynamic HTML) or servers administration or database administration. I hadn't known what CMS was back in the GeoCities days, even when I was using one. Now I became familiar with setting up MediaWiki and administering it. Then I tried others and settled on MediaWiki in my professional life because it is what drives Wikipedia and PMWiki for my personal site because I could extend it so easily.

All was simple and static once again.

As of this writing, I'm still running PmWiki on my personal pages at phantomcode.org but I have decided that it is better to use Google to host my services because they don't depend on my own hardware or my own maintaince. I can't stand to see my page go down because I need a reboot or decide to upgrade a server, so I need something that is more reliable than I can afford to pay for on my own design. In short, it is time to get back to my roots and learn how to use things that are as reliable as I can imagine, I am learning to make the stuff that will let my pages be as reliable as Google.

So I started researching without deciding on Google as a host. I wanted something fast, free (at least at first) and powerful. I don't want to be held back because what I want can't be done on the system I'm using. I want something that will be available to visitors even if I decide to take apart my machines at home or switch ISPs. I want something that can scale to a million visitors a minute if that's what it calls for. Time to learn again.

After a lot of research into platforms for developing publicly available content, Google seemed like the best choice and I already have enough experience to trust them to some degree. I started out with AppEngine but was a little rough. I couldn't easily program on their system, and I couldn't easily customise my programs and I had to start learning a new language. Really, AppEngine offers you a choice between Java (which I dislike) and Python (which I want to learn but don't know well) and Go (which almost nobody knows.) It looked like Python was the language of the future, that or Java (which I repeat, I dislike) so I started learning Python. Fortunately Python is a pretty sensible language with a lot of power, even restricted to the methods of using it that Google allows. Plus, Google had a CMS (wiki) system that didn't take too much getting used to, but I still wasn't really keen on working it over to make it my main site.

Then I discovered Google's sitebuilder. It is easy to use, a full fledged CMS with excellent tools and no programming required. That's what you're interacting with now and what I'm using for this blog entry. Only one thing remains that makes me dissatisfied: It doesn't let me do whatever HTML I really want. It corrects things. That shouldn't be a handicap, but it insisted on deleting my invisible entries and converting my ASCII editing to standard characters. In short, it corrected me where I didn't want correcting.

At this point I had three sites, my personal phantomcode.org site, my professionally geared phantomcode.com site and my learning Google AppEngine site app.phantomcode.org. None was entirely satisfactory for a variety of reasons that varied from place to place. Eventually I was compelled to look for somthing new. I didn't want to start from scratch, and I didn't like the CMS that google uses for sitebuilder and I didn't find myself really comfortable with the AppEngine Wiki I had been trialing.

That brings to current times. After some research, I discovered that the most flexible and reliable CMS for AppEngine that suits my needs is written in Java and called Vosao. I don't like Java (how many times must I repeat that?) but I do know how to work with it and can stand it if I don't have to develop often on the platform. So I have created a site with it, done the DNS work and the configuration work and gotten my content out there and built the tools I want into it.

As of today, casual.phantomcode.org is my learning and personal platform of choice. Things work or can be made to work. It doesn't restrict me and can be extended. It is reliable. What I want to accomplish and what I desire in reliability are free for reasonable amounts of workload. It has a search tool. It has RSS. It has indexing. It has customisable HTML (unrestricted.) It has content. If warranted, I can handle a million visitors per second. (Not for free, but that wouldn't have been possible on what I was using before.) It is independent of what I do with my home hardware.

It is beautiful.