Archive for September, 2005

Invoking ColdFusion From Java: CFCProxy Documentation

Thursday, September 29th, 2005

I was going to start poking around with CFCProxy over the weekend since I hadn’t seen any examples of how to use it, but Ben Forta just posted some initial documentation for it.

JSEclipse: JavaScript Editing In Eclipse

Wednesday, September 28th, 2005

I almost never work on client side scripting these days, but apparently InterAkt Online (of Dreamweaver fame, et al) has released a free plugin for Eclipse for JavaScript editing (via del.icio.us).

JSEclipse is a freeware Javascript plug-in for the Eclipse environment. Designed to help web developers edit JavaScript files with ease, it has built in support for:

* Code completion for JavaScript function and classes.
* Code completion for JavaDoc.
* Function and class names are displayed in the Outline panel for the currently open file.
* Open declaration
* Error reporting
* Warning reporting
* Code wrap

Modified ColdFusion Template For Enterprise Architect

Tuesday, September 27th, 2005

I took Mike Rankin’s template which will do code engineering of ColdFusion from UML in Enterprise Architect and modified it a bit to my liking. Some of the changes include:

  • Changing the order which the method groups were created. It is now getters, setters, then methods
  • Removed all refernces to Variables.Instance and just placed everything into the Variables scope
  • Made the comments separating the various groups of methods a bit more subtle
  • Added line breaks between methods
  • Made all returntypes default to “any”. This comes in handy if you are generating components which are in different paths
  • Removed the CVS header (I use Subversion)
  • Other minor odds and ends

You can download said template here (use Right Click, Save As), and read how to install it here.

If you’re someone responsible for doing any sort of UML modeling of ColdFusion applications and haven’t used Enterprise Architect before, you should give it a look. It’s not perfect and sometimes a bit clunky, but for the price its a decent tool. You can even generate SQL and code for databases and languages other than SQL Server and C# respectively.

ColdFusion MX Tuning and Clustering Roundup

Monday, September 26th, 2005

In general, server setup, tuning, troubleshooting and configuration seem to be one of the least understood tools in a typical ColdFusion developers toolbox. Many leave this up to sysadmins who typically do not have a vested interest in ColdFusion and think that Java and JavaScript are the same thing. Hopefully this list will get you motivated to learn more about the “guts� of JRun.

One thing I’m starting to get pretty decent at is configuring, tuning, and troubleshooting ColdFusion MX servers in everything from standalone mode to multi-instance clustering in a multi-tiered scenario. I would not of been able to learn this nearly as quickly (and by quickly, I mean steadily over several years) if it weren’t for the great number of blog posts and articles out there about this particular issue. Granted it’s not what I do full-time, but I think I have a good grasp on it at this point (and I also have a background in Unix, Sysadmin, Networking, etc).

I’m asked frequently to document this sort of thing to which my reply is usually something to the effect of “It’s all over the net. You just have to sit down and learn JRun, how a JVM works, etc.. it’s not just something you just can figure out in 10 minutes from a single source of documentation.” Over the years I’ve kept a good number of bookmarks to reference when trying to troubleshoot a server hanging or simply when setting up a new server or server environment, and thought I’d post them all in one place for anyone else trying to get a grasp on how to setup JRun clustering, how to tune ColdFusion, etc.

I don’t have any links in particular to learn what a JVM is, what the various stages of generation are, how garbage collection works, etc, but if anyone has these or any other links which belong here, let me know and I’ll put them up. I apologize that most of these are ColdFusion MX 6.1 links, but I’ve been collecting them for quite some time and I don’t think that much of the fundamental technology has changed in 7.0 other than it being a lot easier to manage instances.

Okay time to stop being superfluous and get to business. In no particular order:

Clustering & Scaling ColdFusion MX

Tuning & Troubleshooting ColdFusion MX

Java Tuning Fundamentals

Miscellaneous

  • Making Persistent CFCs Thread Safe
  • Restarting ColdFusion MX Programmatically
  • SeeFusion - A great product to actively watch ColdFusion/JRun servers, kill long running threads manually, etc. Not a replacement for thread dumps or adding extra information to the JRun metrics logging when doing load testing, but it works great in combination with them. Disclaimer: I tried it out briefly once upon a time, but haven’t used it in awhile nor have purchased a license for it, yet.

