Skip to main content


Showing posts from 2008

Open BlueDragon in the Cloud

One of the more interesting developments in application deployment recently is the concept of cloud computing. I'm sure everyone reading this blog will be well aware of what that means and entails, but if you want or need a bit of background, wikipedia is always a great start.To me the really interesting thing about cloud computing is not only its on-demand nature, but all the things you no longer have to worry about. Infrastructure is someone else's problem. Redundancy and scaling are available at the simple push of a button, or even completely automated. And the cost is ridiculously low for what you get in return.Yes, as with everything there are trade-offs, and even though to us this is all abstracted, we have to remember that somewhere all of this is being powered by physical hardware as opposed to some sort of magic. That being said, between cloud computing and the virtualization that's becoming the norm inside the data centers of most companies, particularl…

Open BlueDragon 1.0 Released!

I'm very proud to announce that after 6 months of very hard work, Open BlueDragon 1.0 is now available! The official announcement is on the Open BlueDragon blog, and there's quite a bit more functionality that isn't mentioned there. We'll have a lot more details on everything in the coming weeks.
Another big part of the release is the revamped web site and a new wiki, which will have much more content added to it in the next few weeks. For now we're using MediaWiki, which yes, is PHP-based, but it's also the best wiki software available. For now anyway. ;-) Before long we will be releasing a new open source wiki written entirely in CFML and 100% compatible with MediaWiki, which will make it painless for us (and anyone else using MediaWiki!) to transition over.
My big role in this first release has been building the admin console, which was a really enjoyable little (OK, not so little) project that had some rather interesting challenges. The admin console…

What I Learned Driving 2850 Miles Across the U.S.

As most of you already know I just completed a move from the Washington, DC area to the Seattle, WA area, which involved what turned out to be a 2850 mile westward trek across this great nation of ours. It was a quick drive (4 1/2 days) so I didn't have a lot of time to stop and see the sights, but I did learn a few things on the journey.

2850 miles is a long-ass drive no matter how you look at it.

The Prius is a damn comfortable car, and even loaded down going 80 mph it gets about 45 mpg.

Minnesota has serious work to do on their stretch of I-90. Guh-DUNK guh-DUNK guh-DUNK for hundreds of miles can drive even the most sane person a bit batty.

Quality Inn tends to take pets, and tend to be of fairly good, um, quality.

You do not want to be in Sioux Falls, South Dakota in late October when the wind's blowing 60 miles per hour. I haven't been that cold in a very long time.

Most of what you will see driving through South Dakota is signs for Wall Drug, even when it's a…

Avoid Refactoring Yourself Into a Corner

We have developer meetings twice a week at work, and we use these as a forum for people to show things they've been working on, ask for advice on how to approach solving a particular problem, share cool tips and tricks they learned, etc. This has been working really well and fosters what I think is the most important aspect of any development team: learning from each other. Regardless of the various skillsets and experience levels on a team, people have different areas of expertise and I learn something new or start thinking about something differently at every one of these meetings.Today's meeting was particularly interesting and since it's not an uncommon situation, I thought I'd share a bit about it. A co-worker has been working on an application for the past few months and this application has a very hard deadline. Without going into all the specifics, based on the client's own description of how things should work, this is a person-centric applic…

Digging Deeper Into the Java Underpinnings of Open BlueDragon

There's been a lot of discussion on the Open BlueDragon Google Group recently (and I get similar questions emailed/IMd to me as well) concerning how CFML developers can start making sense of Open BlueDragon in the context of its deployment on a Java application server.
CFML developers as a whole aren't typically used to deploying a CFML runtime engine directly to a Java server such as Tomcat or Jetty because, particularly in the case of Adobe ColdFusion, the Java bits are more or less hidden from view. For many people that's OK, which is why we've created a ready-to-run configuration of OpenBD on Jetty, and as I mentioned previously Jordan Michaels has created an installer for OpenBD that will be very familiar to Adobe ColdFusion and commercial BlueDragon users.
Once things are up and running, many people seem to be finding themselves intrigued enough with the Java side of things that they're wanting to dig deeper. For those unfamiliar with Java, however, this …

Lots Going On With Open BlueDragon

I've been rather quiet about Open BlueDragon lately but that's only because everyone involved with the project is working hard towards our first versioned release! This should be coming rather shortly at which point we'll all have much more to say. Of course you've been able to use OpenBD since it was first made available (and it's all I run on my VPS now), but for those who have been waiting until a version number was put in place, you won't have to wait much longer.
In the mean time, I wanted to point out a couple of items since they come up frequently on the Open BlueDragon Google Group.
First, although it's pretty simple to drop the OpenBD WAR file on a Java server to get up and running, or use one of the preconfigured Jetty distributions, there's certainly no arguing that having an installer is a great option as well. To meet that need, Jordan Michaels of Vivio Technologies (who offer the best VPS hosting available IMO) has created an instal…

Moving to Seattle

This has been in the planning stages for a while, but in October I'll be moving from one Washington (DC) to the other (Washington state), specifically to Seattle or thereabouts. Through the magic of telecommuting I'll be keeping my same job with the Senate, which is fantastic because there are always lots of cool projects going on and the freedom to play with the latest technologies and gadgets.
I have a blog post in the works called "Lightweight Cross-Country Moves" because in an effort to minimize the amount of stuff I lug (or have moved) 2800 miles, as well as just to lighten the load in my life, I've gotten serious about eliminating physical possessions wherever possible. I'll post that once I have it in better shape than random thoughts and bullet points.
And no, this move has nothing to do with my love for Microsoft as some people suggested on twitter. I still hate them as much as ever. :-)

Congrats Matt! I hope it all goes well!
Posted b…

File Manipulation on Windows Servers from Linux

