Welcome to my blog! Feel free to post comments.
- Andrew


Visit Coldfusion Community


<< August, 2007 >>
SMTWTFS
1234
567891011
12131415161718
19202122232425
262728293031
Search Blog

Categories
Archives
RSS


Powered by
BlogCFM v1.14

Aflax - The Ajax Library for Adobe Flash
30 August 2007
Just came across this very cool library.  Using Aflax, you can essentially create dynamic Flash content on the client side, as well as affect flash content using javascript functions.  I havent had time to really dig into it yet, but i found it blog worthy :)  Check it out at http://www.aflax.org/
Posted by aschwabe at 12:00 AM | Link | 1 comment


rar7z.cfc : RAR and 7-Zip compression for ColdFusion
28 August 2007
ColdFusion has built-in support for .zip archives (after all, CF is built on Java, and all those .jar files are actually just .zip files).  This works well for out-of-the box compression for most applications.  Where it doesn't work is when you have to work with much larger files.  java.util.zip craps out if you give it files over about 2GB.  In the modern world, many files are larger.

So since I obviously came across this limitation, I explored options and determined that the world relies on rar and more recently on 7-zip for compression of larger files.  The most desired feature I was after was being able to split archives into smaller files.  My specific application was that I have a huge database backup file (9+GB) that I need to archive, but windows doesn't work too well with large files.  So with rar or 7-zip (or just 7z) you can compress large files and split them into smaller files so you can put them on a cd or dvd, etc.

Now that I had a working solution, integrating it into my app is the issue, so I decided to write rar7z.cfc -- a wrapper for both rar and 7z compression utils.

Here is version 1.0 -- lib_rar7z_cfc_v100.zip

This is of course released as-is no warranty, no support, blah blah, and eventually if people like this, I will officially make it open source.  Its a small piece of code, so who knows how useful it will be.

There are a few sample pieces of code to help figure out how to use is.  It is relatively easy:

Compress a file:

<cfinvoke component="lib.rar7z" method="compressFile" returnvariable="compressFile">
    <cfinvokeargument name="SrcPathAndFile" value="#ExpandPath(".")#\myfile.dat">
    <cfinvokeargument name="ArchivePathAndFile" value="#ExpandPath(".")#\myfile.rar">
    <cfinvokeargument name="VolumeSize" value="3500">
    <cfinvokeargument name="Timeout" value="90">
    <cfinvokeargument name="Engine" value="rar">
</cfinvoke>

List an archive's contents:

<cfinvoke component="lib.rar7z" method="listContents" returnvariable="listContents">
    <cfinvokeargument name="ArchivePathAndFile" value="#ExpandPath(".")#\myfile.rar">
    <cfinvokeargument name="Timeout" value="90">
    <cfinvokeargument name="Engine" value="rar">
</cfinvoke>

Extract files from an archive:

<cfinvoke component="lib.rar7z" method="extractArchive" returnvariable="extractArchive">
    <cfinvokeargument name="ArchivePathAndFile" value="#ExpandPath(".")#\myfile.rar">
    <cfinvokeargument name="OutputDir" value="#ExpandPath("./extract")#">
    <cfinvokeargument name="Timeout" value="90">
    <cfinvokeargument name="Engine" value="rar">
</cfinvoke>

If this cfc is helpful, tell people about it and leave comments!  If I know people are using it, I will work on it and improve it over time.  ciao
Posted by aschwabe at 5:29 PM | Link | 0 comments

Flex 2 Boot Camp
13 August 2007
I decided to attend a one-day bootcamp for Flex 2 in New York City which was piggy backed onto a RealWorld Java Conference.  Our instructors were Yakov Fain and Victor Rasputnis from www.faratasystems.com (they make some cool Flex add-ons you should check out).

It was a day of intensive brain crunching.  It seemed to me that it was definitely aimed at Java developers (how many CF developers know what ant is?) more than anything else.  A lot of the topics covered were already very familiar to me, including a lot of the Flex code itself -- at least until the second part of the day.  What was significant about the second part of the day was the software engineering insight as to how to approach flex apps over the "out of the box" approach Adobe (and formerly Macromedia) used to present. 

We covered topics such as compiling re-usable code into SWC files, logging and optimizing data traffic between your DB and Flex using ADF instead of slower verbose web services.  These were topics I haven't seen covered anywhere else.

Overall money well spent, though there were some clear holes in the offering as a whole.  We jumped into advanced topics pretty quickly; we only covered a few simple UI components; Mac problems.  Don't get me started on the Mac problems....  word to those out there:  Macs may me great for desktop publishing, but dont expect things to run smoothly when you are trying to develop enterprise class client-server apps on your Mac.  nuf sed.

The Good:
- Low cost (around $1000)
- No long hotel stays
- Good material (enterprise application architecture, modularized code, technique)
- Good foundation of when/how to use Flex for an app.
- Excellent coverage of ADF and communication with server side apps
- You walk away with working code on your laptop
The Bad:
- Don't expect all the dev software it to work on your Mac
(I use a PC -- with no problems i might add -- , so im not "talking" about myself here)
The Mac delays caused us to lose about an hour of instruction time -- which for a single day seminar really hurt.... (hey Yakov and Victor -- if you see this, maybe a discount is in order for future bootcamps?)
- Topics jumped from relatively simple to very advanced in the blink of an eye
- Not quite enough coverage of the UI components in Flex
- No coverage of "states" in Flex (pretty essential if you ask me)
- Not enough coverage of http and web service connections (since 90% of flex developers will use this exclusively over ADF/server side components)
Hope this is helpful.  Watch my blog for announcements of new exciting flex stuff I am building!
Posted by aschwabe at 12:00 AM | Link | 0 comments