Web Software Architecture and Engineering – Life on the Bleeding Edge

Archive for September, 2008

Disturbing News – US Army Deployed on US Soil For First Time

This is no joke. You should be following this news.
Read more @ http://www.salon.com/opinion/greenwald/2008/09/24/army/

Session Info – There is Hope! New Hidden CF8 Method

Ok, trying to be as dramatic as I can be in my title about a new undocumented method in CF8 called “getValueWIthoutChange”.
You’ve seen me post before on how hard is to get underlying session information from CF.
When I saw this blog post by Terry Palmer, I almost had to blink twice. If you don’t know what I’m talking about, well, his blog entry has all the details.
I’ll be looking at the code closer and seeing if we can’t do some interesting stuff with it. For now, read on, and enjoy!

Remember Reactor ORM?

I don’t know how many of you guys remember Reactor? All the buzz has been around Transfer for the past couple years. We’ve been using Reactor since 2006 in production with little to no issues.
Now that Doug Hughes posted that he has handing management of the Reactor Framework to Mark Drew, its great news. Read more @ Doug’s Blog.
I do have a couple gripes about Reactor though, which I’ve expressed to numerous people, including Doug since 2006, and I wanted to make them public here.
One is that Reactor doesn’t support schema’s out of the box for MS SQL 2005. I can’t speak for other DBs. If every table in your DB is owned by DBO, i.e. DBO.tableName, then you are fine. But if you are like us, and have multiple Schemas, then you have to hack Reactor. What’s worse, the hack is SOOOO simple. Reactor goes through and figures out your DB anyway, and it can figure out the Schema and add it to its call, but it doesn’t. Simple right? But we’ve been running the hacked version for years because Doug thinks “Reactor is stable” so he decided not to change it to add this functionality.
More details @ http://www.reactorframework.com/ticket/42.
The other issue is Reactor creating CF UUIDs when it should be creating MSSQL GUIDs.
My one enhancement for Reactor would be suggesting caching for queries. When Reactor was released, we were still in the CF7 world. But now that queries with cfqueryparam’s can be cached, it makes sense to add that.
Excited to see some movement with the framework, and look forward to seeing what’s next.

Adobe Presenter Woes

Anyone have experience with Adobe Presenter 7?
We’re running quizzes, and have URLs we define for success/failure. I’m not sure how to have it execute any Javascript, which would be ideal. But even when we hard code URLs, one opens a new window, and the other works in the current window despite setting and selecting everything correctly.
Is it just me, or is Presenter WAYYYYYYY buggy?!

Univ. of Maryland's ColdFusion Coding Standards

Just like the Small Business Administration’s doc, I came across this completely by accident. Just like SBA’s doc, this one is pertinent to their environment, but worth a look nonetheless.Download it while you still can!

Enjoy!

British Airways CEO: 30 Airlines May Go Bust This Year

Yikes. Be wary travelers!
Read more @ http://www.independent.co.uk/travel/news-and-advice/warning-30-airlines-will-go-bust-this-year-928774.html?service=Print.

Google May Create Computer Navy; Data Centers in the Ocean

Interesting article on what Google may be planning to do to avoid taxes and lower costs.
Read more @ http://technology.timesonline.co.uk/tol/news/tech_and_web/the_web/article4753389.ece?print=yes.

Filling PDF Forms with CF8 to Create a Cert – Gotchas & Tips

Ok, so in my previous post on PDF forms with CF8, I tried really hard to figure why I couldn’t simply create a form in Acrobat, fill it out using CF, and make what I filled out like the other static text, so that the user can’t change the form.
Turns out CF8 CANNOT do this natively. Its a simple use case. In our case, we are creating nice certificates for our users when they complete and pass an exam.
To make things worse, the CF8 docs make it seem like its doable. With words like “flatten” make you think everything’s going to be all right. But it aint. Flattening obliterates all the fields, removing them all together, while the documentation says : removes interactivity. Hell yeah, its no longer interactive!
But there is hope. With a little iText (dont be scared, its simple) and Javaloader magic, I was able to get it to work.
Let’s run through the code, shall we?
Step 1:
Download Mark Mandel’s JavaLoader from RiaForge and iText (latest version).
Step 2:
Follow the code below. And that is it!

// First we load the latest iText JAR using JavaLoader. Adjust paths as necessary.
paths = arrayNew(1);

// Latest iText JAR
paths[1] = expandPath("iText-2.1.3.jar");

// Use Mark JL
loader = createObject("component", "javaloader.JavaLoader").init( paths );

// I've already named the blank cert form and the new populated cert previous. Adjust as you see fit.
newFile=expandPath(local.newPDFFile);
pdfFile=expandPath(local.PDFFile);

// Then some iText Magic
fos=createObject("java","java.io.FileOutputStream").init(newFile);
reader = loader.create("com.lowagie.text.pdf.PdfReader").init(pdfFile);
pdfStamper = loader.create("com.lowagie.text.pdf.PdfStamper").init(reader, fos);

// add some data to the form
pdfForm=pdfStamper.getAcroFields();

// We have 3 fields, first_last, orgCity_orgState, and date
// Here we are using the form scope, adjust as necessary.
pdfForm.setField("First_Last", trim(form.First_Last));
pdfForm.setField("OrgCity_OrgState", trim(form.OrgCity_OrgState));
pdfForm.setField("Date", trim(form.Date));

// Lets do a REAL flatten.
pdfStamper.setFormFlattening(true);

// Close out!
pdfStamper.close();
reader.close();

Step 3:
Last, serve up the file!

<cfcontent type="application/pdf" reset="true" file="#ExpandPath(local.newPDFFile)#" >

SBA's ColdFusion Coding Standards

Look what I found! The Small Business Administration posted a 126 page doc on their CF standards! Download it while you still can!

Enjoy!

Help Needed – SVN Merge / Upgrading to SVN 1.5

We’ve been using SVN 1.4 with SVNMerge.exe to manage merges between our branches and trunk. Each developer works in a branch and merge his stuff into the trunk, and also picks up any new stuff from trunk back into his branch. Has worked well for us.
We use a tool called svnmerge.exe. Now that SVN 1.5 is here, and our SCM (CollabNet, formerly known as SourceForge OnDemand) has upgraded, we’d like to migrate our merge history over to the new format.
Fortunately, svnmerge provides a tool for that. Unfortunately, its written in Python. Does anyone have experience with this?
This is what SVNMerge’s website states:

How do I migrate from svnmerge.py to Subversion 1.5′s Merge Tracking?
Use svnmerge-migrate-history.py to convert the merge history written by svnmerge.py into Subversion 1.5′s format.

 

Follow

Get every new post delivered to your Inbox.

Join 414 other followers