The best part about FOSS (Free and Open Source Software) is not that it is free.

I used to look at FOSS as a means to get free software: MySQL, Apache, Eclipse etc... FOSS is part of my day to day affairs and I dare say the best thing to ever happen to software and software developers.

But for me, FOSS is the best programming howto guide there is. It is like a living text book that is always getting better. I have learned more from reading other peoples source code than I have from any book, blog post or article. Being an autodidact, reading source code makes much sense than reading the English words used to describe the programming concepts.

Just this week I was asked to R&D a bunch of stuff and I found solutions for all the CF stuff by going to either CFLib.org or RIAForge.org. (Mad props to Ray Camden for making those sites. You saved my ass twice this week dude! Rock On with your bad ass self!)

Those sites are gold mines for CF programming knowledge. I have been turned on to so many new ideas and concepts by the folks that have shared their work that I want to give a shout out and thank you to y'all.

Thank you!!



Transfer now works on Railo (And is Insanely fast)

I had read on the Railo Mailing list that Transfer now works on the latest release of Railo 3.0.1.000. So I went to check it out and loaded up the TBlog example app that comes with Transfer and much to my amazement it loaded up between 3-5 seconds (with Debugging on). I went and fired up the same app on CF 8 and it took 25-30 seconds (with debugging on as well). I know that having debugging turned on (Especially with CFC's) really slows down CF serve and is in no way indicative of how the app will perform in production. That, and that there is a significant performance cost when the CF server (re)creates the Java classes...

But Daaaaaa-yum! That is almost a ten fold difference. And when I am developing I almost *always* have debugging on.

I have also been testing a lot of apps (mine and others) on Railo to see what works and what doesn't. So far so good. The only significant problem I have had was with how Railo handles Structures on Rick Roots ColdFusion File Manager (CFFM). But other than that, most all of the apps that are part of my day in day out work day work flawlessly with Railo.

Oh yeah, the latest version of Railo supports CFAjaxProxy. That SO ROCKS!!!

Way to go Gert, Michael and the rest of the Railo Crew! I CANNOT WAIT to see Railo 3.1 on Nov 28.

InfoWorld story: Developers rank best application servers - Adobe ColdFusion among their favorites

This is AWESOME!! The story was included in the "InfoWorld Platforms Report" Newsletter.

Developers rank best application servers
"The 'user's choice' for application servers ranked Adobe ColdFusion, the open-source Apache Geronimo, and Oracle WebLogic Server among their favorites"

http://www.infoworld.com/article/08/10/22/Developers_rank_best_application_servers_1.html?source=NLC-PLATFORMS&cgd=2008-10-22

This has been a LONG time coming. I am guessing that CF isn't all that dead. In fact it may be, to quote Adam Lehman, the "Best dead language... evar!"

Just added >> CF_jscalendar & FileUpload.cfc

CF_jscalendar is a port of jscalendar from dynarch.com for CF 5 and above.

FileUpload.cfc is a very simple File Upload component that uploads a file and sanitizes the file name for Windows servers. It was tested on on CF 7 and above and should work on Railo 2+ and (Open) BlueDragon 6.x and above.

Update: Tuesday, 10/21/08 I added set_SQL_permissions.cfm.

It is just a little throw away script that creates the SQL need to grants SELECT, INSERT, DELETE, UPDATE permissions to tables for MSSQL. Setting permissions using the SQL Server Management Studio, in a word, sucks.

Setting up Railo 3 Community in a Shared/Dedicated hosting Environment.

I wrote up a how-to on getting Railo 3 to run with a Hosting control panel (Plesk). Instead of trying to format it to look nice on the blog I published it using Google Docs:

http://docs.google.com/View?docid=dhn7948x_151dxf7v7f6

Yeah, I know. Plesk has issues. I got a free 10 license version with the VPS and I wasn't about to go R&D and shop for a free Hosting CP nor was I about to set up 8 domains by hand. I would much rather have had H-sphere.

Anyhoo. Many thanks to Gert from Railo for letting me swipe some of the images form his interblarg.

Running on Railo - Breaking Radio Silence

I moved my blog to a new VPS and it is running on Railo 3.0 Community. Hell YEAH!!!

I have a back log of blarg entries to get posted as well. I also posting a bunch of contributions to the community with more to come.

Uploaded so far are

- My CFEclipse Snippets
- Some UDFs
- CFC Generator Lite

CFC Generator Lite is a HTML front end for creating cfc's for an entire database in one shot using Brian Rinaldi's outstanding Illudium PU-36 Code Generator.

In the pipe:

A how-to on getting Railo 3 running in a shared hosting environment with IIS on 2003 server using a hosting Control panel (Plesk 8.3) including gotchas and their work arounds.

A How-to on creating a simple ORM by abstracting your database using Brian Rinaldi's outstanding Illudium PU-36 Code Generator.

Caching Functions: Creating variables that are executable.

This is too cool. Either that or I am too much of a geek; or both.

There was a discussion of CF_Talk about the best way to make use of reusable functions (User definable Functions or UDF's). Dominic Watson pointed out you can "declare" the functions with out executing them and then store them in the application scope (i.e in memory). It is like storing a variable in memory except that they contain executable code instead of data. Much like how you can instantiate a CF class (component) and then stick the instance of that object in memory. This makes sense with components because of the overhead involved with creating an object. So instead of creating the object every time you want to use it, you cache it in memory.

Well is seems that you can do the same thing with functions.

Now that is a very cool idea. What is even cooler is that you can then create a structure (for ppl not acquainted with structures, think of them as a one dimensional array with their own scope, like FORM or URL variables) and then store the functions in the structure so they are all in one neat little package. I called them "mini CFC's".

<!---
The function onApplicationStart and fires up when ever the app is started
--->

<cffunction name="onApplicationStart">

<!---
Include your UDF's
--->

<cfinclude template="theUdfs.cfm">
<cfinclude template="theUdfs2.cfm">

<!---
Create a struct to hold the functions
--->

<cfset application.udfs = StructNew()>
<!---
Load the functions into the struct and load it in memory (The application scope)
--->


<cfset application.udfs.MyFunction1 = MyFunction1>
<cfset application.udfs.MyFunction2 = MyFunction2>
<cfset application.udfs.MyFunction3 = MyFunction3>
</cffunction>

<!--- Then, to avoid verbosity when calling a udf, I'd add this line in OnRequestStart() --->

<cffunction name="onRequestStart">
<cfset variables.udfs = application.udfs>
</cffunction>

I asked Dominic more about it and he said

When ColdFusion processes a 'page' with a udf (either cffunction or scripted 'function'); the function is parsed and created as an *object* in memory (a special function type object). By 'calling' the function without the () you are actually referencing the object itself rather than invoking the function that it represents. So, the following code just makes the application.udfs.MyFunction1 variable a reference to the function named 'MyFunction1':

<cfset application.udfs.MyFunction1 = MyFunction1>

Dave Watts (always a wealth of knowledge) further elucidated on this matter and said that:

This is a pretty good explanation, but it's even simpler than that. Functions are really just one more type of variable, just like queries, structures, arrays, etc. They contain executable code instead of data, that's all. And, you're not "calling" the function unless you have the parentheses after the function name:

You can read the full thread here:

http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:56438

I am almost there

I have been working on yet another code generator for ColdFusion for the last six months. I have learned a lot. When I am done.... it will read a databse and using the metadata and it will create a working app using the ENTIRE database. It is like a mini Ruby on Rails.

You point it to the data source and a destination dir, press enter, and you have a working app. You can go from zero to working admin for a 20 table database in about a minute.

It also:

  • Generates client side validation based on the data type (string, numeric, float, date, etc.).
  • Generates time and date pickers for date/time fields.
  • Generates inline wussywig text editors for Text fields
  • Automatically generates and populates drop down boxes using foreign keys .
  • Has optional secondary validation using key words in the column name (like email, phone, fax, zip, etc.).
  • It is almost entirely Object Oriented and uses a very simple MVC methodology.

I am pretty pumped and have been working on this every chance I get. When I get it done, (It really snow balled from what seemed to be a very simple idea), I will be able to crank out a working app, with a couple of clicks, in a matter of minutes.

And yes, I will be releasing it open source.

Blue Dragon J2EE Goes FOSS

Yes! Finally there is a mature version of CF supported by a stable company that is FOSS.

I love CF. I dreaded the thought of having to go back to PHP or learning .NET or Java as main programming platform. I like PHP, ASP, .NET and Java well enough. But CF has spoiled me. It just takes so much more code/work to write apps in these languages. Besides, I know CF like the back of my hand. I *think* in CF. I dream in code. I program in my sleep and when I dream it is genearly from a CF stand point.

I have been learning Java due to my FUD with "CF is dead" and the general lack of jobs for CF in my area. I just got started with Java and to bring my chops up to speed, with my CF chops, on any of the above, will not happen with out some serious effort.

BTW, I never had FUD with CF until I started looking for a job outside my geek friend circle last year. But that is another story for another time.

But no more. With Blue Dragon J2EE going open source it means that all the companies and dept's that balked at the $7500 per box cost for Enterprise CF have no (good) reason to do so anymore. The $1500 jump in price for Adobe's Enterprise version really pissed me off seeing that it effectively priced itelf out of the ball park for most (mom and pop or local) ISP's and hosting companies and grass root startups (like my past efforts).

The one thing I have learned while learning Java is how powerful (and easy) CFML is. When I started learning Java (and OO programming in general) my eyes became wide open and realized how little I knew and that I was just scratching the surface to the potential of CF.

A few years back, I had foolishly thought that I had done pretty much most every thing that could be done with CF. And at the time, just around when cf 6 was released I probably was pretty much versed in 80-95% of the language to the point where it was rote.

Imagine how stupid I feel now with a ~year of OO under my belt and still not knowing shite.

So I DL's the J2EE version of BD, read the docs. I deployed it on TomCat and got busy.

First thoughts: TomCat was at 23 megs just sitting there. With BD it hit about 33-35 megs, again, just sitting there. It was at about 45 megs running some simple CFM's, i.e no CFC's. I did beat on it a bit (looping over 10,000 items) but it never went over 45 megs. Adobe CF 8 on tomcat hovered at easily twice that and the stand alone version (on apache) kisses 200 megs (sitting there) not including the ODBC, .NET bridge or search services,

All I have to say is that I am thoroughly impressed with BD. Aside from some minor syntactical difference, and missing some minor functionality from Adobe's offering; I am very, very impressed.

In fact, after reading the docs, the enhancements that BD brought to the plate (for CF 7.x) more than makes up for its compatibility issues.

So hello BDJ2EE. Me love you long time.

My script goes to eleven.

Whiskey Tango Foxtrot?

This reminds me of debugging PERL back in the 90's.

Whiskey Tango Foxtrot

More Entries

That's right bitches!! Free ColdFusion!!

Recent Entries

Calendar

Tags

NAVIGATION

Recent Comments

RSS

Search

Subscribe