Central Alabama ColdFusion User Group - 2008
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.
4 December 2008 Meeting
New Meeting Time
We met at 6 PM at the usual location; the new location hasn't been firmed up yet.
Admin Demo
An old admin module that flexibly assigns permissions for various site functions was demonstrated (after clearing a date bug that CF5 ignored but was caught by CF7). Each non-admin user is associated with one of three nested groups (corresponding to various levels of an organization. The configuration screen lets administrators specify that various groups have create/delete, write, read, or no access to to various functions. For example, the mid-level group could be permitted to modify information belonging to the lowest level, or not.
6 November 2008 Meeting
Connect
Instead of our scheduled activity, we experimented with Connect and reviewed methods of organizing RSS feeds.
Change in Meeting Time
Because a monthly global manager-to-manager meeting has been scheduled at 7 PM on our meeting day, our subsequent meetings will start at 6 PM instead of 6:30 PM so that the group managers can catch the tail end of the manager-to-manager meeting after our meeting winds down.
2 October 2008 Meeting
Core Application Modules - Reader and Admin Support
We had hoped to demo code for the rss/atom reader and code for admin support of a member roster. Changes a member makes to his or her own profile would be handled as inserts so admins could roll back to earlier versions of the profile. (If members did something egregious and then wipe their profiles to duck and run, admins would be able to use earlier profile information to follow up.)
However, life happened; this didn't.
The manner in which RSS is implemented and used received some emphasis. And, this meeting spent a little time looking at the Time Travel demo on the futureec.com Web site: http://www.futureec.com/context/timetravel/ This demo explores the idea of using inserts in the guise of updates. However, the Time Travel demo falls short of the requirements for admin support in several areas:
- It performs an actual deletion instead of marking items for deletion.
- It should treat marking all matching records as non-current as part of the same transaction as the update [or deletion] of an item.
4 September 2008 Meeting
Core Application Modules - RSS and Atom Reader - Requirement
In planning for this meeting, we discussed learning by doing when it comes to frameworks: using various frameworks to create a core application several different ways. The application would eventually be expanded and offered to low-budget organizations (churches and Scouting units, for example), but in the meantime, we'd learn lessons during implementation.
This month, we looked at the parameters and benefits of a useful module for such an application, a module that would read, store, and display inputs from data sources such as RSS and Atom.
Adobe Connect
Don Gilliand demonstrated Adobe Connect; it's marvelous! Without the need to install anything extra, individuals can show what's on their screens, and other individuals can add markings that all can see. We'll use it well.
7 August 2008 Meeting
Photo Function
The photo album approach in June used special pages that displayed subsets of a list of images to create an automated, changing collage. July looked at bridging eternal sites to a server that contains protected images.
This time, instead of relying on a collage of ever-changing images in fixed positions, the ability to customize scrapbook pages by placing image tags placed as desired was demonstrated. The source information of these image tags is specified through a function; the function causes the image to point to an encrypted URL that only works while a specific session is active. The code that underpins this example feeds multiple pieces of information to the general-purpose code that will render the image: the cfid and cftoken (copied from the session into the request scope as each page is rendered), the path to the image (relative to its storage location outside the webroot), the image filename (including extension), and random padding to discourage tinkering. For example:
- This CFML <cfoutput><img #imgsrc("firstyear/familypic.jpg")# width="200"></cfoutput>
- becomes this HTML <img src="safe.cfm?jpg={encrypted string}" width="200">
Productivity
Frameworks should be chosen because they give the opportunity for increased productivity. We discussed the apparent advantages of several frameworks, then concluded that the best way to make their strengths and weaknesses apparent would be to produce the same useful core application using a number of frameworks.
3 July 2008 Meeting
Build Bridges
We looked at approaches to bridging users logged into a non-ColdFusion site to use restricted functions on a ColdFusion site. The bridging project was overshadowed by the time it took to set up an application that the bridge would access. However, using a "web bug" on the non-ColdFusion site to set a cookie (based on the referring site) that's honored by the target site
did work.
It would have been more secure to have a succession of cookies so that analysis and mimicry of a single page wouldn't give the game away. But, that would require users to follow a predictable multi-page path through the non-ColdFusion site to reach the bridge. And, users are likely to bookmark the bridge, foiling this approach.
5 June 2008 Meeting
Build a Protected Photo Album
As promised, we reviewed the source code for a protected photo album. Here's the heart of the approach that was used to build it.
- Park the images outside the server root.
- Supply a table or list of images to work from: one row per image.
-
For each row, have a field that lists the groups allowed to see the image.
- For each user, have a list of groups it's a member of.
- Have the page that will show the images confirm this user is allowed to see them. For each <img> tag, this page supplies an encrypted URL to a common utility page that has a cfcontent tag and will provide the image only if decryption of the URL succeeds.tag.
For this example, the encrypted URL included a random component so that even an individual with access to the site cannot simply re-use the URL later to get the same image. This example also had filter pages that pare down the list of images to be considered so the user can limit what is seen to images from a single group even if the user is a member of multiple groups. Every six seconds, a display page only needed 65 milliseconds to bring back a collage of three fresh images even though for this example the querysim tag instead of a database was used as the image index described above.
1 May 2008 Meeting
Attack Your Site (Before Someone Else Does)
Nasty unscrupulous experts - you can hardly blame this stuff on bored amateurs anymore - try to use your own URLs and form variables to steal credentials from your users and data from your site. We revisited August's discussion of SQL Injection and Cross-Site Scripting, only this time we focused on a building a simple generic tool to let you attack your own site.
See Real Web Bugs
In addition to the main activity, we looked at real Web bug examples.
8 April 2008 - Employment Opportunity
I learned today that there may be a current opening in Montgomery for a senior ColdFusion developer, and there is potential for entry- and intermediate-level openings in the future. Contact me, Marty Ladner, for details.
3 April 2008 Meeting
Dip Into Our Barrel of Swag
Here was the offer:
Adobe has been kind enough to provide copious amounts of swag. Convince us why you deserve first pick from this collection, and you'll get it. The next most convincing participant will get next pick, and so forth. We expect to do two complete rounds of the room. No one will be left out, but you must be present to get the presents.
Here's what happened:
We opened a sealed box of swag. In addition to simple pleasures such as a WI-FI detector and small USB mice, we found a video recorder that will be used in future presentations. If you missed this meeting, don't lose hope. There are other unusual items here, and there are enough T-shirts to outfit a baseball team. Now all we need is a new excuse for giving some of it away.
Skim a Request for Proposal
In keeping with the idea that tools are meant to be used, we reviewed an openly published request for proposal (RFP) to see how you might achieve the results it asks for. (The RFP specifies an architecture to be used, but we ignored that during this no-holds-barred session.)
Gauge Programmer Demand - Pick a Job - Build Tools
This evolved into a nice discussion on how reviewing work requests can help you gauge the continuing demand for programmers, on why one might turn down a job, and some ways to make a little preparatory work (such as code generation) go a long way towards meeting a firm's needs now and in the future.
6 March 2008 Meeting
Consider Using Adobe Tools to Build Rich Internet Applications (RIA)
Adobe's RIA technologies enable you to rapidly build and deploy the most engaging applications across browsers and on the desktop. Central Alabama ColdFusion User Group is hosting a special event to share exciting new information on Adobe's platform tools and technologies for building RIAs. We saw an exclusive user group video presentation by Adobe Chief Software Architect, Kevin Lynch, heard some important product news, and had the opportunity to get our hands on some exclusive swag and other giveaways.
Want to know more? See below for a description of the pre-release tour for Flex and AIR.
7 February 2008 Meeting
Review ColdFusion for Rapid Development
Compared with other languages for the Web, ColdFusion uses 1/3 as many lines; and ColdFusion server provides capabilities not directly provided by other application servers. Thus, code reviews go faster than with other languages, and the result is easier to maintain.
We explored techniques to quickly support additional valid values tables, data-driven form structure, and browser- and server-side validation.
Jan-Feb 2008 Count Down to the Flex and AIR Pre-Release Tour
Although ColdFusion is often the best tool, it isn't the only tool. [Gasp!] Is it time to get more flexible? Why is there air? Is it really to blow up basketballs? (Apologies to Bill Cosby)
Well, the pre-release tour isn't about that kind of AIR, but it can bring you more Flexibility. Together, Flex and AIR let you use your Web skills to develop desktop applications. Flex 3 is on the threshold of release, and AIR quickly provides breathtaking results in a small footprint. Last year, I watched Ben Forta use an early version of AIR (then code-named Apollo) to build a browser wrapper in three minutes. (See our notes from CF United Express Atlanta last year.)
Flex
Adobe Flex is a full-featured development framework for programmatically creating rich Internet applications (RIAs) usually deployed through Flash, which works across all major browsers and operating systems. Flex uses ActionScript to specify logic, uses a form of XML to specify screen layouts and controls, and has several communication methods including data messaging and data push with LiveCycle Data Services. Flex also interacts with middleware such as ColdFusion, Java, PHP, and .NET.
AIR
Adobe Integrated Runtime (AIR) reduces the seam between being on-line and off-line by letting you deploy your AJAX- and Flex-based Web applications to the desktop, extending them to provide access to the local file system, system tray, notifications, and more.
Pre-Release Tour
Flex 3 and AIR are getting close to launch and in preparation, the Adobe Platform Evangelist team is traveling to select cities to show off their
great features and some brand new demos.
The sites closest to us are Atlanta and Nashville. Atlanta Adobe Flex User Group will host Ben Forta on 22 January.
Nashville Adobe Flex User Group will host Ben Forta on 24 January.
These free events are a great opportunity to see and hear about the highly anticipated release of Adobe Flex 3 and Adobe AIR during this special pre-release tour! In addition to giving away some one-of-a-kind Flex/AIR branded schwag, each event will also be raffling off a copy of Adobe Flex Builder 3 Professional (pending availability) and a full commercial copy of Adobe CS3 Web Premium. (See flex.org for more locations in the States and overseas.)
3 January 2008 Meeting
Human Help (Chat) via javascript and ColdFusion
Suppose you want to provide human help via interactive text to those who request it but aren't ready to use flash yet. javascript in a hidden frame can keep the main frame fresh, and ColdFusion backed by a database can provide the rest. We reviewed a working demonstration of this approach.