Plum stands for "Practical Lightweight Universal Methodology", and consists of an IDE, code generators, a stored procedure builder, unit test generators, an application framework, and a development methodology all rolled up into a neat package.
A release date for Plum hasn't yet been announced. Perhaps the most shocking feature of Plum, though, is its price: It's free! Adam and David decided to release the tool for free. The IDE is ad supported via a small, non-intrusive (240x120) ad in the lower left-hand corner of the IDE. Of course if you find Plum useful, you can purchase a license key for $79.95 that will disable the advertisements entirely. They are also offering unlimited telephone support (to supplement the free online support) for $495 per developer.
To make a long story short, ColdFusion was installed on the D drive of this machine, which was the root of the problem. Apparently, when you install/upgrade CFMX on a drive other than C (Windows), the .ini files used by the two services in question get incorrect drive/directory references.
The solution for the problem is to do a search and replace all instances of:
C:\Program Files\Merant\
with
D:\CFusionMX
in the directory D:\CFusionMX\db\slserver52 and all of its subdirectories. This assumes your install is on the D drive.
More information can be found in Macroemdia Technote 18800.
In my case, after the network and operating systems were in place, it was my job to bring our public website back up. This consisted mainly of installing anc configuring Apache and ColdFusion, then restoring the actual code from tape. The Apache install wen't smoothly. ColdFusion, however, threw me for a loop. We have media disks that are part of our disaster recovery packages, and mine had Apache, CF MX 6.1 and the new updater as well as a recent copy of our httpd.conf file, a CAR file containing the CF server config, and third party database drivers.
When I went to actually install CF, the installer threw up an error saying that I needed MDAC 2.6 SP2 or later in order to complete the install. Apparently, a fully patched OS doesn't contain the latest MDAC. The simple solution would have been to just go out to Microsoft's Data Site and download the latest MDAC driver. Problem was, we had no Internet circuit. We had brought it down a few hours prior to simulate a loss of our eVPN with our main campus. There were no other Internet connections available to us at that point!
In the end, we ended up running over to a coworker's appartment and downloading the driver to a USB flash drive. Once I had that, I had CF installed and configured in about 20 minutes, and the site restored from backup in about another 30 minutes.
The moral of the story here is that if you are planning a disaster recovery plan for CF, you need to include the latest MDAC in your media, as it isn't included with the CF install!
The site is pretty busy today, so there are several mirrors that you can try if you can't get if from mozilla.org:
Win32 Mirror
Linux, Mac, Win32, and SRC mirror
You should note that if you are using an older version of Firefox with extensions, chances are that many of those extensions won't work until they are upgraded for the 1.0 version.
I think it's important for developers to approach the use of design patterns not from a "which patterns can I use in my application", or "I want to use the strategy pattern in an application" approach, but rather from a solid architectural approach. That is, I think it's more productive for developers to first model their application, then look for patterns that help solve problems within that model. Of course in order to do this, you first need a good understanding of what the most common design patterns are, and how they can be used in an application. One of the biggest pitfalls to avoid up front, though, is simply learning a pattern and then doing the equivalent of a copy/paste into your applications. Patterns are not absolute, and a pattern that fits well in one situation may not fit the same way into all of your applications. The only way to really understand design patterns, and how to apply them in your applications comes through study and experience.
So, where does this leave us as ColdFusion developers? Most of the design pattern literature out there deals with implementing design patterns in languages such as C/C++, or Java, or sometimes even pseudo-code. That's ok if you understand those languages, especially if you are able to make the connection between how it's done in another language, and how that maps to ColdFusion and CFCs.
If you read the ColdFusion Developers Journal, you may have noticed that design patterns are being discussed in more and more articles. What i would suggest doing if you are interested in incorporating design patterns into your ColdFusion development is to purchase one of the popular design pattern books, and use it as a guide when reading some of the various ColdFusion specific design pattern articles. I think that taking this approach will allow a lot of ColdFusion developers, with no experience with other languages to make the most of the information that's out there, and to ease their way into the world of design patterns.
To get you started, here's an excerpt from the book Design Patterns: Elements of Reusable Object Oriented Software. This book, by the so called "Gang of Four" is considered the seminal work on software design patterns. The excerpt (chapter 1) is hosted on Macromedia's site and introduces Design Patterns and lists out some of the more common one's you are likely to encounter.
Once you have the introduction to design patterns out of the way, here are some of the ColdFusion design pattern articles worth taking a look at:
Template Method Pattern
Iterator Pattern
Strategy Pattern
Composite Pattern
More on Composition
More on Polymorphism
Singleton Pattern
Creational Patterns
Facade Pattern
Data Transfer Hash Pattern
If you couple these with one or more of the following books, I think you'll have a good starting point:
Headfirst Design Patterns
Design Patterns: Elements of Reusable Object Oriented Software (Gang of Four)
Design Patterns Explained: A New Perspective on Object-Oriented Design
I'd definitely like to see more design pattern articles focused on ColdFusion. If you would too, why not drop the ColdFusion Developers Journal editor, Simon Horwith, an email over at simon(at)horwith(dot)com and let him know you would like to see more coverage in the magazine.
- Lotus Sametime Gateway (IM)
- Jabber/XMPP Gateway (IM)
- Directory Watcher Gateway(Looks for new additions to a file system directory)
- SMS Gateawy (for sending/receiving SMS text messages)
- Asynchronous CFML Gateway (for multi-threaded CFML invocations)
Beyond these gateways, it would be fairly simple (provided you know a little Java) to create additional gateways for communicating with all sorts of additional technologies via protocols other than HTTP. Considering the possibilities, this means you (or a third party) could write a telnet gateway, a gateway for connecting to a messaging service such as JMS (Sean Corfield has already mentioned he's worked on this for an internal project) or MQ Series, or a gateway for communicating with the X10 protocol. The list goes on and on. Themain point here is that the possibilities are limitless.
This also opens up a potential new revenue stream for companies wanting to produce and support commercial gateway add-ons for ColdFusion. So, if you don't know Java but need a gateway for a particular application, chances are that a solution would be available from either an open-source or commercial provider.
The coolest thing about gateways, though, is that you only need to know Java if you want to write your own. To use and existing gateway, you only need to know ColdFusion as all gateways are implemented via CFCs.
What uses for Event Gateways are you thinking about?
Macromedia consistently puts on one of the best conferences I've been to. While it's true that some things go more smoothly than others, and that the choice of location has a lot to do with how things run, all in all, MAX is and always has been a well run event. Hats off to everyone at Macromedia who makes MAX the event that it is.
Now, on to a few suggestions. The only real "complaint" I have about the sessions is that the higher level sessions still tend to be to general. From talking with people at the conference, it seems that people want even more "advanced" content that helps them understand the concepts and gives them practical advice on how to apply it. For example, the Hal Helms session on OO ColdFusion was a great introduction to OO development for ColdFusion developers, but I think a lot of attendees were then ready for a follow-up session on applying those ideas and principals. They needed concrete examples, maybe a sample application that they could walk through with a presenter to get more indepth experience with the concepts.
This leans me into my next suggestion - include even more interactive Birds of a Feather sessions for people interested in different topics within CF and let the learning and knowledge sharing happen at a more organic level. Do a BOF for CFCs, a BOF for reporting, a BOF for Mach-II, etc. All Macromedia needs to do is provide a room, and maybe a projector, and the rest will happen spontaneously. Steve Rittler has more on this on his blog.
Next suggestion is to leave a little more time between sessions. Scheduling them back to back doesn't leave people enough time to make it from one session to the next withoug being disruptive often times.
Not sure where MAX is going to be next year, but it's looking like they are considering a West coast city. I think that's a great idea and would love to see MAX in a city like San Diego, San Francisco, Portland, or Seattle.
I made some really good connections at this year's MAX and look forward to keeping in touch throughout the year. Hopefully, I'll see many of you again next year!
- Template driven design using XML/XSL
- Binding with XSL stylesheets
- Code Toolbar ala Homesite
- Drag and drop XML/XLS, including repeating regions
- Code collapse ala Homesite (4 years ago ;-)
- New zoom tool. Marquee selection allows marquee and zoom ala Fireworks
Problem is that both internal and external "customers" have a hard time finding things and sifting through content on macromedia.com.
What's coming:
- RSS feeds for almost everything -product tech notes, forums threads, etc.
- Guided search by specific topic types, starting with dev center content or technotes. More types to follow. Category based results - activity, symptom, product version, environment, etc. Also lists best bets in a highlighted area. Recognizes abbreviations such as UI, etc.
Breeze Live
- Conference call calls you as opposed to you calling into the conference call
Fireworks
- Improvements to vector path tool
- Automated text layer on text creation
- Simple, instant red-eye removal
- More Save As Options
If you haven't heard Hal speak before, he's an excellent speaker, presenter, and speaker (as well as an acomplished programmer). Much of what Hal is saying rings true for me. Things like 70-90% of an applications cost are in long term maintenance. Applications that often start off well written become messy after multiple additions and revisions at a later point. His contention is that object orientation can help with these problems.
This session is more about OO fundamentals, and Hal does a great job of taking those concepts and explaining them in simple terms.
I'd love to see do a follow on next year (or at a subsequent conference) where he takes these concepts and shows how to develop with them in CF (I know he has training classes on this, but I think an intro would work well in a conference format).
If you get a chance to see Hal speak at MAX (or any other time), it's worth checking out.
Live demo linking Don Norman (Nielsen's Norman Group) from Amsterdam with the conference in New Orleans. Audio quality is good. Camera (video conf) not too bad. Don spent most of his time talking about design and how the browser has set us back about 10 years in that area. Lots of good info on design stuff (which you can read in his book). The main point he makes is that Breeze and Flex and Flash make things possible today that really are set to take things to the next level.
Experience, experience, experience.
US Army using Breeze in the field for forward deployed SATCOM. Ma
In the beginning, eLearning was focused on developing skills and competencies. Now it's shifting more toward criticalknowledge transfer and information broadcast.
Various tools to do this, Breeze and Captivate (formerly Robodemo). Silke Fleischer goes on to dispell the commonly held misconception that Captivate is just for making software demos.
Silke demonstrated in real time how quickly you can put together an eLearning app. It definitely *looks* easy to use. The app wasn't a simple demo, it was more of a simulation. The simulation showed the user (Tom) how to insert a Flash movie into PowerPoint. It had audio instructions, and scored his compliance with instructions. This is just a small example of what you can do with Captivate.
Macromedia is pushing Breezr for Informational content and Captivate for Instructional content.
Web publishing challenges: frustrating backlog of requests, out of date, overgrown, and unused content.
CMS is traditional solution. Enterprise solutions are too expensive and take too long to implement.
Macromedia's solution here started with Contribute. As Contribute use grew (at a faster rate than Dreamweaver), organizations needed a better way to scale and administer. Enter the Macromedia Web Publishing System. It consists of Contribute (content contributers), Dreamweaver/Flash/Fireworks (designers and developers), and administrative tools that tie it all together.
University of Rochester Medical Center as a case study. 25,000 pages and hundreds of contributors. Publishing workflow reduced from days/weeks to hours.
System is fully extensible and can easily integrate with other Macromedia technologies, including ColdFusion.
Publishing system makes use of web services - web services based notification system is a central part of the system.
- mobile is bigger than the web and will grow at a much more rapid rate.
- Mobile companies already understand how to bill for services, something lacking on the internet.
- Kids growing up with mobile technology will soon be entering the workforce. This will represent a fundamental shift in technology expectations and how technology is used by that group.
- Current mobile experience "sucks". This is Macromedia's opportunity. Get Flash onto mobile devices. Flash has more to offer for the experience on mobile devices than Java.
- New mobile developer program, link on macromedia.com. Contest, newsletter, training, etc.
- Verification program for certifying mobile apps
- FlashCast CDK
- Current opportunities are mainly in Japan, but Europe is growing quickly. The rest of Asia is also poised. The US is way way behind (as in not even on the map behind).
One of the most impressive parts of the tool, besides the overall feature/functionality is the UI. It's a beauty.
General themes among those who are just starting are generally among the "why should I use them", "what are the benefits", etc.
We were going to Breeze Live the preso, but we didn't get to Ed in time to get the account all set up. So, we broadcast audio only via a Flashcom app that Steve Rittler wrote. Unfortunately, we only had one person on the other line, but it was an interesting hack nonetheless.
Paul Kenny and I had an interesting side discussion on CFCUnit. If you aren't using CFCUnit for unit testing your CFCs, you should be. Check it out!
We're also tlaking about code gen tools for CFCs and who's working on what. Seems people would like to see some tools for this. I mentioned we (we=Adam Crump) has a CFC Bean generator for Dreamweaver, and he's looking to port it for Eclipse. Also looking to extend it to generate tests for CFCUnit. People also want UML to CFC to UML generators. Some good dialogue here.
If you haven't been there yet, Cat's Meow is a karaoke bar. Even if you think you don't like karaoke, this place is a blast. We're planning to head over after the special event. Spread the word and hope to see you there!
This session is more a discussion of how we as architects and developers need to plan for scalability in our applications. As the session description says, "Throwing hardware at an application does not make it scalable. Indeed, scalability must be part of every aspect of application design and development. In this session you will learn exactly how applications must be built from the ground up for scalability."
My session discusses designing for scalability, and presents strategies as well as techniques that apply to web application development in general, and ColdFusion application development specifically. The discussion focuses more on planning and testing than it does on actual coding. If you have a chance to stop by, I'd love to discuss how to scalability in the context of your ColdFusion applications!
- Dramatic performance improvements
- Bitmap caching of vector graphics (cacheAsBitmap)
- cacheAsBitmap works with components to improve performance (like big accordian panes)
- New graphical capabilities. Pixel level control via graphic effects - Bevel, Drop Shadow, Blur (in and out), Convolution, Glow, Color Matrix, etc. All controllable at runtime. Can be applied to any movie clip.
- New text rendering engine (Saffron). Precise control over anti-aliasing.
- New Flash Video codec. Among the best in the industry. Still support old codec as well. Demo images are pretty impressive contrasting old and new. New capabilities made possible including video alpha channel at runtime (very, very impressive). Makes it possible to see through items in video as well.
- Flash forms with built in validation, new controls such as a tabbed control. All done using CFML.
- cfdocument tag for preserving printing and formatting of pages. Can output in FlashPaper, PDF, and HTML
- Report designer showing how to design reports for new cfreport tag. Very similar to other report designers you might be used to ala Crystal, Access, Actuate, etc. The big difference is that it has lots of CF specific functionality built in such as binding with cfquery data. Can output in FlashPaper, PDF, and HTML.
- Event Gateways. Allow CF to work beyond the web. You interface with gateways using CFCs. CF ships with several included gateways including SMS (comes with a cell phone aggregator for testing). You could also use gateways to interface with IM, JMS, etc. There's a demo gateway to allow you to SMS Blackstone to get updates before your next session, get your schedule, and more.
More interesting was a demo given a little later where they were able to show the breakout, by state, of how people voted. This was based on an area code lookup of the captured phone numbers from the SMS voting.
The actual SMS work was handled by a new feature in Blackstone called the SMS Gateway. More on gateways later.
Update: Lance Linder points out that a 2nd unit testing framework (and more) is also available, as2lib.
Education & Government = 35%
Big corporations =54%
ColdFusion users = 60%
Dreamweaver users = 90%
Hampton Inn (Across from Hall E of the convention center)
Room 213
Opens 9am
It's going to be interesting to watch the reactions as people realize what they've gotten access to. I'm hoping to see a lot of excitement and energy around Blackstone at MAX this year. Expect me to blog a lot more about Blackstone over the next several days as more of what was previously covered under NDA becomes public.
Update: After actually opening the package, it looks like your access to the beta program requires you to first login to the Macromedia beta site and enter your email address (used to register for the conference). You are then given an access code to activate the beta. So, Blackstone beta 2 is not a completely open beta, but you do get to be a part of it!
That said, I'm guessing everything Blackstone is still NDA other than what Macromedia has already publicly released, and what will be demo'd at the general sessions and sneak peek sessions.
Acme Oyster House is nothing fancy, and they don't take reservations (I waited in line for about a half hour for a table to open up). What they do do, however, is oysters. I had a dozen on the half-shell, and then a combination oyster/shrimp fry. Mmmm, mmmm, good.
If you want to get really close to the action, sit at the marble bar, where the guys behind the counter shuck oysters with speed and skill for all to watch.