This is more of a handy tip than anything earth-shattering, but yesterday I was faced with the task of grabbing all files with a particular extension from a nested directory structure, moving them all into a single directory, and renaming them with a different extension. I also had to be careful to preserve the original timestamp of the file.
The files reside on a Windows server, and needless to say the thought of remoting into the Windows server and spending the afternoon drilling into nested directories, sorting by file type, and manually moving and renaming the files didn't appeal to me.
One of the great things about Linux is how powerful the shell is. Let me preface this with saying I'm not a DOS expert, so maybe there's a way to do this in DOS (or PowerShell, which I've never tried), but I knew I could probably accomplish this entire task in a couple of commands in a bash shell.
Step 1 was to mount the Windows server drive:
sudo mount -t cifs //server.dns.…

CFUnited 2008 Presentations

Download this file

Download this file

Scotch on the Rocks 2008 Presentations

Download this file

Download this file

cf.Objective() 2008 Presentations

Download this file

Download this file

Simple, Powerful Debugging Tip for CFML Development

The big project I've been working on recently is 100% backend batch XML processing on a rather large scale, and as a consequence of the fact that it's all batch processing, the backend piece of the application (which is the vast majority of it) has no user interface.
The complete lack of UI presents some unique challenges, particularly since tracking every last bit of what goes on in the batch processing, keeping track of when errors occur, etc. is vital to the success of the system as a whole.
First and foremost, if you aren't using cflog regularly in your development process, go read the docs and start using it. In my opinion cflog and the use of custom error types are the two most underutilized things in CFML development, and particularly in a moderately complex system with no UI, this combination is key to knowing exactly what's occuring (and when) in the system.
Moving on to the real point of my post, when a system like this is in production, even given…

CFML as a Language: The Java Parallel

Since we're finally getting to the point in the CFML community that we're discussing CFML as a language independent of the various CFML engines, I think Brian Cunningham's post "What Hath Java Wrought" is a very interesting parallel discussion happening in the Java world. These are exactly the types of discussions I hope happen with CFML.

Wow. That's an awesome article. Interesting to see Java community have so many similar complaints.
Posted by Joshua Curtiss @ 7/10/08 8:23 AM

Could you please provide an article summary? That would make it easy for some of us.
Posted by Brock Baxter @ 7/10/08 10:34 AM

Posted by Allen @ 7/10/08 12:31 PM

Posted by @ 7/10/08 2:39 PM

It's an interesting dilemma for any language that has been around a while and it's particularly interesting to hear Java described as "easy to learn". You're right of course that the exact same discussion could happen with "Java" replaced by "C…

Connecting to Cisco VPN on Ubuntu

Made yet another step forward in my pursuit of full-time Linux usage today, namely connecting to a Cisco VPN. I did try the vpnc application that several people suggested but, to put it in technical terms, it "didn't like" our VPN hardware. (I'm sure there's just some setting that needs to be tweaked.) It imported my PCF file fine but would always timeout on the connection.So I got a hold of the official Cisco VPN client for Linux (version 4.8.01), and while it did need a bit of compiling and a patch applied for Ubuntu 8.04, it works great! I did find one blog post in particular that was helpful (thanks Arun!), and if you get an error on Ubuntu 8.04 (which I didn't) you might check out another post on Arun's blog.Yes, you do have to fire the VPN client up from a terminal so it's not as pretty as the Mac version, but it works just fine and is overflowing with geek cred.Since I also fixed the LDAP lookup issue in Evolution that I mentioned in m…

Code Quality, Architecture, Archaeology, and Free Software

I read a pair of articles today courtesy of my daily ACM tech notes newsletter (join ACM now if you aren't already a member--it's an amazing resource on a bunch of different levels). Even though they were listed separately I saw them as related in an interesting way, and it got me thinking about a variety of things that have been formulating in my head for a while so the time seemed right to try and share some of these thoughts in a semi-coherent fashion.As is probably no surprise to people who know me or have had any interaction with me in the past year or so, I've been thinking a lot about the importance of free software (which is a preferable term over "open source") on a much bigger scale. I've always been a big fan of free software but for various reasons and through various influences, free software for me has become less of a fascination and more of a firmly held belief. Software is everywhere, it has (or can have) a profound impact on every…

Kill the Fax Machine Already

Hopefully now that Bruce Schneier is making a stink about it people will listen. I have no idea why the fax machine still exists in the age of email, but I still get people telling me that I can't scan in a signed document and email it to them, I have to fax it. Makes less than zero sense.
Let's look at the myriad ways in which fax machines suck:

Totally and completely insecure, particularly if it's a real fax machine on the receiving end as opposed to an electronic fax queue (and if it's an electronic fax queue why the hell use the fax machine?). If it's a real fax machine anyone with physical access to the machine--which are usually placed in unsecured common areas--can grab anything they want off the fax machine. And on the sending side, if you go to a UPS Store or something along those lines to fax something, whatever you faxed is most likely in that fax machine's memory for any employee to re-print.

Slow and annoying. I won't bore you with the…

Writing Query Results to a File in MySQL

Blogging this mostly for my own reference, but I had to write query results to a file in MySQL today and hadn't ever had to do that before. Luckily it's darn simple. The following will write out a CSV with field data enclosed with quotation marks (which is important if the data itself may contain a comma).
SELECT whatever FROM whereever
INTO OUTFILE '/path/to/file.csv'
You can then open that up in your favorite spreadsheet program quite easily.

That's awesome. I have never seen that before. Just one question - I assume the path there is relative to the machine housing the MySQL server, not the ColdFusion server (unless they are the same machine of course)?
Posted by Ben Nadel @ 6/3/08 6:38 AM

@Ben--yes, the path there is a server path, and I assume it would be relative to the MySQL executable, or to be safe it's probably best to give it a full path (which…