Central Alabama ColdFusion User Group - 2011
Employment
- Browse "Local Sites" and ask individuals at a site near you how they found their job. Help us keep this list current.
- Look for the word "employment" below and in other archives. Let us know when you learn of opportunities you don't need.
- Or, simply contact the group managers.
8 December Meeting
Free-for-All
The free-for-all focused on using ColdFusion with ODBC, something that's not exactly automatic if you're changing operating systems. The ODBC driver you need is *not* the default driver. [frown]
2 December: Montgomery Nativity
The meeting was bumped from the first Thursday of December to the second Thursday in order to avoid stepping on a local event in central Alabama: Montgomery Nativity. For several years now, individuals across churches and across the community have loaned their nativity scenes for viewing by the public in a beautiful indoor setting as groups from the community perform Christmas music. (Marty has two solos from the Messiah.) For details, see http://www.montgomerynativity.com
3 November Meeting
postgreSQL
This month's project was to successfully connect ColdFusion to postgreSQL. Why postgreSQL? postgres has come a long way over the past decade, and it was probably time to revisit it. It's closer to "normal" now.
6 October Meeting
Log In
The challenge was to see many different approaches to implementing a login function and to look at the advantages and disadvantages of each: "How many different approaches can you quickly describe and demonstrate to implement a login function for an application? What will influence your choice of methods? Come, show off your skill!"
Here are a couple of entries...
Bare Bones
- Have Application.cfm check a list of permitted pages for unauthenticated users: login page and gate page. If the user is not authenticated and an interpreted cookie does not contain the desired value, use cflocation to dump the user to the login page.
- Provide a login form for the user. Set the action to be handled by a separate "gate" page.
- At the gate page:
- If the login is wrong, use cflocation to send the user to the login page.
- If the login is right, store the desired cookie and do a meta refresh of the gate page to itself.
- At the gate page, if the desired cookie is present - it will be if just set - use cflocation to go to the application menu.
- On the other hand, if "referer" at the login page was the login page - it won't be the gate page; because, cflocation makes it seem as if the user never arrived at the gate - tell the user the login was wrong.
Full-Featured
- This approach starts with a splash page that when its image is clicked leads one level down so that subsequent movement between directories can be all on the same level: "mat" for the welcome area, "act" for the active site, and so on. Have Application.cfm in the welcome area enable session management.
- Let the destination of the splash page image delete a login cookie and define username and password as empty.
- Provide a login form (whose action could lead to the current page).
- If the login is correct:
- Add the user's ID and role to the session in memory.
- Store the session key (cfid and cftoken) and the user's ID in a urlEncoded, encrypted cookie whose contents have been obfuscated.
- Include the main menu in the active area.
- Don't let ColdFusion write its default session ID coookies. Instead, have Application.cfm in the active area set defaults, decrypt the cookie, find the session in memory that matches both the User's ID and session key found in the cookie (or bounce the user), and get the user's role from the session in memory. Have Application.cfm set the variables (not the actual URL) for url.cfid to the desired cfid and url.cftoken to the desired cftoken. Then have it enable session management; this sequence will cause ColdFusion to "continue" the session they represent.
- Now that the user is authenticated, enable menu items appropriate for the user's role.
1 September Meeting
ColdBricks
As it says at the ColdBricks web site: "ColdBricks is a versatile and extensible platform for Content Management, Portal Creation and Website Development." This meeting, the task was to installing a starter application or two using ColdBricks running on ColdFusion under Tomcat.
Getting started with ColdBricks was straightforward except for one thing: the directory path is case-sensitive. I had unzipped it into a directory named "ColdBricks". The images in the administrative application for ColdBricks would not render until I renamed the directory "coldbricks" (all lower-case).
Unfortunately, that's as far as we got. Tomcat and ColdFusion still have "issues." And, attempts to use CF Administrator return "the requested resource is not available." It was an unproductive exercise, this time around.
4 August Meeting
First, an apology for not posting the agenda in advance this month. There's almost as much to do during transition back to full employment (finishing tasks at home) as there is when employment winds down (finishing tasks at work), and Marty was accepted by a new employer this week. He was laid off last month after fifteen years with his company but is blessed to be working again next week.
Apache Tomcat
JRun, once a commonly used java application server for ColdFusion, is a memory hog so greedy that Marty uninstalled ColdFusion (and its companion JRun) from his laptop to not have anything interfere with the job hunt. Today, the challenge was to install Apache Tomcat (a worthy java application server with a smaller footprint) and ColdFusion (without its "built-in" JRun package this time) in a hour.
Selection. Even though ColdFusion 9 is being pushed by Adobe, its lack of some functionality for some operating systems suggests that it's not quite mature. So, ColdFusion 8 (already downloaded) was chosen for use. Apache Tomcat 7.0.19 seemed stable; so, it was picked.
Installation. Tomcat for generic Microsoft Windows rapidly installed. It was allowed to install in its default location (under Program Files) except that some directory names were shortened for convenience. CF 8 was installed with the WAR file option. All components were loaded except for Adobe LiveCycle Data Services; this platform could barely cope with the services it currently had. RDS was enabled (for directory browsing from CF Administrator).
Smoke Test. In the time remaining for the meeting, Tomcat provided a working Web server (at http://127.0.0.1:8080), and it did it with one-fourth as much memory as JRun had used. There wasn't time to configure Tomcat to work with ColdFusion, but this was a good start. And, a link for instructions on now to have the two talk was found: http://www.adobe.com/support/coldfusion/j2ee/phase2-tomcat-deploy.html.
Later Results: ColdFusion on Tomcat
Not long after the meeting, Marty did the tweaks required to get ColdFusion to run on his box. The creative part involved modifying a batch file to provide the right environment and trying to get used to completely different deployment trees. With reference to Adobe's support link - see last month's meeting - his Tomcat root was C:\Program Files\Apache\Tomcat7, and the batch file setenv.bat had to be edited in C:\Program Files\Apache\Tomcat7\bin. Here's what worked:
rem Set a few variables.
set JAVA_HOME=C:\Program Files\Java\jre1.6.0
set CF_HOME=C:\Program Files\Apache\Tomcat7\webapps\cfusion
set CF_WEB_INF=%CF_HOME%/WEB-INF
rem Concatenate binary file directories into a single variable.
set CF_SHARED_LIB=%CF_WEB_INF%/cfusion/lib
rem The following variable must be on a single line.
set CF_SHARED_LIBS=%CF_SHARED_LIB%;%CF_SHARED_LIB%/_nti40/bin;%CF_WEB_INF%/cfusion/jintegra/bin;%CF_WEB_INF%/WEB-INF/cfusion/jintegra/bin/international
rem Add libraries for binary files to the Windows system path.
set PATH=%PATH%;%CF_SHARED_LIBS%
rem Set JVM options to enable sandbox security (all on one line).
set CF_SECURITY_JVM_OPTIONS=-Djava.security.manager
-Djava.security.policy="%CF_WEB_INF%/cfusion/lib/coldfusion.policy"
-Djava.security.auth.policy="%CF_WEB_INF%/cfusion/lib/neo_jaas.policy"
rem Set JVM options for CORBA. Use if vbjorb.jar is not in
rem your JRE's lib/ext directory.
rem set CF_CORBA_JVM_OPTIONS=-Xbootclasspath/a:"%CF_WEB_INF%/lib/vbjorb.jar"
rem Consolidate JVM options.
rem * Use this line if you've configured CORBA
rem set CF_JVM_OPTIONS=%CF_SECURITY_JVM_OPTIONS% %CF_CORBA_JVM_OPTIONS%
rem * Use this line if you haven't configured CORBA
set CF_JVM_OPTIONS=%CF_SECURITY_JVM_OPTIONS%
rem Populate JAVA_OPTS, which will be used by catalina.bat
rem when starting the JVM.
set JAVA_OPTS=%CF_JVM_OPTIONS%
7 July Meeting
Content Management System
It would be nice to offer a customer a site that the customer can make routine changes to. A Content Management System (CMS) can keep the developer from having to re-invent the wheel. The idea here is to help a small customer reap the benefits of ColdFusion.
The CMS should be open to the developer; since, the developer has to be able to evaluate its risk. Cost is an issue, but it isn't the other only issue. Inexpensive hosts can't let developers add executables or make sweeping changes to their hosting environment. So, the CMS environment has to be installable by the developer without such measures.
The hunt for a Content Management System looked at a half-dozen paid alternatives but eventually settled on a free alternative for further study: ColdBricks.
2 June Meeting
Politician's Sites
Politician's sites each have common functions. Today's meeting - yes, this is short notice - is a look at what those functions are and how they might be provided.
5 May Meeting
Supporting Cast
We looked at techniques outside of ColdFusion to help up assemble content for presentation. For example, you can use Outlook to reduce the size of dozens of photos in a single pass, then save the reduced photos back out for use instead of actually mailing them.
7 April Meeting
Ruddderless, this meeting had no agenda.
10 March 2011 Meeting
Note: due to schedule conflicts, the meeting was on the 2nd Thursday this month: 10 March.
What, then How
We analyzed Web design tenets with an eye to implementing them in ColdFusion.
3 February 2011 Meeting
Broaden the Base? Almost.
Broadening the base was the topic. For all its power, ColdFusion has not captured enough "mind share" for the average Web programmer to have even heard of it. Because its Wikipedia entry doesn't clearly state that CFML is a language, it's not included in the annual survey of languages that programmers use! If you put up a flyer inviting Web programmers to a ColdFusion meeting, most will have no idea what to expect.
The idea of broadening the focus of the group was anathema to us a few years ago. We lamented the name change in most ColdFusion user groups to Macromedia groups and then to generic Adobe groups. However, at least most people have heard of Adobe, even if they only associate it with frequent updates to Adobe Reader for PDFs.
For now, we'll show how ColdFusion complements other tools for building dynamic Web sites and let the name alone.
6 January 2011 Meeting
"Brush Up Your Shakespeare"
It's amazing how quickly adults lose (temporarily, at least) skills that they don't use. If you've been promoted to a management position or moved sideways to a test or certification role, your skills can quickly become stagnant.
And, the state of the art doesn't stand still. So, if you merely retain your current skills, you're moving backward relative to the state of the art.
On the table were ways to stay in our favorite game even when we're currently being paid to play a different one. It's important to do that to retain your usefulness. As the song says: "Brush up your Shakespeare, and they'll all kowtow."