Central Alabama ColdFusion User Group - 2007


Home Employment Why ColdFusion? Demonstrations Archives Tips Other Groups Local Sites

2010 2009 2008 2007 Beginnings

Employment

Agenda for 6 December 2007

Slide Shows

Now that you have pictures from Thanksgiving to show off, we'll look at two very different ways to display them in timed slide shows: using javascript to loop through individual images -- or using ColdFusion to loop through individual pages.

Agenda for 1 November 2007

Use Verity to Build Your Own Site Search

ColdFusion server comes with a version of Verity, a powerful indexing engine that lets you dump in raw text and then do quick searches against it. The only barrier that keeps some sites from using Verity for this purpose is lack of control over the information that Verity returns and the format of that information. Verity returns a summary that usually appears to have nothing to do with the search terms but hopefully provides enough context to let a user decide if the link might be useful. This is nice, but it isn't the same feedback that users are used to receiving with other search engines. We'll look at a way to use Verity to do the initial screening and then use ColdFusion to provide excerpts closely related to what the user asked for.

Agenda for 4 October 2007

Build Banking Interfaces

The whole point of most commercial sites is to accept money. We'll explore published ColdFusion interfaces for this purpose.

Agenda for 6 September 2007

Use Query Indexing to Beat ODBC Limitations

ODBC only lets you work with one datasource at a time. Suppose you need to summarize transactions by vendor, and your vendor information is in a separate datasource from your transaction data. (It happens.) One terrible approach would be to hit the vendor database with individual queries as you step through the transaction database (especially if you have to sequence the transactions by Company Name first). There is a better way, and we'll explore it during this meeting.

Agenda for 2 August 2007

Remember, meetings start at 6:30 PM now.

Cross-Site Scripting and SQL Injection

It's hard to mount a useful attack with these techniques, but you don't want a vulnerability scanner to claim successful hits against your site because it was able to make your pages display garbage that matches what the scanner sent. And, there's the odd chance that something you've overlooked might let a real attacker steal access from one of your users or even change your database. Fortunately, defenses against these attacks overlap. We'll examine some.

Agenda for 5 July 2007

Time Change

Note that our meeting time has changed from 7:00 PM to 6:30 PM. This makes it easier to find a restaurant after the meeting.

Parsing Search Engine Results

In order to show the actual adoption of ColdFusion by organizations in a given city, someone has to manually examine a search for their Web sites to eliminate false positives (nationwide sites that mention a city) to pick or specify one of possibly many links to represent good domains once. Then, someone has to create a list of links to the verified sites, to include the names of the organizations they represent. Because the sequence of search results changes each time as well as changing slightly in actual content as sites are added and dropped, it's tough for a human being to avoid checking the same site over and over to keep these links current.

That's where the value of an automated tool comes in. We'll look at a way to parse and use the search engine results, creating a tool that:

Employment - 11 June 2007

A reputable firm has a job on Gunter Annex (Montgomery, Alabama) for a ColdFusion developer who can communicate well and is a U.S. citizen with a current or readily renewable clearance. Contact the Group manager for details.

Agenda for 7 June 2007

Role-Based Security

During the meeting, we'll build a mini-site that includes login and page-specific access controls based on overlapping roles. One person could do this in a half-hour, but discussion will double that [grin], leaving time for impromptu topics.

Employment - 5 June 2007

A firm has supplied a Request for Proposal for a custom ColdFusion Portal. This work is probably open to everyone regardless of where you live. Contact the Group manager for details.

Agenda for 3 May 2007

Protecting Pictures and Statistics

ColdFusion documents are easy to protect through ColdFusion logic, but non-ColdFusion files such as images and spreadsheets are a different matter. If you have a project site that you use to share work in progress with the customer, the customer doesn't want the statistics and artwork in coordination to be prematurely released to the world. Early release might give the competition an edge or take the surprise out of an advertising campaign.

We'll look at two basic ways to keep non-ColdFusion files from being accessed by individuals who are not logged in, even if they know where they last saw the files.

Agenda for 5 April 2007

Parsing Pasted Bulk Data

There are many situations where it's convenient to paste the content of a spreadsheet, text file, or bulk hand entry into a text area and then have the site parse the data and post it to a database and/or analyze and interpret it into another format.

