I'm super excited for dev.Objective() coming up in a week. I originally only had one dev.Objective() session, but due to a cancellation I was able to get a second. My first session will be
This will be similar to what I gave at CF Summit last year, but with a lot of new and exciting additions. If you're not familiar with CommandBox or not using it, this will be a great session to get started with.
My second session (the late addition) is
A Raspberry Pi is a $35 credit card-sized computer that runs Linux. I have been playing around with running CFML on a Pi which has resulted in a Pi-hosted CFML blog as well as some fun CFML-controlled hardware. I'll be showing how to easily and quickly get CFML running a Pi as well as demoing some of my projects.
Ortus will also be giving away a Raspberry Pi at our booth during dev.Objective() so please stop by. I'm looking forward to seeing everyone!
In the beginning was the Web, and the Web was with CFML, and the Web was CFML. It was with CFML in the beginning. Through it all websites were made; without it no websites were made that had been made. In it were tags, and those tags were the productivity of all programmerkind. The productivity shone in the darkness, and the darkness did not overcome it.
Ok, maybe I'm overstating CFML a bit, but when it was created it was revolutionary. It redefined how websites were built and set the bar for other web programming languages. And though CFML led the pack for a while, there were soon others to follow. These languages were also productive, came with compelling frameworks, and made building sites fast and fun. Many of these servers were also free and open source and around them large communities grew.
So this blog is a bit of a spill over from a Twitter conversation I had today with Stefan Mischook, a PHP programmer and maker of all sorts of training videos at www.studioweb.com and www.killersites.com. A few years ago, Stefan uploaded a video blog to YouTube titled "Should you learn Coldfusion?" (sic) where he presented a not-so-glowing review of ColdFusion through the lens of circa 2003. I've seen the video before come up in YouTube searches. Part of that is a testament to the pathetically small amount of actual CFML content on YouTube. While I've recorded a number of screencasts and webinars that are posted online, they're all on Vimeo or Adobe Connect so alas I'm not contributing to that specific site.
I spend a lot of time answering questions on the ColdBox Google Group. Perhaps too much time, since it's all volunteer, but alas I enjoy helping people. Often times people can't get something working in their site like they want. It may involve optional ColdBox libraries, specific handler setups, or modules. The best way to help them is to actually create their setup locally on my PC and try it out. Of course, this can be a prohibitively time-consuming process just to answer a question.
I do most of my development on Railo, and setting up a new site consisted roughly of the following:
Now, if this was a ColdBox site, I would also need to:
Wow, NOW I'm ready to start replicating the user's issues. That's a lot of work for a one-time site I'm going to delete in 20 minutes. Now, what happens when I want to tell the other user how to set up the same site to test on their end? I think you get the picture. To be honest, I usually didn't bother and would just throw out a guess as to what the user's issue was.
Enter CommandBox. This is a CLI, Package Manager, and REPL and comes with an embedded server and a growing list of generator commands. This means I can open up a console and in a few SECONDS have a brand new site created in a folder of my choice with ColdBox installed, an application template generated, modules or handlers installed, you name it. And then I just type "start". That's it. About 3 seconds later a browser window opens and I'm using my new test ColdBox app.
Let's take a look at the commands I used earlier today to test URL routing to two different handlers with the same name in different subdirectories.
mkdir myTestSite cd myTestSite coldbox create app myApp --installColdBox coldbox create handler event userlists coldbox create handler pdt\real\ldr\ldr_nm\ldr_portal\ldr_agt\event userlists start --!openBrowser --force server open URI="/index.cfm?event\=event.userlists" server open URI="/index.cfm?event\=pdt.real.ldr.ldr_nm.ldr_portal.ldr_agt.event.userLists"
That created an app that exactly matched what the original poster had reported and even opened up the test URLs after starting the server. What's even better is I actually threw those commands in a recipe file called makeSite.boxr so I could tweak the recipe and run it repeatedly like this:
This is the beauty of making something automatable! Then, I pasted those commands back into the mailing list so the user could try the same thing I did. And when I was done, I just stopped the server with the "stop" command and removed the directory. It's like it was never there.
CommandBox has changed the way I develop. Admittedly more than I ever thought it would. Spinning up test sites, installing/uninstalling modules, or even trying out a few lines of ad-hoc code with the REPL is so easy now. I even use CommandBox for my client work too. I can start up multiple dedicated servers based on what I'm working on that day, and just stop them when I'm through.