Skip to main content

CFUN 1: Forta on Blackstone

I wound up with a HUGE document when I summarized most of the sessions I attended at CFUN, so rather than having one large post that no one will read, I'll have several large posts that no one will read! ;-) Some very cool stuff about Blackstone was covered by Ben Forta at CFUN this year, so read on for more ...


nce it sounds like we aren't going to be doing the Breeze presentation of Ben Forta's Blackstone (CF 7) tour on 7/8, I thought I'd take a moment and summarize the new features he revealed today at his keynote presentation. Some were things we already knew about but he gave a lot more detail, and one item was revealed for the first time at CFUN and won't be discussed during the rest of his UG tour (although he specifically said we were allowed to spread the word). I know there were a couple of other guys from our UG at CFUN so I'm sure they or I will be happy to discuss more details at our next meeting. (I also ran into a couple of folks from Dallas who didn't even know there *was* a DFW CFUG, so I encouraged them to start attending!)

GENERAL DISCLAIMER: All this information is subject to change and may or may not be included in the final Blackstone release.

The first thing that was revealed about Blackstone was a bit more specific timeline. Right now it's in a very limited alpha. Later this summer or early Fall, an updater for CFMX 6.1 will be released. The updater will basically be a roll-up of all the hotfixes that have been released for CFMX 6.1 as well as some significantly improved database drivers. According to Ben Forta this isn't even a recommended release, but they found great improvements in the database drivers for Blackstone so they'll be releasing them for use with CFMX 6.1.

In Fall 2004 there will be a relatively open beta that will start out with a small number of people but quickly grow to a large number. He said they were already very pleased with the alpha so everyone at MM is feeling great about the product. Then sometime in the December/January/February timeframe they'll likely ship the product.

As for goals for Blackstone, one of the things he emphasized is that this is the first true benefit in CF of the Allaire/Macromedia marriage. When the merger first happened CF5 was just about to ship, and MX was of course a largely architectural release to get CF on the Java platform, but with all that work behind them they're now able to focus on fantastic new features that incorporate the strengths of CF as a server-side technology with the strength of Flash as a presentation layer technology.

Specific goals for Blackstone that he mentioned:
1. Make new users more successful: new users of CF is currently the most significant area of growth in the CF community. (This is great news!) He didn't get into many specifics but mentioned better installation, wizards, etc.

2. Give existing developers features they can really use.

3. Help us as programmers make our users happier with our applications (this gets into the user experience as well as the new output options we heard about at the world-wide user group conference presentation).

4. Improve deployment options as well as reliability.

New features--we heard about many of these, but to recap:
1. Significant data entry enhancements: skinnable forms will be supported using XForms, which is an XML/XSL-based way of building HTML forms. XForms as a technology has been around for a while, but as with everything CF makes it extremely easy to implement. The quick example he showed used cfinput tags and the attributes format="xml" and skin="#someXslFile#" in the cfform tag. By simply changing the XSL, the look and even the position and order of the form elements can be changed instantly without rearranging any of your cfinput tags.

Basic XSL files for creating forms using XForms will supposedly ship with Blackstone. You can also extend cfinput by creating your own cfinput types (he mentioned a "dual select" as one possible example), so the possibilities here seem very cool.

2. Extending the forms/data entry improvements are the Flash forms we saw in the WWUG presentation. Nothing really new here other than a VERY impressive example in which he basically recreated the entire MS Outlook scheduling forms with a few simple cfform/cfinput tags. I was also reminded of all the fantastic form element interactivity (e.g. binding form elements to one another) and validation that will be possible with Flash forms. The tab and accordion elements of the Flash forms should also enable a much better user experience for complex data entry.

3. Printing and Reporting. We already heard about cfdocument for outputting PDF and FlashPaper documents. What I don't think we heard about at the WWUG meeting was the reporting tools. The cfreport tag will generate more complex PDF or FlashPaper reports using CFR templates, and the report data can be generated using a query, web service, or whatever else you want to use to provide the data to the report. A CFR template is an XML file, and they are also releasing with Blackstone (licensing, versioning, etc. is "to be determined") a new tool called ColdFusion Report Builder. This is a visual tool for building reports, handling headers, footers, etc., that is apparently based on some features they previously had in CF Studio, but the big advantage here over other reporting engines/tools is that the query data isn't contained in the reporting tool/templates themselves, but instead the query data is bound to the report at runtime. You will also be able to use CF expressions within your reports very easily, so the flexibility should be quite nice.

