Blog

A blog from Brandon Moser, a Senior Web Developer. Mostly code, sometimes I post about drumming, UX and/or loyalty.

Continuation of the CFML Open Source Projects Update

Last week Brian Rinaldi wrote a post that said that he would no longer be updating the OSS Updates for CFML. Many in the community thanked him for his work (myself included). A few of us decided that it should continue on and with that have started a group that will look at all (ok, as much as we can find) Open Source Software projects in the CFML community. Our hope is to feature the current projects, notify people on ongoing and updated projects and help push for more projects to be open sourced.

There are many places to find these projects, from RIAForge.orgCFLib.orgGithub.com and SourceForge.net. Our hope is to bring these sources together and allow the community to keep up-to-date on these projects, as Brian did.

Currently, we have a project plan in place and hope to secure a domain name and host shortly.

 

Local Web Dev Platform

In an effort to remember how I setup my systems on both my Mac and my PC at work, I have decided to post my setup here. Hopefully it helps others, not just myself.

Since I like to control my web server separate from my application server (PHP, ColdFusion, Railo, Java, etc.), I use Apache HTTP, as it allows me to setup multiple virtual hosts (websites) vs. IIS on Windows XP or 7. I don't do much PHP development these days, but the other nice thing to using Apache is that most installs include PHP4/5 already. I have found that XAMPP for Mac and Wamp Server on Windows are the easiest to work with and allow you to customize the web server as needed. I tried MAMP for Mac and because I didn't want to pay for the ability to create vhosts (virtual hosts), I switched to XAMPP and have found no issues in its setup.

Setting up my CFML engine was easy, since Adobe ColdFusion has a built-in script for attaching itself to Apache's http.conf configuration file. I also run Railo on my VPS, but because I also run Tomcat on the VPS, configuration there was a bit more complicated (an honestly, I'm still working out the kinks). If you install the Apache server first, installing the ColdFusion connector script is a breeze. When it asks for the server to use, point it to the http.conf directory location and it will add the following code to your config file.

# JRun Settings LoadModule jrun_module /Applications/ColdFusion8/runtime/lib/wsconfig/1/mod_jrun22.so JRunConfig Verbose false JRunConfig Apialloc false JRunConfig Ignoresuffixmap false JRunConfig Serverstore /Applications/ColdFusion8/runtime/lib/wsconfig/1/jrunserver.store JRunConfig Bootstrap 127.0.0.1:51800 #JRunConfig Errorurl url #JRunConfig ProxyRetryInterval 600 #JRunConfig ConnectTimeout 15 #JRunConfig RecvTimeout 300 #JRunConfig SendTimeout 15 AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf

Adobe's ColdFusion also has an option to install the above script on an existing Apache install if you have both ColdFusion installed and Apache HTTP and you didn't connect them during install. You can find option in the Mac ColdFusion Launcher application, under Serivce menu >> Webserver Connection Utility.

Also important to a local development setup is using local web addresses to mimic the production/staging setup. For example, I have setup http://brandonmoser.dev in my home workspace to mimic this blog. Obviously, the .dev domain does not exist, but adding them to my hosts file, makes using these domains very easy. It also allows me to quick know which site I am developing. To find your hosts file on Windows it is found in "%system_root%\system32\drivers\etc\hosts". On Mac it is hidden a little more and requires Admin/root access so tools like TextWrangler or TextMate make things much easier. The hosts file location on Mac OS X is located in "/etc/hosts". While that doesn't seem very hidden Mac OSX keeps directories like /etc, /var & /opt hidden from user view, especially in the Finder. I usually add both the www and root domains to my hosts file, (e.g. www.brandonmoser.dev & brandonmoser.dev), just in case I decide to manually type in the URL.

Add virtual hosts to Apache is a breeze once you have a good template. I like to keep them in a separate file for cleanliness and ease of find them. There is a line in most Apache http.conf that allow for this. If not you can add it anywhere.

# Virtual hosts Include etc/extra/httpd-vhosts.conf

Running virtual hosts, also allows to you keep your development directories organized and located as you please. I like to keep my work projects separate from my personal projects. I keep all of them in my user's Sites directory, but within that directory is a director for Denali (my current employer) and Personal. Below is a sample vhost code sample.

DocumentRoot "/Users/brandonmoser/Sites/mango/" ServerName mango.dev ServerAlias www.mango.dev ErrorLog "logs/dev.mango-error_log" CustomLog "logs/dev.mango-access_log" common

Keeping separate error and access logs allows me to quickly parse the log, when something goes wrong. Obviously in development you don't have multiple sites being accessed at once, so you can comment out the log config to use the default logs which are setup in the http.conf file.

Officially choosing a blog platform

 This is a little site about me, Brandon Moser. I've been a developer for awhile now, but some reason putting together site has been a low priority. I guess the social norm is for the "occupation" to have the worst "occupation-related-item" (e.g. auto mechanics commonly drive brokedown cars). Well, following that notion, I have put off building my site. Of course there has been internal battle between which language to use, Ruby (on Rails) or CFML (ColdFusion), as I develop in all at the 9-5. Anyway, I finally have a VPS running Railo on Tomcat and I chose Mango as my blog platform. Getting this all up and running was a bit of a learning curve, but now that it's done, I couldn't be happier. Hopefully in the future I'll post my installation woes and what I learned in the whole process. For now, I'm just hoping I have enough time to blog and/or enough to write about.

From time to time, I'll post about ColdFusion/CFML development, Railo, SQL, web site performance, brand & customer loyalty and other various topics. Thanks for checking out my first official post, here's to many more.