For example, a spreadsheet of price updates or student grades can be pasted into a text area and then parsed into an on-line database. The same technique could be used to pre-populate a new Web site with customer data. Or, Data Description Language (DDL) can be pasted into a text area and the Web site can return the data in tabular format for off-line analysis. Or, a business transaction formatted for brevity can be expanded to human-readable terms.

We'll explore the parsing of bulk data for these and similar purposes.

CFUnited Express/Atlanta - 15 March 2007

Mouse over photos for captions - Come to User Group to get high-resolution photos on CD

Prequel

Inside view of hotel with glass elevator Main lobby and esclators to ballroom floor hotel restaurant view of lobby Bent glasses at hotel restaurant Ann-Marie with fancy clam dish
The night before the event, the hotel kept the restaurant open beyond its normal closing time, and my wife and I were able to share one order of linguini with white clam sauce. However, this stuff wasn't served with just canned clams. It was topped with breaded clams and also clams still in the shell! A bargain at $15.

Morning

Ballroom level Main Hotel Lobby from the ballroom level above Presentation room before attendees arrived SoZo Hosting banner Giant projection screen
The morning of the event, I woke up early like a kid expecting presents. How early? Let's just say that there wasn't anyone else in the meeting room. Liz from TeraTech had just set up signs.

The first conferee I met came here from Istanbul, Turkey, specifically to interact with people at this conference. I had lived in Turkey for two years; so, we compared notes. We had a Turkish tourist spot in common, Pamukkale: "cotton castle" - a mountainside made colorful by outdoor formations you'd normally only see deep in a cave. He showed me what his company is working on.

About 8:45, hotel staff began running extension cords with power strips to most tables to accommodate those who just can't live without a laptop. I'm one of them. I had brought a backup battery and inverter, hoping that it would be enough to carry me through if the laptop battery gave out before I was able to recharge. I was grateful for the power.

Hal Helms had planned to speak on architecture issues. Sadly, a family emergency intervened. We would eventually hear from John Mason instead on the topic of Server performance tricks and tips.

Michael Smith

Michael Smith Michael Smith Michael Smith Michael Smith Michael Smith with Charlie Arehart Michael Smith Michael Smith Michael Smith Michael Smith Attendees Michael Smith Michael Smith Michael Smith Michael Smith
Michael Smith warmed us up (as late arrivals straggled in) by asking us to collectively define what makes a good Web developer and how one gets to become one. Also how one gets to learn ColdFusion. And, what you would look for when hiring someone. We collectively brought up some decent points.

When we had run out of ideas you might think of, Michael added "humility". He explained that a developer once said that the amount of brainpower you need to debug code is twice the brainpower it takes to write it. So, if you write the most clever code you can, you'll have to find someone twice as smart as you to debug it.

He then asked those who have attended CFUnited what they get out of it and why they keep coming back. The response:

Michael added that you could spend the whole day going to sessions from nine in the morning to late at night and that there are also parties and special events that have an impact of their own.

Charlie Arehart

Charlie Arehart Charlie Arehart Charlie Arehart Charlie Arehart Charlie Arehart Charlie Arehart Charlie Arehart Charlie Arehart Break between speakers Break between speakers Break between speakers Break between speakers
Our first presenter was Charlie Arehart. His title: "Caching in on CF Performance". We learned how caching can help or hurt, watched it being applied in live demonstrations, and learned how to flush cached information and how to turn caching on and off. It was a surprise to me to see how many ways there were to cache information provided by the server. He illustrated his briefing with working examples so we could see how to apply various settings and could immediately see their impact.

Ben Forta

Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo application highlights singers Apollo architecture Apollo architecture Ben Forta Ben Forta Ben Forta E-book on Apollo Apollo application wraps a browser Apollo application wraps a browser Apollo application wraps a browser Apollo application wraps a browser Apollo application wraps a browser Apollo application wraps a browser Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta Ben Forta
Ben Forta was as I had pictured him, except that his pleasant, deep voice has unaccountably the ring of a slight British accent. I had understood nothing about Adobe's project code-named Apollo before his presentation. I came away looking forward to it. Apollo's contribution is to let you write applications that change gracefully when you disconnect the network and reconnect the network. A browser wrapper he built in front of us in three minutes is only 150K. In the past, I've looked unsuccessfully for a solution to the problem of increasing the font size in the browser address bar; this wrapper provided the core of a solution to that problem in only three minutes. To say I was impressed would be an understatement. The items he demonstrated looked and acted like native Windows applications, except that these were smarter, much smaller, and were created much more quickly.

