Calendar

««Jan 2012»»
SMTWTFS
1234567
891011121314
15161718192021
22232425262728
293031

Alert Email

Get a short email alert whenever a new entry is published.

Confidential, secure it's piece of cake to keep uptodate.

OpenBD 1.4 Official Stable Release

We've done it again. On our usual 6 month mark, we've reached the 1.4 milestone and today we released it out to the community as a whole. We are all very proud at what has gone into this release. We've rounded out the functionality most desired from the CFML developer as well as moving the language forward on a number of innovative fronts.

  • CFSCRIPT lang=java
    We've added a very exciting feature that extends the capability of CFSCRIPT by allowing you to use full inline Java that will be automatically compiled and dynamically linked in. Adding this feature will make it easy for people to drop to Java when the need arises, for example when integrating with 3rd party libraries. cfscript java
  • CFSCRIPT improvements
    We've completely rounded out the support for all the types within the CFSCRIPT block. This includes support for lock, thread, param, function, try/catch/finally, transaction amongst others. CFSCRIPT syntax
  • Core Memory/Speed Improvements
    A number of core engine changes have been made to reduce the overall memory footprint of the running engine. In addition, we've rewritten various pieces of the core engine to reduce code and improve speed. Template loading has got faster for example. CFSCRIPT blocks have gained a speed boost.
  • Lucene Upgraded
    We've upgraded the embedded Lucene engine to the latest 3.0.2 build. This adds a number of performance additions, as well as a smaller memory footprint for your collections. Existing collections are fully supported.
  • Off-Request Queries
    Off-Request queries is the ability to postpone the execution of a SQL statement until after the page-request has ended, by simply specifying the BACKGROUND=TRUE flag to the CFQUERY. This feature has been completely rewritten to support extreme high volumes efficiently that some of our users were pushing through.
  • QueryRequestMetrics()
    QueryRequestMetrics() returns the number of queries and the time spent in each query function for the current request. This is an extremely useful performance monitoring tool letting you see just how much time your request is spending in queries without all the overhead and pomp of the debugging tags.
  • FileUpload() / FileUploadAll()
    OpenBD has added full support for the new file upload functions, including added the ACTION=UPLOADALL to the CFFILE tag. We've rewritten the upload routines to make it faster and more efficient.
  • Network Functions
    It is amazing that the CFML language has lasted for so long without any sort of IP related network functions. We've added a whole host of IP calculation orientated functions. Things like figuring out if a given IP is within a given subnet or CIDR. network functions
  • ApplicationList() / ApplicationCount() / ApplicationRemove()
    If you are someone that uses the CFML application feature extensively then you will enjoy using these new helper functions to discover just how many applications, and which ones, are currently active. In addition, you can quickly discover how many SessionCount() a given application has, or as a whole across all the applications.
  • Console Debugging
    While we all love dump our variables out (CFDUMP or WriteDump()) sometimes its just a little overkill and generates way too much output. OpenBD has introduced the CFML version of Java's 'System.out.println()' with Console()
  • CFC Serialization to disk
    Wouldn't it be nice if you could save and load your complicated CFML objects (CFC) to disk and load them again at a later date? Or even shipping the saved-state version to another engine without requiring the source code of the original CFC? You can do this using DataLoad() and DataSave()
  • Core Function Named Parameter Support
    We're very excited to announce named-parameter support for the core CFML functions that we all know and love. So just like you can call UDF (User Defined Functions) by naming the parameters, you can do this to the core functions as well, with no performance penalty. This lets us fix one of the biggest inconsistancy issues that has plaged CFML for years. We haven't adjusted all our functions yet, but have started on this journey, and the official manual will let you know which functions support this feature. More details
  • Amazon DataSource Management
    We've made working with Amazon's Web Services much easier by standardizing on a single Amazon datasource that can now be shared amongst S3, SimpleDB and SQS operations. This allows you to register your AmzID and SecretyKey once and reuse them using the AmazonRegisterDataSource function. We've also updated the official manual for working with Amazon.
  • httponly cookie support
    We've added support for the httponly cookie. This advises the browser that Javascript processes should not be allowed to inspect this cookie value. We've updated the CFCOOKIE tag. Core cookies such as CFID and CFTOKEN have this flag automatically set from now on.
  • New Function: SetCookie()
    To facilitate the setting of cookies within CFSCRIPT blocks, we've added the SetCookie() function to the core language.
  • New Function: WriteLog()
    We've added the WriteLog() function to the core language. This is similiar to the CFLOG function that lets you quickly and easily maintain log files both at the tag and script level.
  • New tag: NOCFML
    This tag lets you specify CFML tags inside a page but defer the processing of them. NOCFML.
  • CFMAIL SSL Support
    CFMAIL gets a full SSL support
  • Updated: CFDUMP
    The tag CFDUMP has now got ABORT and OUTPUT support. This lets you quickly output the contents of the tag straight to a file for later viewing.
  • New Function: WriteDump()
    We've added the WriteDump() function to the core language. This is similiar to the CFDUMP function that lets you quickly and easily inspect variables.
  • New Function: SystemMemory()
    We've added the SystemMemory() function to the core language detailing the amount of memory that the underlying Java JVM is consuming.
  • New Function: SystemFileCacheList() / SystemFileCacheInfo() / SystemFileCacheFlush()
    We've added a set of functions such as, SystemFileCacheInfo() function, to monitor and work with the core engine file cache functions.
  • Function Rename: CsvRead() / CsvWrite()
    To be more consistant and on the recommendation of the CFML Conventional Wisdom, we've renamed our CSV handling functions to: CsvRead() and CsvWrite().
  • Function Rename: AmazonXXXX()
    Following on, we've renamed all the Amazon functions by prefixing the 'Amazon' to them all. Amazon functions.
  • ... over 50 bug fixes
    As well as the new features, we've addressed over 50 bugs or issues that effect the overall compatibility with other alternative CFML engines.

