<< November, 2018 >>
Related Links
Search Blog

Photo Albums

Powered by
BlogCFM v1.1

31 July 2009

CFUnited 2009 - Why I want to go

CFUnited is the best Coldfusion Developer's conference out there I think.  I've been to several CFun/CFUnited confernces in the past.  I skipped last year so I could go to MAX (and then had the MAX conference pulled out fron under me), and was scheduled to go to CFUnited this year but had that pulled out from under me too due to budget cuts at the University.  So I'm not going.  At least not on the University's budget.  And not on my own budget if I have to pay for my own registration.

But thanks to  Ben Nadel, I might yet have a way of going.

I supposed to look at the list of topics and pick one that I really want to attend and why.  This is extremely difficult because there are a multitude of topics that I'd like to go to.  You see, I have two jobs.  I have a "real job" where I work 40 hours a week and get salary and benefits at Duke University.  And then I have a freelance job with Classcreator.com, a web site tool for planning class reunions.  Most of the topics that would interest me are related to Classcreator - scalable applications, geolocation, performance tuning, APIs, etc.

I think, if I have to pick one, I'll go with Geolocation with Coldfusion.  We're still building out Classcreator, but eventually we're going to need to target products and services towards a user's physical location.

Or maybe Design Patterns and Coldfusion - a good generic topic for solving problems.  And let's not forget the SciFi BOF Session (or is it ScyFy)?  We must discuss how we felt about the end of Battlestar Galactica, or maybe we can talk about the upcoming Stargate Universe!

Does it count as an entry if i can't make up my mind?

BTW if I win a ticket I'm going to have to share a room with someone!



Posted by rickroot at 12:41 PM | Link | 0 comments
31 January 2008

Ben Forta Lied to Me!

Not Really! Please don't hurt me!

No, he didn't.  Not really.  But I made you click!

I was using hyberbole when I said it in #coldfusion a little while ago, and I should've known better, because sometimes jokes don't travel well over the internet, particularly when you're referring to the much loved Ben Forta.  Hey, I go out of my way to see Ben when he comes to town too.

Here's what happened.

You all know there's a lot of confusion in the CF world regarding Flex Data Services.  Or Livecycle Data Services.  Or BlazeDS.  Might as well through in Flex Remoting too.

Well a week or so ago, Ben presented about Flex 3 and AIR at the Triangle User Experience group (ie, the local flex user group), and talked some about BlazeDS, the open source version of LCDS - with yet another name.

I asked whether or not I could install BlazeDS on a Coldfusion server, and Ben asked "Are you using CF8?"  I said that we were, and he said I didn't need BlazeDS because CF8 comes with a "full version" of LCDS.  This surprised me because I thought it came with some kind of limited version of LCDS.

Well, it's a full version only in the fact that it's exactly the same as the commercially licensed "full version" of Livecycle Data Services.   But it's the EXPRESS edition, which means you can only use it on a single CPU.  Legally.  Technically you can run it on a dual CPU machine - nothing will stop it - but you'd be in violation of the license agreement.

So it's really only a full version if you don't consider the licencing limitations.  And in the real world, aren't most people buying dual CPU machines for production purposes?

And actually, read this, from the Adobe web site:

LiveCycle Data Services ES Express is a free limited-production version of LiveCycle Data Services ES (formerly Flex Data Services 2) that allows the deployment of any single application on a single, nonclustered CPU.

If that's the same version that's included with CF, not only is it limited to a single CPU, but it can only be used to deploy a single application.

No, Ben didn't lie to me.  But the fact is, I cannot LEGALLY use the included version of LCDS without doing some very funky things to restrict the process to a single CPU, and I could only deploy a single application with it.