Break Time

buffet tables in the main lobby
Lunch was an unexpected treat. A hot meal was available, but even the sandwich fixings were mouth-watering.

Rob Gonda

Rob Gonda Rob Gonda Rob Gonda Rob Gonda Rob Gonda Rich versus thin client Rich versus thin client Model View Controller Diagram Model View Controller Data Flow
Rob Gonda's presentation was on how you might use Asynchronous JavaScript and XML (AJAX); although, he repeatedly made it clear that Flex (using Flash) was a much better choice and wasn't afraid to explain why.

AJAX developers need to pick a data structure for the transfer between client and server, libraries to manipulate the data, and debugging tools to be sure things are working right. Rob listed examples of each of these elements and provided their pros and cons. I would like to have seen an example or two and more discussion on modifying the browser Document Object Model (DOM) to reveal and hide information, but he had much ground to cover in a short time.

John Mason

John Mason John Mason John Mason John Mason Live performance graph John Mason John Mason John Mason John Mason John Mason
John Mason told us how HTTP (or HTTPS) compression and Java Virtual Machine (JVM) tuning could help our server's performance; he also offered advice on a variety of changes we should make to close security holes on the server. Imagine having your pages serve five times faster through HTTP compression. Imagine optimizing your JVM's use of memory so your server has the resources to do other things. Imagine avoiding a simple security mistake made by 40% of the sites John has checked.

Andrew Powell

Andrew Powell Andrew Powell Andrew Powell Andrew Powell Andrew Powell Types of Objects Andrew Powell Andrew Powell cffunction arguments Andrew Powell Planning for functions ComponentPlayer DAO Building an object structure Andrew Powell Attendees; notice not all are men Andrew Powell
Andrew Powell's topic was "Introduction to ColdFusion Components (CFCs) as Objects". When he asked how many people were still primarily using ColdFusion 5 (which doesn't support CFCs), my hand was one of very few raised. When he asked how many were using CFCs, I was shocked to see nearly every hand raised.
The Shock of Recognition
I had expected that perhaps a handful of programmers had played with CFCs; it was a shock to see that nearly all my peers use them. That one attitude adjustment was worth the trip for me. After all, I have the opportunity to learn CFCs; the new ISP for my ColdFusion demonstrations and for the user group Web site provides CFMX. I resolved to get on board. Andrew described CFCs, objects, how to use CFCs as objects, why we might want to do that, and where to go from here to get comfortable with the concepts.

Paul Bonfanti

Chart presentation overview Paul Bonfanti Paul Bonfanti Paul Bonfanti Paul Bonfanti Paul Bonfanti Multiple series in one chart Paul Bonfanti's contact information
Paul Bonfanti's presentation was titled "Generating Charts with CFML". I had played extensively with the old functionality, extending it to provide larger legends. Paul most wanted to talk about new chart types and controls provided by CFMX and BlueDragon, but his review was appropriate even for someone who had never encountered the charting abilities of the ColdFusion server.

Denouement

Michael and Liz picking winners Michael and Liz giving away posters Liz returning from a delivery Liz in mid-toss: hat throw Michael
And suddenly, we were done. Michael Smith was awarding goodies based on random drawings. Liz was tossing hats to those willing to dive for them. And the crowd melted away.

We had heard from an eclectic collection of very qualified individuals. I had fifteen single-spaced, typewritten pages of notes, and I write slowly. I look forward to getting online to copy slides provided by the day's briefers. I look forward to applying what I've learned.

Would I go again? Definitely. Maybe next time I'll have more to share.

Me, reflected in elevator, with goody bag
=Marty Ladner=

Agenda for 1 March 2007

Review Custom Login Methods

Every site that moves beyond brochureware needs a way for individuals (or machines!) to log in. We'll explore the pros and cons of various methods of implementing the login function.