Blue Dragon To The Rescue

As I explained in my last post, I started to run into issues with my Railo installation as it was getting hit too hard by requests. In all fairness, Railo is beta software and I was a bit weary of putting beta software into a production environment anyway.

With all of the hype about Railo nowadays, I had forgotten about Open BlueDragon which has been available for over a year now. The nice thing about BlueDragon is that is was a fork of the commercial version of the product, so it is very robust and mature. Plus it is licensed under the GNU GPL (v3) so there are not many restrictions on its use.

[*** More ***]

Choosing A Slice And A CF Server

The slice server, or VPS, market is getting bigger and bigger. I pointed out a few hosts in the last post, and some other users commented with their own. They all seem to be in the same ballpark of $40-$60 for a 1GB memory slice with 20-40GB of storage. Some are as cheap as $20, but most people recommend at least 512K for a Railo server. I was shopping for a slice of about 1GB as I want to host a number of sites of the box.

[*** More ***]

In Search Of A New Webhost

I look back on my days when I used to run all of my own servers and cringe. I had 2 Windows 2000 Server machines and 2 running RedHat Linux, plus some development machines. Then there were the RAID arrays - 2 big Dell Poweredge boxes that held a bunch of SCSI drives which could barely be lifted when everything was in there and barely provided any storage by today's standards.

And then there was the administrative headache of managing all of those servers; keeping them patched, secure, and running smoothly. It was a big task, to say the least, and something that kept me on-call 24/7 for way too long. The worst of all, though, was the bill I received every month for bandwidth and co-location of my equipment at a local ISP.

[*** More ***]

Project Tracker v2.0 Released

A new version of the Project Tracker has been released today. This version incorporates over a dozen major feature upgrades and enhancements - plus a whole lot of bug fixes as well.

The improvements go something like this:

  • New Administration area for settings, projects, clients, users, etc.
  • Email and/or SMS Notification system of new files, issues, messages, milestones, tasks
  • Granular permission system for each project and item
  • New issue system featuring statuses of new, accepted, resolved, and closed.
  • Enhanced code for speed: JavaScript libraries trimmed down. Less reliance on Interface, more on jQuery and now using lates jQuery. Minimized number of external CSS and JS calls.
  • CSS has been made more "bullet-proof"
  • Streamlined UI when only 1 project. Allows for auto-login of guest user to provide for public projects.
  • Includes SQL upgrade scripts for version 1. Better internationalization. Better mySQL compatibility.
  • Forgot username/password functionality.
  • Moved to JavaKit SVN for UNIX SVN browsing. Now includes Diff functionality. Includes JavaLoader.
  • Client management included and linked to projects.
  • Attach files to messages.
  • Assign due date to tasks.
  • API for reading projects data.
  • General bug fixes...

Head on over to http://projecttracker.riaforge.com for the code!

Generating OpenDocument Files On The Fly

Although Microsoft is not happy about it, much of the world has been moving in the direction of the XML-based OpenDocument format, otherwise known by it's much longer, full name: the OASIS Open Document Format for Office Applications.

This opens up new possibilities for document generation and allows the creation of all sorts of Office-type documents using only a text editor (assuming you know what you're doing). A number of applications, including OpenOffice, already support the OpenDocument format. Microsoft Office does not, but there are plugins available.

[*** More ***]

Amazon Launching Database In The Sky

Amazon continues their transformation from retailer to web application backend-service-provider with the launch of their new SimpleDB service.

The service allows you to offload your database storage and processing to Amazon's Web Services. By combining the use of Amazon's Simple Storage Service (S3) and Elastic Compute Cloud (EC2), this new service provides the ability to store, process, and query data sets in the cloud.

Amazon's continued transformation gives developers an option for one less thing to worry about. It also has the ability to scale up instantly, providing another layer of insulation against the "Slashdot" effect.

The service is currently in Limited Beta. You can sign up for the beta from the Amazon Web Services homepage.

The Importance of HTMLEditFormat()

I got a call today from a user who was having a weird problem when trying to save data on a form. Upon inspection, it turned out that there were a set of double-quotes in the data.

So why is this a problem? As far as ColdFusion cares, it's not, and the data was actually getting saved to the database correctly. The problem appeared when doing an edit. Everything after the first double-quote was being cutoff.

Upon further inspection of the HTML being generated, it seems that is where the problem came in. ColdFusion was doing it's job by outputting the double-quotes, with no knowledge of where in the page that data is being used. And if you use it in a form, you've got problems because it will appear to the user that the data is not saving.

The solution is to use HTMLEditFormat() when outputting values into form fields. This will cause any HTML special characters to change to their entity notations. So the HTML that is generated will actually look something like this:

 <input type="text" name="whatever" value="some "quoted" text" />

but it will display on the form as normal double-quotes, and will submit as that too:

This may be common knowledge to many of you, but I'd bet there's a whole bunch of developers who don't even realize this could be an issue. Hopefully this will help prevent some hard-to-track bugs!

Project Tracker 1.0 Beta Released

So here we have my first full open source application. I've released a few CFCs, but this is a whole 'nother story.

Project Tracker is somewhat of a clone of the Basecamp application created by 37signals. It is designed to let you manage and collaborate on your projects.

Some of the features include:

  • Post messages and comment with team members
  • Create to-do lists and items
  • Set milestones
  • Track issues and bugs
  • Share files with team members
  • Dashboard view of all current activity across projects
  • Integrated SVN browser and source viewer
  • Default and per-user styles
  • FCKeditor included for rich text editing
  • Avatars supported on CF8 (cfimage required)

This is an active project with improvements and fixes being made regularly. Please send me your suggestions!

The project page and download is at http://projecttracker.riaforge.com

Disabling Text Selection For Drag-and-Drop

A common usability problem encountered in Ajax apps is the unintentional selection of text when trying to do a drag-and-drop operation. This javascript function allows you to disable text-selection for a specific element on the page and should work in all modern browsers:

 <script type="text/javascript">
 function disableSelection(element) {
  element.onselectstart = function() {
  return false;
  };
  element.unselectable = "on";
  element.style.MozUserSelect = "none";
  element.style.cursor = "default";
 }
10  </script>

You can't disable text selection with CSS alone because returning false from the onselectstart event is necessary to disable selection in Internet Explorer. You may want to also change the cursor when mousing over your draggable item with a style of "cursor:default" or "cursor:pointer". Even better yet, you can use "cursor:hand" to indicate that dragging is possible.

Here's how you would call it in your page:

 <script type="text/javascript">
 disableSelection(document.getElementById("text"));
 </script>

Should you actually need to copy and paste, you can always view the source.

Ext Javascript Library Launches

Jack Slocum's wonderful Ext library, which was originally based upon the Yahoo! User Interface (YUI) components, has now gone live with a universal version that supports jQuery and Prototype/Scriptaculous as well. You can actually customize your download package based upon your JS library of choice and the widgets that you'd like available.

Kudos to Jack for putting out such a professional package - lots of good stuff to play with for creating some serious desktop apps!

Check it all out and download at http://extjs.com/

*** More Entries ***