As I mentioned earlier, I’m sure I’m missing plenty of other great resources, so if you have any, please leave them in the comments and I’ll add them to the list.

Is Listening To Users Harmful?

Friday, September 16th, 2005

Here’s an interesting take on an example of where using one’s own experience and intuition is better than relying exclusively on user feedback.

“We changed our entire program because WE knew we could do better. Because WE were still frustrated that people weren’t learning quickly enough or progressing through the higher levels as well as we thought they could. People still weren’t having the kind of relationship with their horse that we knew they could have, even though our students were delighted with the progress they were making. So we changed it all.”

I’d have to say I find this to be an extremely insightful entry. Often times I find myself making changes to something new and cool I’ve came-up with on a given product because “9384290384 customers” (AKA, one, or just someone with political power) want it to do X instead of Y. It can be frustrating at times, especially after presenting valid arguments as to why you’ve done something a certain way, but generally it’s easier just to agree to disagree and get it done.

Being a gearhead, another good example of this to me is the evolution of a generation of an automobile model. Each time a new auto comes out or is majorly revised, the first model year or two is a pretty good representation what the engineers and designers had in mind when they started working on the car. When a particular model revision is close to it’s end-of-life is when you start seeing the chrome added, funky color combinations, and other things which are completely unnecessary which are afterthoughts in hopes of getting a few more customers. In general I’d imagine those type of requests are from a marketing department, user feedback, etc, but the engineers and designers begrudgingly have to add those things on to the car.

An example that comes to mind is the current VW Beetle. Not only has VW dead-ended themselves by using a retro design (how do you redesign a retro design?), but in the last couple of years it’s been getting some funky color choices , ugly color matched wheels, extra chrome strips, etc. It looks like for this year they did some other cosmetic modifications and got rid of the various crap they’ve been doing for the past couple of years, but you can see what I’m talking about in the previous link.

Another example would be the latest revision of the Acura TSX. It also has a “refreshed” front fascia which looks very ugly and out of place compared to the current models fascia.

A Couple Of Friday Gems

Friday, September 16th, 2005

Here are a couple of interesting Ruby On Rails links for your perusing:

Zero To Rails in Under 2 Minutes

Get to the Point! Zero To Rails in 2 Minutes

Sun x64 Opteron Servers

Wednesday, September 14th, 2005

Crazy marketing campaign that makes me laugh aside, the new Sun servers look to be pretty amazing. I think the best part is the pricing– they actually seem to be cheaper than Dell, even with the high-end quad proc Opteron boxes vs. the quad proc Xeon’s at Dell. Even their UltraSparc boxes are priced very well now which is downright shocking to me (though I think this has been a trend for them in the last year or so).

One big advantage in my eyes of the Opteron platform is the availability of dual-core CPU’s, which essentially allow you to process twice as many threads using the same number of CPU’s. A quad proc, dual-core Opteron running Solaris (which of many other advantages, is able to assign more RAM to the JVM heap vs. Windows) would prove to be a pretty awesome application server I would imagine…

MySQL vs. PostgreSQL vs. Oracle

Tuesday, September 13th, 2005

I came across an objective comparison of MySQL, Oracle, and PostgreSQL (when trying to research when partitioning will be supported in PostgreSQL) which is pretty interesting. It looks like the last time the PostgreSQL content was updated was as of version 7.1, but overall it’s a good overview to compare the various features and functionality of those databases.

Free Ruby On Rails Hosting

Monday, September 12th, 2005

Looking for somewhere to play with Ruby On Rails other than your workstation? You can get free hosting of a RoR application at Rails Playground.

Web Development Trends of 2006

Thursday, September 8th, 2005

Anil Dash covers what he believes will be the web development trends for 2006.

I’d have to say I highly agree with his comments on Ruby On Rails– there are a lot of little “nice to haves” missing here and there from the bit of reading I’ve been doing about it lately, as well as several features which seem common to other web application frameworks.

I think it’s popularity will really begin to pick-up in 2006 for sure, rather than it being a buzzword among those who practically live on the intarweb. It will be interesting to see how it evolves, especially if a few big companies start to pick it up for various development efforts and contribute functionality to the RoR framework which is currently missing.