For clarity, here's how I understand things.

  • BlazeDS - unrestricted, open source version of LCDS that includes "remoting" and "messaging" components.  Suitable for connecting any Flex/AIR app to just about any back-end that it gets ported to.  For sure right now it supports Coldfusion and Java remote objects, maybe others.
  • LiveCycle Data Services - commercial product which includes remoting and messaging modules, as well as "Data Synchronization" and "Data Management" modules.  This was formerly known as Flex Data Services.  There are three editions/versions of LiveCycle Data Services:
    • Trial Edition - free, unrestricted, time-limited version. No technical limitations beyond the time limitation.
    • Express Edition - free, full-featured version that is limited by the licence agreement to a single CPU, and deployment of a single application.  It is a separate product that you can download free, and it is included as an optional product with Coldfusion 8.
    • Regular Edition (not titled such, it's just "LiveCycle Data Services ES") - unrestricted commercial version.  In the past there was a pricing model that allowed you to have 100 connections or unlimited connections.  I'm not sure if that pricing model still applies.

I hope that's right, someone feel free to correct me.

Posted by rickroot at 1:43 PM | Link | 0 comments
02 May 2007

End User Reporting with Sungard BSR Advance

So, I work for Duke University's Alumni and Development Systems group.  We provide and support technology infrastructure for fundraising across the entire university and health system.  While the Office of Information Technology (OIT) technically manages our mainframe in terms of performing backups, dealing with disaster recovery, etc, we support and train staff to use the systems, and provide customization, integration, and additional tools.

Our base system is an old version of BSR Advance (BSR is now SunGard Higher Education).  It's a mainframe only system for which we developed a windows GUI using ClientBuilder.

Many years ago, we also developed a visual basic application that allowed our development officers to generate reports very easily.  Nothing so complicated as Crystal Reports, where you would have to know things about table structure and field names and the like.  It was essentially a form application in which you entered criteria - mostly through the use of checkboxes - in order to generate a report.  For example, you could get a file drop of all the alumni who graduated from the Engineering School between 1990 and 1999, were active (ie, not deceased or no contact).  Or all the donors who gave at least $1000 to the art museum.

The reports themselves are generated from our reportin database, which one of the programmers on staff wrote a bunch of Cobol / JCL to generate delimited files on a nightly basis, which we import into SQL Server.

Apparently, this is a kind of tool that nobody else has.  My boss says many other universities using the BSR Advance system have "report writers" - staffers whose sole job it is to generate such reports on request, and most of these schools have several of these staffers - 4, 5, or even 6 full time staff dedicated to generating reports.

Thanks to this reporting application, we have one.  The vast majority of the reports that our development officers get are self-generated, and that's really cool.

We're actually in the process of re-inventing this reporting application using Adobe Flex technology and Coldfusion as a backend.  It will actually use the same database that the current Visual Basic application uses.  The advantage of the Flex-based application is that it won't require client installation.  This app gets installed in many departments across the university and health system, and in this day and age, most uses don't have the ability to install software on their desktops, so it becomes a logistical nightmare.  For that reason, we avoid doing releases unless absolutely necessary.  With the Flex app - being web-based - we can fix bugs and add features and have them immediately available to all users, with no new software installation required.

We'll be able to add many new features, too.  I'm actually very excited about it.

Posted by rickroot at 12:39 PM | Link | 0 comments
27 February 2007

Help Evangelize Coldfusion!

Or Bluedragon, Railo, The Smith Project, etc..

Since my blog is aggregated by MXNA, I thought it'd be worthwhile to blog about this item from yesterday's cf-talk.

Rey Bango announced the opening of a new web site - www.gotcfm.com - intended to chronical and list web sites all over the world that are powered by Coldfusion.

So if you've built, manage, or maintain a web site that uses CFML, whether it be powered by Adobe Coldfusion, Bluedragon, Railo, The Smith Project, or whatever, get it listed!

Posted by rickroot at 10:24 AM | Link | 0 comments
16 February 2006

Compiling Custom Event Gateways For Dummies

First off, let me say that I am not a java programmer.  I've done a lot of java integration in coldfusion, but that has little to do with actual java programming.

I recently had a need for a very simple event gateway - one that would basically make a CFC method call every XX seconds.  Kind of like a scheduled task, except scheduled tasks unnecessarily tax the web server and run no more often than once every minute.

There were many "GOTCHYAS" along the way in this experience and I want to share some of them.  If you, like me, are not a real java programmer, you may find some of these tips useful.

I chose to start with the DirectoryWatcher gateway - an actual working gateway that read a config file where things occurred on an interval.  In the section where it read the properties file, I removed all the properities I didn't want, leaving only two... "interval" and "callFunction" (which was originally named "changeFunction"). Then I removed all the unnecessary code that involved checking for the existence of directories and getting directory listings and such.  Then I tried to compile:

Problem #1 - no java compiler

Coldfusion includes the Java Runtime Environment (JRE), but not the SDK, which is what you need to compile things.  The solution here was simple - download the JDK from http://java.sun.com.  Make sure you get the same JDK version that coldfusion is running - in my case, 1.4.2 (technically, 1.4.2_05_b04, but Sun only made 1.4.2_10 available, the latest release, and that seemed to work).

So I got it installed and tried to compile.  And I got 24 errors.  I didn't even realize there were that many lines in the code!  Most of them said "Can't resolve symbol" or "Unable to resolve symbol" or something.  I did a little googling and found out that I needed a class path.

Problem #2 - defining your class path

Well, the java compiler is kinda stupid, and doesn't know where all the tools on your system are located, so you have to tell it by setting a classpath environment variable, or putting the classpath into the command line.  To figure out what jar files had to be included, I looked at $CFHOME/gateway/src/build.xml and saw 4 jars that had to be included, so I set my path like this:

PLATFORM NOTE:  I'm using Linux, and my shell is bash.  I'm not here to tell you how to set environment variables in UNIX shells or windows.  If you need help properly setting environment variables, you might find this classpath tutorial helpful.

export CFHOME="/opt/coldfusionmx7"
export CLASSPATH=".:/root/j2sdk/lib/tools.jar:$CFHOME/lib/cfusion.jar:$CFHOME/lib/log4j.jar:$CFHOME/runtime/lib/jrun.jar:$CFHOME/gateway/lib/examples.jar"

A couple important things to note:

  • each entry in the classpath is separated by a colon, and there should be no colon at the beginning or the end of the classpath
  • the first entry should always be a period, telling java and the java compiler to always look in the current directory.
  • The classpath must always include the tools.jar file, or pretty much nothing will work!  I forgot this part initially and it took me a bit to figure it out.

Okay, so my classpath is now set and I tried again.

Problem #3 - weird bug involving abstracting and overriding the accept() method

The DirectoryWatcher gateway example is extends the EmptyGateway class - but it also implements the FilenameFilter class.   Since i'm not doing any work with filtering filenames, I had to remove the "implements FilenameFilter" from the public class declaration in the source file.

After doing this, I compiled successfully.  Yay!  The documentation says to put it into a jar file and then place it in the gateway lib directory.

jar -cf SimpleGateway.jar SimpleGateway.class

Worked fine and I moved it to the appropriate lib folder, and restarted Coldfusion.  Consult the CF documentation for the appropriate folder, it's different if you're using CF standalone or j2ee.

So I then logged into the CF Administrator to add the Gateway Type.

Problem #4 - full java class?  What the heck does that mean?

I had no idea what to put here.  The documentation didn't help either, so I looked at the DirectoryWatcher class in the CF Admin, and it said the class was "examples.watcher.DirectoryWatcherGateway".  I looked at the source code for that class, and saw "package examples.watcher" and figured that this must be where it came from.  So I changed it from "examples.watcher" to "package com.opensourcecf.gateways", then moved my files around a bit, so that my source code path was $CFHOME/gateway/src/com/opensourcecf/gateways/SimpleGateway.java

I then recompiled without error again, copied it to the gateway lib folder, and restarted coldfusion again.

I was able to successfully add the Gateway Type using the full java class "com.opensourcecf.gateways.SimpleGateway"

What fun!

I'll be releasing my SimpleGateway class as open source, as people might find it useful, and when I do (maybe tomorrow), I'll blog about it at www.opensourcecf.com and I'll post a direct link to the blog entry here.

Posted by rickroot at 8:19 PM | Link | 8 comments
17 January 2006

the Truth About Ray Ornhay's Rabid BlogCFC

A friend of mine, who authored another coldfusion blog product called BlogFusion, pointed me to a discussion going on in the cf community about Ray Ornhay's Rabid_BlogCFC software.  You see, Mr. Ornhay took Ray Camden's BlogCFC product, made a few changes to it, and is distributing the code under the name "Rabid BlogCFC" as encrypted source code.  If you want the unencrypted source, he wants you to pay for it - even though the vast majority of the work was done by the original author.

Not that he's not legally entitled to do so under the various open source licenses, probably including the extremely informal one that Ray uses.  Still, it violates the intent of the open source movement - especially given how few changes he actually made to it.

As you may know, I wrote the blog software that this blog is based on - BlogCFM.  I used a very unrestrictive license because I felt if someone wanted to put a lot of time and effort into my basic blog tool to develop something worth paying for, then I don't have a problem with that.  I'd like it if they asked me but they wouldn't have to.

But if someone downloaded my blog, rebranded it as their own without making a lot of changes or updates.. well, that would kinda tick me off.

At any rate, I can say that Ray Ornhay has taken someone elses work and is trying to profit from it.

Don't use his blog.  try the original blogCFC:

 Because my blog uses the nofollow attribute to help dissuade comment spammers, I'll post any interesting links posted below here: 

Joe Rinehart
Dynamic Flash
John Beynon
Wayne Graham  good point about Copyright and Intellectual Property
Stephen Collins
Sean Corfield
Ray Camden (official blogCFC author)

John Wilker
Robert Blackburn
Pete Freitag (Open Source Licenses)

Posted by rickroot at 12:47 PM | Link | 24 comments
01 August 2005

Note to self: Using CFCONTENT to force file download instead of display

Sometimes I see something useful and I know I'll never remember it, so I'm gonna post it here on my blog.

If you want to force download a document instead of displaying it inline (for example, a jpg image, or a word document (which IE will display inline!)), use the following code in a CFM file:

<cfheader name="Content-disposition" value="attachment;filename=test.jpg">
<cfcontent type="image/jpeg" file="D:\htdocs\filecabinet\test.jpg">

Poof!  Instant download dialog!

Posted by rickroot at 10:40 AM | Link | 4 comments
30 July 2005

BlogCFM 1.10 Released

I just released the latest version of my coldfusion bloging software, BlogCFM.  That's what powers this blog.

It's free and open source.  You can find out more at www.blogcfm.org

Posted by rickroot at 9:04 PM | Link | 14 comments
28 July 2005

CFFM 1.11 Released - Coldfusion File Manager

I released CFFM 1.10 yesterday and followed it up with CFFM 1.11 today.

Numerous bug fixes, made the code more CFC oriented and somewhat cleaner, and (with 1.11) added language support.  Several people have volunteered to write translations which should be available soon.

For information and a demo, go to www.webworksllc.com/cffm

The project page is at www.cfopen.org/projects/cffm

CFFM is free, open source software.

Posted by rickroot at 9:11 PM | Link | 1 comment
15 July 2005

Blog Changes

I've upgraded the version of BlogCFM that I'm running to the latest (v1.1).  I changed the design as well, I hope you like it.
Posted by rickroot at 9:32 PM | Link | 1 comment
24 March 2005

Do you like my Blog?

Blatant self-promotion

Well, my blog is almost complete.  You see, I wrote 95% of this blog tool, and personally I think it's a pretty kickass blog app. 

If any of my family reads this, they're probably wondering what the hell a Blog is.  My wife had to ask me that a few months ago.  She's so out of date.

For the uninitiated, a blog is a web log.  An online journal.  A diary.  A platform for speaking one's mind, even if nobody is listening.  (Yes, for all I know, nobody is reading this!)

Anyway, the application is called BlogCFM.  It is written in CFML (aka Coldfusion) and works on Coldfusion server and Bluedragon server.  I know that means nothing to 90% of you.  But if it means something to you, ou can find out more about it here.

Posted by rickroot at 11:52 PM | Link | 6 comments
19 May 2004

Using JasperReports with Coldfusion MX 6.1

I recently found myself in a situation where I needed to do some report generation with Coldfusion, but more complicated than plain HTML output could really handle.  CFREPORT is poorly documented and has extremely limited functionality, and we don't want to fork out a ton of cash for a web based reporting tool like Crystal Enterprise.

Enter JasperReports, a free, open-source, java-based, full-featured reporting engine with the ability to generate PDF documents, Excel Spreadsheets, HTML documents, and other output formats.

Posted by rickroot at 12:00 AM | Link | 11 comments