4. Deployment Options. Blackstone will offer the ability to distribute compiled code (Java bytecode) that will contain no CF code whatsoever, and the packaging of CF apps as a standard WAR or EAR file for direct deployment on a J2EE server will also be supported. For each CF app deployed this way you will be able to choose whether or not to deploy it with the CF administrator, whether or not certain features are enabled, etc. You can of course currently deploy CF apps on J2EE, but it is decidedly non-trivial. (As an aside, I went to a BlueDragon presentation and on BlueDragon it is INCREDIBLY easy, so it's nice to see CF keeping up and realizing they needed to improve this area.) The benefits of running CF apps on J2EE are pretty numerous so I won't go into them here, but I'd be happy to elaborate at a meeting.

5. Vast improvement in the ability to run multiple virtual instances of CF. (Again, I'll leave out the details but we can certainly discuss in person.) This is also something you *can* do currently but it's a bit of a pain (and again here is very easy in BlueDragon). One of the things that just changed last week is from the CF administrator you will be able to deploy an instance *remotely* which is very cool for a multiple production server environment.

6. This was the CFUN-only announcement. The slide in the presentation was entitled "Beyond HTTP", and while it took a moment for this to sink in for me, I think the implications are pretty profound. The way he introduced this concept was to explain that while we think of CF as a way to build web apps (which it is, of course), there's nothing that ties CF specifically to web applications. It's running on the server and has traditionally been used more or less only for web apps, but there's nothing to say that it can't do a whole lot more.

Basically they have developed a way to provide gateway access to the CF server that can respond to any request over any protocol. No longer will we be limited to HTTP, but things like sockets and asynchronous events will be wide open to CF. Specifically, gateways will be created in Java, and these gateway instances are associated with CFC methods to respond to events. What this means is that it will be much, much more possible to write interfaces in CF that can interact with any network system in pretty much any way you can imagine.

The specific quick example he used reminded me a lot of the Unix queueing systems we built when I was at Neiman Marcus. Basically he showed a page with a list of names on it, and he then dropped a comma-delimited text file containing an additional name into a directory on his machine. This fired off an event that told CF that a file had been dropped in the directory, so that file was grabbed and parsed by a CFC and the additional name was inserted into the database. Within a few seconds he hit refresh and the name was displayed on the CF page.

That may sound like a "so what" example, but as I said, I think as we consider the implications of opening up CF to be able to talk to any system in more or less any way, the possibilities become nearly endless. I think it will still take a while for the ideas about this to sink in, but I've already thought of several things that weren't possible with CF in the past that will certainly be possible now.

I'll quit rambling now--I just wanted to let everyone know what "the man himself" had to say about Blackstone. I also want to let everyone know what a GREAT conference CFUN was this year and encourage you all to come next year. It's absolutely fantastic to meet with other CFers and see how passionate everyone is about what they're doing with CF.

I'm really energized after this conference and very excited about the possibilities of CF for the future. I took copious notes on many of the presentations and will be happy to share, present, or do whatever I can to get the information out.


Popular posts from this blog

Installing and Configuring NextPVR as a Replacement for Windows Media Center

If you follow me on Google+ you'll know I had a recent rant about Windows Media Center, which after running fine for about a year suddenly decided as of January 29 it was done downloading the program guide and by extension was therefore done recording any TV shows.

I'll spare you more ranting and simply say that none of the suggestions I got (which I appreciate!) worked, and rather than spending more time figuring out why, I decided to try something different.

NextPVR is an awesome free (as in beer, not as in freedom unfortunately ...) PVR application for Windows that with a little bit of tweaking handily replaced Windows Media Center. It can even download guide data, which is apparently something WMC no longer feels like doing.

Background I wound up going down this road in a rather circuitous way. My initial goal for the weekend project was to get Raspbmc running on one of my Raspberry Pis. The latest version of XBMC has PVR functionality so I was anxious to try that out as a …

Running a Django Application on Windows Server 2012 with IIS

This is a first for me since under normal circumstances we run all our Django applications on Linux with Nginx, but we're in the process of developing an application for another department and due to the requirements around this project, we'll be handing the code off to them to deploy. They don't have any experience with Linux or web servers other than IIS, so I recently took up the challenge of figuring out how to run Django applications on Windows Server 2012 with IIS.

Based on the dated or complete lack of information around this I'm assuming it's not something that's very common in the wild, so I thought I'd share what I came up with in case others need to do this.

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Assumptions and CaveatsThe operating system is Windows Server 2012 R2, 64-bit. If another variant of the operating system is being used, these instructions may not work properly.All of the soft…

Fixing DPI Scaling Issues in Skype for Business on Windows 10

My setup for my day job these days is a Surface Pro 4 and either an LG 34UC87M-B or a Dell P2715Q monitor, depending on where I'm working. This is a fantastic setup, but some applications have trouble dealing with the high pixel density and don't scale appropriately.
One case in point is Skype for Business. For some reason it scales correctly as I move between the Surface screen and the external monitor when I use the Dell, but on the LG monitor Skype is either massive on the external monitor, or tiny on the Surface screen.
After a big of digging around I came across a solution that worked for me, which is to change a setting in Skype's manifest file (who knew there was one?). On my machine the file is here: C:\Program Files\Microsoft Office\Office16\LYNC.EXE.MANIFEST
And the setting in question is this:
Which I changed to this: <dpiAware>False/PM</dpiAware>
Note that you'll probably have to edit the file as administr…