# Rain Pattern's Backend ## A long story for those interested, but skippable I started using [Drupal](http://www.drupal.org) a while back and became a big fan of using content management systems. I was even there to donate money when their servers went down and they needed funds to move to new servers. You can find my name in the big [thank you image](http://www.flickr.com/photos/factoryjoe/25560986/) they sent out later. Since then I've been using Drupal for pretty much every personal blog I put up or wanted to play around with different ideas for community websites. Though in every case I had to learn the ins-and-outs of the newest version all over again only to stop updating the site six months later. In general I realized I wasn't really using the full power and coolness of Drupal anymore. I was not looking to build community websites with lots of stuff going on, I was just trying to build a web presence where I can occasionally put things I feel are worth sharing. I considered branching out to other systems that wouldn't require much boot-up time but realized I don't even like the pretty looking templates all that much. And then I realized why I always had to customize these packages so much and spend all this time to make it work for me-- I didn't want to blog. I occasionally would imagine me being one of those developers who posted everything they learned online so that others can find out how to write some chunk of code. In the six odd years of having a blog I only did that a handful of times and via emails I learned I did help a few individuals. Which is all great but I'm just really not that into keeping up on posting. Hats off to those that do it so well. Still I want to share some random tidbits sometimes as well as point out projects in which I'm involved. I do like the notion of having my own house on the Internet and not just rent an apartment in the dorm called Facebook. I like the idea of using PHP and JavaScript to do nifty things, writing well formatted text documents, and pointing out topics meaningful to _what I do_. ## WTF is my problem!?! It's a funny thing, I do a ton of a requirements gathering and analysis for my job. I'm good at what I do because I understand how to do that and how to think through a system to actually design and engineer and not just write code. Yet at home for very personal things I just assume that using something out-of-the-box will be the easiest and most efficient without much consideration. One evening I just decided to throw away my current Drupal site so that I could start over. **Requirements** * Use as little infrastructure as necessary * Be simple for me to modify data * Use standard CSS to display exactly what I want * I decided that I wouldn't care if it didn't look right in IE (any version) * Be easy to write long formatted posts * Be easy to add in new random pages * No concern for security (no users besides me) * Fast for me to add new posts **User Centered Design** * It's easier for me to format text in-line versus WYSIWYG * An aside: I love using the little nub pointer on my Lenovo. I can go from moving the mouse to typing quickly. I don't get why people love touchpads, they are so hard to use * I can upload data using ssh and sftp * Eclipse is easier to navigate compared to a web administration panel * I am pretty good at remembering syntax ## Enter the PHP Minimizing infrastructure lead me to consider a JavaScript and JSON in flat files only design. The beauty of that would be not needing even a webserver to test the pages. A major downside is that it means a lot of unnecessary data being transferred to the client instead of using the data server side. Another big drawback is that crawlers wouldn't be able to get at the site's content as easily. Finally no data would appear in browsers with JavaScript disabled (accessibility). Fine, PHP is necessary. Which probably was better anyways because I could then use includes/requires to template out parts of the pages.