Available now to download and play OpenBD 1.4

We'd like to thank all our contributors, from all walks, for helping us move the world of CFML forward another few steps and enriching the CFML developers lives that little bit better. We are nothing without the feedback from our community as this release demonstrates, they are brimming with ideas and suggestions.

Work has already begun on 1.5 ... big things coming in April 2011!

Comments (4) . Wednesday, 27 October 2010

Write CFSCRIPT blocks with pure Java

Alan Williamson has just blogged about the recent additions to the core language that enables CFML developers to write their CFSCRIPT blocks in pure unedited Java.

Available in the 1.4a nightly build, this lets you take full advantage of the underlying Java platform complete with all the optimizations done at the compiler level.

You can read all about it here http://alan.blog-city.com/cfscript_java.htm

Remember this week, our 6 month release is coming around, 27th October. Much to see.

Comments (0) . Sunday, 24 October 2010

Get a little debugging help from OpenBD

Debugging CFML applications just got a little easier from OpenBD with the introduction of the Console() function. This is a function that will print out any input given to the main console of the running server.

<cfset ConsoleOutput(true)>
<cfset Console(cgi)>

will produce this output in the console that you run up OpenBD from:

+----------------------+--
|            HTTP_HOST | 127.0.0.1
|      HTTP_USER_AGENT | Mozilla/5.0
|          HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
| HTTP_ACCEPT_LANGUAGE | en-us,en;q=0.5
| HTTP_ACCEPT_ENCODING | gzip, deflate
|  HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7
|      HTTP_KEEP_ALIVE | 115
|      HTTP_CONNECTION | keep-alive
|         HTTP_REFERER | http://127.0.0.1/dashboard/?p_id=20031
|          HTTP_COOKIE | CFID=0; CFTOKEN=6B8E49D3-E6FC-4A0C-A7A38ADCC540FECA;
|      SERVER_SOFTWARE | jetty/6.1.15.rc5
|          SERVER_NAME | 127.0.0.1
|    GATEWAY_INTERFACE |
|      SERVER_PROTOCOL | HTTP/1.1
|          SERVER_PORT | 80
|   SERVER_PORT_SECURE | 0
|       REQUEST_METHOD | GET
|            PATH_INFO |
|      PATH_TRANSLATED | E:\_openbd_\index.cfm
|          SCRIPT_NAME | /index.cfm
|         QUERY_STRING |
|          REMOTE_HOST | 127.0.0.1
|          REMOTE_ADDR | 127.0.0.1
|            AUTH_TYPE |
|            AUTH_USER |
|          REMOTE_USER |
|         REMOTE_IDENT |
|         CONTENT_TYPE |
|       CONTENT_LENGTH | -1
|         CONTEXT_PATH |
|                HTTPS | off
|     CF_TEMPLATE_PATH | E:\_openbd_\index.cfm
+----------------------+--

Designed specifically for developers who are developing code on the same machine they run up the OpenBD server, you can use the console as a constant scrolling output display to simply drop variables into.

Query, Struct, and Array objects are all formatted specifically for the character console, allowing you to quickly see what is what.

The Console() function has been designed to be safely left in to production code. You can turn it on or off globally by calling the ConsoleOutput( true|false ). By default, the output is disabled.

CFML developers can think of this function as the CFML version of the Java "System.out.println()" for quickly throwing output to the console so you can see whats-what without interfering with the output of the HTML request.

Available in the 1.4a nightly build now.

Comments (0) . Tuesday, 24 August 2010

OpenBD gains Eucalyptus Cloud support

With the popularity of cloud services on the rise and deeper integration into our CFML applications, OpenBD has always enjoyed deep access with the likes of Amazon and Nirvanix when it comes to cloud storage connectivity.

We've just dropped a whole a new bunch of functionality into the core OpenBD1.4a engine, that completely replaces our Amazon S3 connectivity while providing support for open source cloud platform Eucalyptus.

Eucalyptus provides a complete open source alternative for many of the cloud services, enabling enterprises to run their own internal scalable computing clouds. This addresses many security concerns that a lot of companies are hesitant about when looking to employ external 3rd party cloud providers.

We would like to thank aw2.0 for donating their high-performance cloud connectivity libraries for accessing Amazon. OpenBD has been using aw20's libraries for SimpleDB and SQS for nearly a year now. With this library comes support for Eucalyptus as well as a number of extra features exclusive to the Amazon S3 service.

The following S3 storage specific functions have been added:

AmazonS3Delete Deletes the remote file
AmazonS3GetUrl Returns back a signed URL that gives people public access to a given file, with an optional expiration date
AmazonS3List Returns all the keys for this bucket
AmazonS3ListBuckets Returns all the buckets for this account
AmazonS3Read Copies the remote file from Amazon S3 to the local file system
AmazonS3Rename Rename the remote file
AmazonS3SetAcl Sets the ACL on the given object
AmazonS3Write Copies the local file upto Amazon S3

This functionality is now ready for use through our early OpenBD1.4 nightly release and also via our CFML stack OpenBDJam through its upgrade cycle.

Comments (0) . Thursday, 29 July 2010