The Alagad Technical Team Blog
Entries: 397
Why setting the right concurrent thread count is important
Published By: Chris Peterson on Jul 1, 2009 at 6:40 AM
Times Viewed: 418
Categories: None
I'm sure that most of you have seen the 'Request Tuning' page on the Coldfusion Administrator. If not, take a quick peek here.

This seemingly innocuous page can make or break your web server performance under load. Lets think about a typical page request.
Where Oh Where Did My Bottleneck Come From?
Published By: Jared Rypka-Hauer on Jun 22, 2009 at 10:43 AM
Times Viewed: 605
Categories: Alagad, ColdFusion, Programming, The Server Side
At one point in my career I thought I knew what performance tuning was... I would have described it as “writing tight code.” (Remember that phrase? “Tight code”?) And if I were to be tasked with fixing performance issues, I would have jumped on my computer, gotten a local copy of the app going, and started hitting pages to find the slow ones, then look at the code for ways to fix the issue. That, however, was before I knew what performance engineering really is.
The G1 garbage collector
Published By: Chris Peterson on Jun 18, 2009 at 10:03 PM
Times Viewed: 1032
Category: The Server Side
The G1 garbage collector has been made available in the 1.6_14 release of Sun's JDK. There was some controversy initially when this was released due to some wording in the license, but the wording has since been updated. Sun was trying to indicate that no support would be provided for the G1 garbage collector, yet it initially came across that you could not even use it unless you had a paid support contract (you can read more about the licensing changes here).
SearchMark Firefox Plugin Enters Wider Release
Published By: Doug Hughes on Jun 17, 2009 at 3:20 PM
Times Viewed: 493
Category: General
A while back I announced SearchMark, a Firefox plugin which automatically creates a Google Custom search engines for you based on your browser history and bookmarks. At the time I was only distributing the plugin through searchmark.org. However, yesterday I published it to addons.mozilla.com.
I personally think this plugin is really cool. (But I would, I wrote it..) The idea is this: I often visit a website I think has good information, but I either forget to bookmark it, or I bookmark it can can't find it in my bookmark list later. I always wished there was someway to search the text of sites you've visited or the text of sites you've bookmarked to find these old pages.
For example, I recently bought an iPhone adaptor for my car from a company called Grom. However, I needed some support on the installation and couldn't find their website again. So, I searched through my history and found it again rather quickly. (It seems I was accidently searching on Gorm, which is something else entirely.)
It's Probably Not The Code: Server Performance vs Application Performance
Published By: Jared Rypka-Hauer on Jun 17, 2009 at 8:00 AM
Times Viewed: 739
Categories: Alagad, ColdFusion, General
I was recently confronted with an application that suffered from abysmal performance... and by "abysmal" I mean "really really bad". My task was simple: Make the website go fast! It was an interesting challenge, really, and it got me thinking about the difference between server performance and application performance. All tools and best practices aside, the thing that really hit home for me was the sheer number of places I found that needed fixing. Yes, the code was an issue, but before I even started looking at the code (and thru the judicious application of appropriate tools), I found at least 3 places that affected the server itself.
So the difference between server performance and application performance can be summarized pretty much like this:
Apache's Jmeter Part II - recording a test script with the proxy component
Published By: Chris Peterson on Jun 17, 2009 at 7:21 AM
Times Viewed: 704
Category: The Server Side
As a follow up to my previous post about Apache's Jmeter, today I will go over using the Jmeter proxy component to record your activities in Firefox and make a test plan.
First thing we need to keep in mind as we build this plan, is our goal of actually simulating users. Sure, we could spin up a simple http sampler, setup a 40 thread group, and tell it to loop 100 times, but would this really simulate user load? Real users have pauses between their actions, they may use your site search with a variety of keywords, or they may just wander aimlessly. You also may notice trends in your log files, where you have 2 or more different general types of users. Lets setup a scenario today to simulate 2 of your theoretical user groups defined as follows:
Your site has an average of 100 concurrent users
65% of your users follow scenario A
35% of your users follow scenario B
No Object Oriented Cookbooks Here
Published By: Jeff Chastain on Jun 3, 2009 at 2:54 PM
Times Viewed: 764
Categories: OO Development, Programming, ColdFusion
With all of the recent talk regarding object oriented development in ColdFusion, a common theme appears with developers attempting to make the jump that I have seen many times in the past. You see comments like "where are the OO tutorials" or "where can I find an OO book". The problem that people don't seem to grasp here is that object oriented development is not something that you can just follow a check list for and be an expert at. There is no step A, step B, now you have a world class object oriented application.
Imagine a carpenter who only has a hammer in his toolbox. This carpenter can get quite a bit done with just that one tool, but to him, everything looks like a nail. This is where procedural development is very useful and practical for getting things done. For this carpenter, the hammer can take care of quite a few tasks - "hammering" them out quickly - just maybe not in the best way possible.
Adobe Flash Builder 4 'Gumbo' and Flash Catalyst In the Wild
Published By: Matt LeGrand on Jun 1, 2009 at 12:07 PM
Times Viewed: 921
Category: Flex
Adobe just release Adobe Flash Builder 4 code name 'Gumbo' and Flash Catalyst on their labs website. What are doing here? Go grab it at:
http://labs.adobe.com/
You need more persuasion? Here is some semi-accurate information on all the new features:
Flash Builder 4 (formally Flex Builder)
While the layout of the application built on the Eclipse platform will largely go unchanged. There are a few new trinkets worth checking out. The new Flash Builder 4 has a new service inspector panel. The tool should largely replace the need for a third party web debugging proxies like Charles. Flash Builder 4 has a new unit testing panel. Gumbo has engulfed the popular opensource Fluint unit testing framework and supports additional popuplar unit testing frameworks.
Cf.Objective() - Musings From a First Timer
Published By: Layne Vincent on May 27, 2009 at 10:47 AM
Times Viewed: 653
Categories: None
Last week I found myself at the annual cf.Objective() conference in Minneapolis, MN. Being that this was my first time to attend a conference like this, I was unsure what to expect or what the experience would mean to me in the end.
Upon arriving at the Hyatt Regency (lovely hotel by the way), I immediately noticed there were several developer types sitting around in the lobby. At this point it also occurred to me that some of my Alagad compatriots might be two feet from me and I wouldn't know it. I had never met any of them in person except for my long time friend Jeff Chastain. As it turned out, one of them was an Alagad guy. How was I to know Jared is a big, burly, biker type? Let's just say his Facebook picture must be old. Very old. This same process continued in a nice "for.each" loop until I had met each of the guys with one notable exception. I think I would have recognized Doug Hughes without any help at all. I'm not sure why, I just would have.
Throwing Down the Guantlet
Published By: Scott Stroz on May 27, 2009 at 8:26 AM
Times Viewed: 1018
Categories: ColdFusion, General
Unless you live in a cave, you know that in the last few days another Object Oriented (OO) vs. procedural debate has flared up. I thought this would be a great opportunity to discuss an attitude I have seen from some developers that mirrors the attitude I saw in quite a few people in my previous career.
For those who do not know, before becoming a developer, I spent 14 years as a paramedic. One similarity I have noticed between my former and current careers is that you can never know enough. There is always something new you can learn to make you better at your job. Another similarity is that if you ever stop learning, well, then the job has passed you by.
I found that the best medics are the ones who would critique a call when it was done and try to find where they could have performed better and work on improving those skills. I would like to think I was one of those medics. Regardless of the outcome of the call, I always found at least one area where I did not preform as well as I may have wanted. Its easy to look at the patient outcome as the sole indicator of how the call went, but rarely was that a true portrayal of how the call went.
360 Flex Wrap Up
Published By: Matt LeGrand on May 26, 2009 at 2:05 PM
Times Viewed: 837
Categories: Conferences and Events, Flex
I was really excited to have the opportunity to attend the 360 Flex conference in Indianapolis this past week. For those that don't know 360 Flex is a medium size conference that focuses on the developer community and generally fosters a great deal of social communication.
At 360 Flex adobe announced that their Flex Builder product would undergo a name change. (Read more here) The new name, 'Flash Builder', is intended to reduce confusion about what the product does and the platform it runs on. The underlying Flex sdk will still maintain the 'Flex' naming convention.
cf.Objective 2009 - Web Application Project Management
Published By: Jeff Chastain on May 16, 2009 at 11:15 AM
Times Viewed: 816
Category: Conferences and Events
As promised, attached is the presentation I just finished up at cf.Objective this year. This presentation was on using open source tools for web application project management.This is my first time for this presentation, so I appreciate any feedback. If there is enough interest, I would be glad to do this presentation againfor the online CFUG or some other venue.
This has been posted to SlideSix now .... http://slidesix.com/view/Web-Application-Project-Management-zPQda
Thanks again for the opportunity.
cf.Objective 2009 - Taking Code Reuse to a Higher Level
Published By: Jeff Chastain on May 14, 2009 at 11:30 AM
Times Viewed: 627
Categories: Conferences and Events, OO Development
As promised, attached is the presentation I just finished up at cf.Objective this year. This presentation was on using object oriented techniques and design patterns to take code reuse to the next level. The premise here was to go beyond custom tags and user defined functions which are the norm for many ColdFusion developers and start to think about creating reusable systems.
This is my first time for this presentation, so I appreciate any feedback. If there is enough interest, I would be glad to do this presentation againfor the online CFUG or some other venue.
Thanks again for the opportunity.
UPDATE: This has been posted to SlideSix now .... http://slidesix.com/view/Taking-Code-Reuse-to-a-Higher-Level
Site Testing with Apache's Jakarta JMeter
Published By: Chris Peterson on May 12, 2009 at 3:31 PM
Times Viewed: 1260
Categories: General, The Server Side
Everyone test's their web sites before going live (right??), even if it just means that you click on the site after pushing it to production, but how do you simulate the large user count your production environment may see? Apache's Jakarta Project has a product called JMeter that fits this bill nicely, though getting it working can be intimidating. This post will walk you through setting up a basic web site test and where to configure the important bits with the latest JMeter release.
First, of course, you need to go download the latest JMeter binary release:
http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi
On OS X you will need the binary file that ends in .tgz, on Windows grab the binary that ends in .zip. You will also need a JRE setup on your system (to test if you do, drop to a command / terminal prompt, and enter 'java -version'. If you get 'bad command or file name', go hit Sun's site and download the appropriate JVM / JRE)
SimTouch Multi-touch Simulator
Published By: Matt LeGrand on May 12, 2009 at 3:18 PM
Times Viewed: 1267
Categories: None
A while back I wrote an Adobe Air Application that simulates multi-touch events. The goal of the application is to assist developers in their own development of multi-touch applications knowing that they might not have access to multi-touch hardware or that they might find a simulator more efficiant for testing during development. The core benefit to using SimTouch is the transparent background allowing the application developer to have a better grasp of what he/she is 'touching'.
SimTouch works by simulating touch events and passing that information to other flash applications via a protocal called TUIO. SimTouch uses the same xml format that FlOSC might use to translate OSC message to a TUIO object. SimTouch needs a simple socket server to relay the XML Socket message between applications. Typically on port 3000.

Using SQL Server "INSTEAD OF" Triggers
Published By: Layne Vincent on May 5, 2009 at 11:34 AM
Times Viewed: 1540
Categories: None
Recently on a project we found ourselves in a situation where we needed a way eliminate updates to tables when those updates were acting upon records that had not been altered. I know, your first thought is "just don't do the update if the records haven't changed". That was our first thought as well. Unfortunately, that would have required significant refactoring of the application code and, in this case, that solution was just not appropriate. So a different approach was needed and we found it in the use of "INSTEAD OF" triggers.
Before I get into the use of "INSTEAD OF" triggers, let me do a little "Trigger 101" for you. In simplest possible terms, triggers wait for an action to be requested of the database and then act upon that action in a specified manner. Once an action is requested, SQL Server looks to see if a trigger exists and if so, it performs whatever code has been written into that trigger. Pretty straight-forward, huh?
So lets take a look at a simple trigger.
Getting Started With Enterprise Java is One Huge Pain
Published By: Doug Hughes on May 5, 2009 at 11:06 AM
Times Viewed: 1181
Categories: Ant, Groovy, Programming, OO Development, ColdFusion
Over the last few months I've been reading several books about Groovy, Spring, Maven, Hibernate and more. I've stated before on this blog that I'm moving towards implementing my application's model in Groovy and using ColdFusion for the presentation tier for HTML applications or Spring's BlazeDS integration for Flex applications. And now, with those few months of experience under my belt I can authoritatively say that Enterprise Java is a royal pain.
You see, I actually understand Java just fine. I can read the language and, to me, it's fairly clear. But, as with my German, I'm much better at reading it than speaking it. The reason isn't that I can't write the syntax, but that the supporting technologies are so amorphous and decentralized that they can simply be very difficult to learn. Beyond that, they're often created with extreme flexibility in mind and that means more complexity.
ArrayCollection or XML list of States and Countries
Published By: Matt LeGrand on May 3, 2009 at 12:00 AM
Times Viewed: 1817
Category: Flex
Seems like I'm always trying to put my hands on an XML list of states or list of countries for some Flex project or another. I'm posting these here in hopes that I'm not the only one looking for this information. I used to have this xml posted on a server somewhere and I'd just point a service at it, but now I have no idea where I posted it.
I'm also posting both of these lists as ArrayCollections. I've found this method the easiest and most reusable. I just instantiate the class and bind the view to it, for example:
The StatesArrayCollection looks like this:
Find Alagad, Win Big!
Published By: Doug Hughes on Apr 28, 2009 at 2:43 PM
Times Viewed: 871
Categories: Alagad, Conferences and Events
Every year Alagad tries to do something to garner some interest during the conferences. This year is no different. We may have actually gone off the deep end a bit. If you want to win an Amazon gift card, a Nintendo Wii, an iPod Touch, or a Mac Mini, you'll want to track down Alagad employees at CF.Objective() or CFUnited. We'll have you answer a short survey and give you a raffle ticket. The raffle drawing will be held on the third day of each conference.
An Adobe Air Application authoring another Adobe Air application
Published By: Matt LeGrand on Apr 28, 2009 at 11:06 AM
Times Viewed: 2331
Categories: None
The past few weeks I've been playing around with the idea of having an air application write some of the basic shell code and project structure that I typically use when starting an Adobe Flex or Air project. I'm calling the application 'FireStarter'. It's open source and you can get it here:
Here's some more details via the google code page:
FireStarter is an Adobe air application that rapidly builds the basic shell project for other Flex or Air development endeavors. This open-source application is initially designed for use in setting up medium to large projects based on the Cairngormn framework.







