The Harmonious Programmer

The Harmonious Programmer

Covering a symphony of technical and sometimes off-topic subjects

  • Home
  • OpenBD (CFML) on Google App Engine - Live Meeting June 8th, 2010 at 7pm ET

    • 8 Jun 2010
    • 0 Responses
    •  views
    • CFML Google App Engine Open BlueDragon Presentations
    • Edit
    • Delete
    • Tags
    • Autopost

    Just wanted to quickly blog that Matt Woodward and I are presenting on OpenBD on Google App Engine tonight at the Mid-Michigan CFUG at 7pm ET (about 30 minutes from the time of this posting).

    Where: http://breeze.msu.edu/mmcfuggoogle  (Enter as guest)

    When: June 8th, 2010 - 7pm ET

    Description:

    If you want to take advantage of the power of cloud computing but want to focus on applications instead of server infrastructure, you owe it to yourself to check out Google App Engine. Google App Engine lets you deploy applications to Google's infrastructure with the push of a button, and the best part is that for many applications it's entirely free of cost.

    In this presentation we'll discuss both the benefits and downsides of living in the cloud, outline how Google App Engine differs from other cloud solutions, and demonstrate how to build and deploy a simple CFML application to Google App Engine using Open BlueDragon, which is the only CFML engine compatible with Google App Engine.

    If you're interested in running your CFML applications in the cloud come get in on the ground floor, because with a few simple tips and tricks, it's all clear skies.

    • Tweet
  • Speaking at cf.Objective() 2010

    • 10 Jan 2010
    • 0 Responses
    •  views
    • Conferences Google App Engine Mach-II Open BlueDragon Open Source
    • Edit
    • Delete
    • Tags
    • Autopost

    I've been invited to speak at cf.Objective() 2010.  I am co-track chair for Tools & Integration track on the conference's content advisory board. I've gotten a sneak peek at the line up of sessions and speakers -- this year looks amazing!  This is definitely one CFML conference you do not want to miss.  I'm proud to announce that I will presenting on the following topics.

    Speedy Websites Through Better Front-End
    We'll be using tools like YSlow and Google Page Speed to diagnose issues in which we can improve the front-end performance of a website.

    Open Source Tools for Debugging
    The title is pretty self-explanatory, but we'll be looking a variety of tools that can be used for debugging web applications.  Everything from Javascript to HTML to webservices to file systems to Java.

    Living in the Cloud: CFML Applications on Google App Engine
    I'm co-presenting this with Matt Woodward.  Cloud based computing, while a buzzword these days, is something that very compelling. So come see how cloud computing differs from traditional application development and how it can open up a different world for your applications.

    Simplicity, Integrity and Velocity: What's New in Mach-II
    I'll be co-presenting this with fellow Team Mach-II members Matt Woodward and Kurt Wiersma.  We'll be looking at the all the features in the almost ready for gold release of Mach-II Simplicity (1.8), what is already there for Mach-II Integrity (1.9) and hopefully a sneak peek at Mach-II Velocity (2.0).

    I'll be sharing more on my presentations in the next few weeks, but take the moment to take advantage of the early bird pricing for cf.Objective() ends on January 29th -- so register now!

    • Tweet
  • New Query Functions Released (Open BlueDragon Blog)

    • 1 Jan 2010
    • 0 Responses
    •  views
    • CFML Open BlueDragon Open Source Software Development
    • Edit
    • Delete
    • Tags
    • Autopost

    New Query Functions released

    Published: 2:01 PM GMT, Friday, 1 January 2010

    We've justed finished the a whole new set of functions to help with the manipulation of Query objects and their respective datasources.

    The following table highlights all the current functions within the Query category available in the OpenBD (nightly build) release:

    DatasourceCreate Adds a new datasource to the system for use with any database functions. This does not persist over server restarts
    DatasourceDelete Removes the given datasource. Note, it will not remove any datasource that was registered with the underlying bluedragon.xml file
    DatasourceIsValid Checks to see if a given datasource has been previously registered using DataSourceCreate()
    QueryAddColumn Adds a new column of data to the exist query object, returning the column number
    QueryAddRow Adds the specified the number of rows to the end of the query
    QueryColumnArray Returns all the data in a query for a given column
    QueryColumnList Returns all the data in a query for a given row but as a structure
    QueryDeleteColumn Deletes the column from the query, returning the deleted column data as an array
    QueryDeleteRow Deletes the row within a query object. Modifies the original query object
    QueryIsEmpty Determines if the query has any rows
    QueryNew Creates a new query object with the columns past in of the optional types
    QueryOfQueryRun Executes a Query-of-Query against a previous SQL result sets. Function version of CFQUERY
    QueryRowStruct Returns all the data in a query for a given row but as a structure
    QueryRun Executes the given SQL query against the given datasource, optionally passing in paramters. Function version of CFQUERY
    QuerySetCell Sets the given column within a query with the value at the given row, or the last row if not specified
    QuerySort Sorts the query based on the column specified and the order criteria given. Modifies the original query object
    QuotedValueList Returns a quoted list of all the values, for a given column within the query, delimited by the value given
    ToCsv Transforms the query object into a Comma Separated Value (CSV) block
    ToHtml Transforms the query object into an HTML TABLE block
    ValueList Returns a list of all the values, for a given column within the query, delimited by the value given

    These functions will greatly increase the speed and efficiency to which you can work with Query objects.

    Many of the functions where available using other means. For example, QueryDeleteColumn could have been achieved by performing a query-of-queries leaving out the column you wanted to remove. This however had a huge overhead, as well as duplicating the data.

    You can read more about the DataSource functions over at Alan Williamson's blog.

    Thanks to Peter J Farrell for many of his suggestions.

    via blog.openbluedragon.org

    One word. Woot! Happy New Year!

    • Tweet
  • SES URLs on OpenBD GAE

    • 24 Nov 2009
    • 3 Responses
    •  views
    • Google App Engine Mach-II Open BlueDragon Open Source
    • Edit
    • Delete
    • Tags
    • Autopost

    I've been working on a brochure style site for a friend this week.  The budget is nothing and I'm doing this as a favor for my friend so it's my time. Instead of doing the same old, I decided that I should try something new and learn since I'm donating my time.  I hope to be posting more about using Google App Engine (GAE) as free hosting for CFML applications.  GAE is cloud computing and it does turn the usual concept of building applications on its head.  Since GAE's daily http request limit for the free account is 1.3M requests, I don't foresee any issues with overing over our quotas.

    The application I'm building is using Mach-II Simplicity (1.8) and is running on Open BlueDragon (GAE Edition).  My friend wanted to use SES URLs so I investigated to see if the SES URL filter that is usually bundled with Open BlueDragon was commented out in the web.xml file.  It was not even present in the file (whereas in the normal OpenBD edition it is commented out) so I was a little nervious this wasn't going to be possible.  Instead of wasting time researching, I used GAE's nifty one click (ok, it's two clicks and your Google account password) deployment option to just try by testing it.  Here is the snippet I added in my web.xml right at the top after the <web-app ...> node:

    
    
    <filter>
        <filter-name>SearchEngineFriendlyURLFilter</filter-name>
        <display-name>SearchEngineFriendlyURLFilter</display-name>
        <description>SearchEngineFriendlyURLFilter</description>
        <filter-class>com.newatlanta.filters.SearchEngineFriendlyURLFilter</filter-class>
        <init-param>
            <param-name>extensions</param-name>
            <param-value>cfm,cfml</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>SearchEngineFriendlyURLFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    
    

    Bam! I deployed it to the cloud and it worked.  SES URLs on OpenBD GAE is a go!  Thought I would share it with the world.

    • Tweet
  • CFML Documentation core to Open BlueDragon

    • 15 Nov 2009
    • 0 Responses
    •  views
    • CFML Open BlueDragon Software Development
    • Edit
    • Delete
    • Tags
    • Autopost

    The journey has started. Let me present the official resource for CFML documentation for Open BlueDragon:

    OpenBD CFML Documentation

    Key features:

    • JavaDoc like interface
    • Produced from the raw Java code; no external XML/wiki/sites to keep in sync
    • Hot links to any particular function (CreateDateTime)
    • See other functions/tags that fall in that category
    • Quickly discover which parameters/attributes are optional
    • Real look-ahead search
    • See all functions/tags with their parameters/attributes
    • Hot links to the OpenBD WIKI
    • User contributed comments (Moderated)

    We haven't finished annotating all the functions/methods yet, but even without that, you will find this an incredibly useful resource. I have even rediscovered functions I had completely forgotton existed!

    In addition, the CFML app we developed for this, is already being bundled in the nightly build in the web-app folder. So you can even run your own internal documentation, complete with your own private notes.

    We are annotating functions and tags as and when we get time, and already 80% of all the functions have been completed. For me, this is 10 years too late, for that I apologise. But we are here now. Never again will the documentation not match the implementation.

    via alan.blog-city.com

    This is great -- not that it's just available via the web, but it comes bundled with the engine so it is available locally. Sometimes it's hard to get documentation on something if you're not currently tethered to the internet at the moment.

    I've always thought it was strange that documentation in the CFML engine world is an "after" process. This approach is prone to error either from exemption (forgotten notes) or too much time elapsed. Unless you're a code maverick and dig around the CFML engine source code, documentation is the only way for people to understand new features and actually use them. Only after they are used do people find ways to improve them.

    I hope to blog more in the future about open source, licensing and the world of CFML open source which I believe is currently in a positive flux. So check back often or subscribe to my RSS feed.

    • Tweet
  • Open BlueDragon - Array Functions Added

    • 10 Nov 2009
    • 0 Responses
    •  views
    • CFML Open BlueDragon Open Source
    • Edit
    • Delete
    • Tags
    • Autopost

    We've just added a bunch of new array functions, some bringing compatibility with other engines and others suggested by Peter through discussions on the issue tracker.

      - ArrayFirst()
      - ArrayLast()
      - ArrayFind()
      - ArrayFindNoCase()
      - ArrayContains()
      - ArrayContainsNoCase()
      - ArrayGet()

    and recall the OpenBD function that was always there

      - ArrayTrim()

    All to be found in the nightly build.

    via groups.google.com

    This is where the miracles of open source shows. What Alan did not mention is that the ticket I mentioned some of these items on was only from a day ago. Now Open BlueDragon has an array function group that matches the available function group for structs. These little things are what makes a language a joy to work with. I like to call this the spit and polish functionality. Most open source CFML projects never get to this stage so kudos to the Open BlueDragon team for listening and more importantly being proactive on user suggestions.

    • Tweet
  • Protecting your CFML apps with CFTHROTTLE

    • 9 Nov 2009
    • 0 Responses
    •  views
    • CFML Open BlueDragon
    • Edit
    • Delete
    • Tags
    • Autopost

    You may have heard about the recent high profile attacks on celebrity accounts on Twitter, where by a young (enterprising?) chap simply pointed a brute force password dictionary attack to their login process. Twitter had no throttling process here to stop this from happening.

    How can you protect your own CFML applications from such an easy attack?

    BlueDragon introduced the CFTHROTTLE tag a number of years ago and naturally is available now in the core distribution of OpenBD. CFTHROTTLE was designed to stop repeated requests coming from a single source consuming too many resources. Developed for Blog-City.com and modelled on the (at the time) well known Apache mod_throttle module.

    via blog.openbluedragon.org

    Huh? How did I miss this (from last January)? I definitely going to check this out for an application I have on Open BlueDragon. I'll probably do this as a Mach-II filter as we've had some problems in the past with *bad* bots hitting the login page with bad credentials.

    • Tweet
  • About

    Hailing from the frigid tundra of Minnesota, Peter J. Farrell has a Bachelor of Music degree from the Peabody Institute at the Johns Hopkins University in Baltimore, Maryland.

    While studying music, Peter took his life-long interest with computers to a new level and started learning about web development technologies. He has been working with CFML since 2001 and is the lead developer of the Mach-II framework.

    Peter is a Senior Technologist for GreatBizTools, a human resources consulting firm. He and his wife, Allyson, live together in Minneapolis, Minnesota.

    326620 Views
  • Archive

    • 2012 (4)
      • January (4)
    • 2011 (10)
      • August (1)
      • May (4)
      • April (3)
      • March (1)
      • February (1)
    • 2010 (58)
      • December (1)
      • November (1)
      • October (1)
      • September (3)
      • August (4)
      • July (1)
      • June (4)
      • May (12)
      • April (15)
      • March (3)
      • February (5)
      • January (8)
    • 2009 (38)
      • December (14)
      • November (22)
      • October (2)

    Get Updates

    Subscribe via RSS
    TwitterFacebookLaconi.ca/Identi.caLinkedInFlickr
  • Resources

    • Lyla Captcha for CFML
    • Rooibos Bean Generator
    • Mach-II Framework for CFML
    • Presentations