At tonights meeting I'll be going over some new features and bug fixes in CF 7.0.1 (Merrimack). We will also be going over some details of upcoming product updates announced at MAX. Color commentary by Sean Corfield.See you there?7pm tonight
601 Townsend at the corner of 7th St
1st floor meeting room on the left (Kojak)
San FranciscoThis meeting will also be broadcast via Breeze: http://mmusergroup.breezecentral.com/bacfug1005/
Tony Arnold's Rolling with Ruby on Rails on Mac OS X Tiger is a great place to start. He offers an installer package that fixes the pre-installed Ruby and adds Rails etc. Caveat: if you have CFMX 7.0.1 installed, your httpd.conf file probably has some LoadModule directives after the AddModule directive block - move those LoadModule directives up to the end of the main LoadModule block before running the RoR installer!
Then he says to update your rubygems - make sure you switch to GCC 3.3 before doing this!
sudo gem update
Then you can run through his test application example and it should just work. Pay particular attention to the chgrp and chmod commands he specifies and the directives in Apache to tie it all together.
At that point, you'll probably want to walk through the two part ONLamp Rolling with Ruby on Rails article: Part 1, Part 2.
Skills Required:Strong Flex, ColdFusion, Oracle and SQL development experience with TOAD, UNIX Shell Scripting, Java, and Web Services/XML would be definite assets.
Education/Knowledge: University or College Diploma in related field;
Experience / Skill: Five years of Web Development experience
Job Knowledge - Knows, understands and appropriately applies the technical /soft skills, methods and processes required for the position. Is able to learn, retain and apply information to the job, keeps current with new and/or updated program information, trends and developments in field.
If interested please send your resume in word format along with desired hourly rate and contact details.
Best Regards,
Vineeta.Vineeta Srivastav
LINTAS, LLC.
566 West Adams Street, 4th Floor,
Chicago, Illinois 60661
(312) 681-5400 -Phone
(312) 681-5454 - Fax
vsrivastav@lintas.com
And, no, before you start complaining, ColdFusion was not mentioned in the earnings report. As those who were at MAX heard, ColdFusion is doing just fine so don't worry! Don't expect every product to be mentioned in every utterance from Macromedia - we make a lot of products you know!
...the fact that I was able to become mildly proficient in a new environment and prepare my examples for the presentation is a great testament to the platform!I came from a C++ / Java background and, at first, found the tag-based syntax to be a bit challenging (to get used to) but nowadays I'm very comfortable with it - and don't use <cfscript> at all.
I like that Jonathan draws a parallel with other tag-based languages such as the various XML-based dialects in build tools such as ant - and notes that developers can have difficulties learning those languages too.
Also, if you click on a category that has a lot of entries, you will get the first 100 and a "More articles..." link at the bottom.
And I've added a Skype badge at the bottom of the right hand column.
What sort of topics would you like to see covered at future meetings?
More details on the Jungle Lovers cat show website.
Another section of the Developer Center worth checking out is the Community Area which provides a one-stop shop for upcoming events, Macrochats, user group information, blogs and quick links into the forums and Developer Center sections.
I am looking for 3 Sr. Web Developers with ColdFusion expertise (*possibility of direct conversion if desired) in beautiful San Diego for a leading Biotechnology company. Looking at your experience, I thought that you might know someone!Here's the job spec:
Sr. Cold Fusion Developer (3 month contract / contract-direct)
Job Description:
- We are looking for a strong Sr. web developer with experience designing, developing, deploying and supporting ColdFusion applications.
- Expected to be a self-starter that works well with the existing team.
- Developer will need to write detailed specifications, develop code, testing/debugging of code and provide support.
- In addition, the developer will be required to document designs, procedures, manuals and other documentation needed for the applications.
Requires at least 8 years technical experience in a similar position.
- In-depth knowledge of applicable Web-based application programs and programming languages is required.
- Excellent problem solving and customer service skills and attention to detail needed.
- Excellent organizational and communication skills as well as effective problem analysis and resolution abilities needed.
- Highly motivated, assertive self-starter that is goal-driven and detail-oriented
- Great communicator, written and verbal
- Effective: able to work across functional groups to meet aggressive schedules Independent: able to work with minimal supervision while maintaining focus and productivity
- Flexible: able to quickly adapt to new situations
- Macromedia ColdFusion 6.1 MX expert
- Experience developing dynamic applications using XML / HTML / DHTML / CSS / JavaScript
- Write SQL (both DML and DDL) and working with databases In-depth knowledge of FuseBox 3 methodology
- Experience developing medium to large eCommerce systems In-depth knowledge of Model-View-Controller (MVC) architecture
- In-depth knowledge of XML and XSLT including integration using CFMX and/or Java XML functions
- Experience developing medium to large eCommerce systems
- Experience with development tools such as ColdFusion Studio
- Experience with WebServices / SOAP / Middleware Life Science /Bio Technology experience
Memory is not persistent. That means application scope is not about persistence. Wikipedia defines persistence as:
...the characteristic of data that outlives the execution of the program that created it: which is achieved in practice by storing the data in non-volatile storage such as a file system or a relational database. Without this capability data structures only exist in memory, and will be lost when a program exits. Persistence allows, for example, a program to be restarted and reloaded with the data structures from a previous invocation of the program.
ColdFusion documentation and developers seem to have a history of misusing "persistence" to mean storing data in application or server scope (or even session scope). If ColdFusion developers want to be taken more seriously, we need to stop misusing terminology and start speaking the same language as the rest of IT...
Like I say, this is one of my pet peeves!
What I'd like to hear about are other things you'd like to see in CFEclipse. Not the small, niggling little bug fixes - there's a good process in place for managing those (the bug tracker on Tigris). What I want to hear about are the bigger concerns, the futures. What could CFEclipse do to make your life as a developer easier? How can CFEclipse help you write better code?
I'll be posting some of my thoughts over the next few weeks in this new cfeclipse category - stay tuned!
The general sense I got from everyone was that this was a great conference with excellent sessions - and several people commented that there seemed real technical depth to this year's sessions that had been missing in previous years. And of course the biggest excitement was the Flex 2 product line and the opening up of the technology so that everyone could try it now with the alpha and buy it later because $1,000 would be within their reach.
Expect to see a lot of Flex applications appearing over the next six months or so!
It was great to see all those folks that I got time to chat with - sorry that I didn't hook up with everyone I knew who was there.
Then he talked about the new-in-Flash Player 8 ExternalInterface API that makes it even easier to interact between HTML and Flash using JavaScript. Impressive!
We saw several Flash / Flex collaboration examples; Flex debugging and testing with Mercury's testing tool; ESRI demonstrated a new version of their mapping system - very high performance due to the vector maps in Flash - with search by IP address as well as name, phone # etc; CFEclipse with RDS query and file system browsers and a visual query builder; a Flash Media Server event gateway for CFMX; Flex Builder enhancements to show container hierarchies in design view and a variety of cool code navigation stuff in code view; simple AJAX application building in Dreamweaver - using bindings and drag'n'drop behaviors to create AJAX code; Contribute integration with Microsoft Internet Explorer and Word (via toolbars); some stunning enhancements to Flash authoring to support mobile and device content development.
I'm sure I've missed a few things... I remember Captivate and Director were also featured (but I'm not familiar enough with those products to really know what was new in the sneak peeks).
Next he showed how to share application and session variables between ColdFusion pages and JSP pages running on the same server instance.
Other things he covered were JSP tag libraries and event gateways, the latter being a very powerful form of Java / ColdFusion integration.
I would have liked to see a bit more structure and a bit more justification to some of the examples but I think everyone got a good sense of how powerful - and easy - the combination can be.
First under the microscope was Flash video. There has been a huge uptake in video on the web with a large and growing percentage of young adults watching video online. Flash video is gaining acceptance because of the reach of the Flash Player and the ability to embed video directly into web pages. Flash Player 8 brings a new codec offering improved performance and quality.
Jen Taylor of the Dreamweaver team showed how easy it is to embed Flash video in web pages, using Dreamweaver. She also demonstrated several of the new DW8 features (guides, zoom, code collapse).
Next up Steve Kilsky of Adobe showed the future of After Effects, with a unified user interface, simple keying (green screen) and alpha transparency and a number of professional-looking, easy to use animation effects. He also showed direct export to Flash video. Then Mike Downey (Flash product manager) showed the powerful Flash video import tools in Flash 8 Professional. All very slick! Mike also noted the new Flash Media Server 2 release and said that streaming video service providers such as Akamai are busy upgrading to that new release so that everyone will have access to the new, improved Flash video.
Back to Tim and the dating service, he introduced Jeremy Allaire who took us through the forthcoming "Internet TV" offering from his company Brightcove. This allows simple publishing and distribution of video and assets through online television-style channels. The system handles advertising and e-commerce (pay-to-view, pay-to-download etc) as well as video programming (i.e., creating "lineups" containing media and advertising policies and so on). The entire service is offered via a Flex application that lets you manage your assets, upload data (including giant video files), build your "media players" - branded Flash video playback skins and so on. Incredibly impressive! A real "WOW!" factor...
Next we had a video cameo of Ben Forta, hinting at the next release of ColdFusion MX and wishing everyone well since he couldn't make the conference. I couldn't help noticing that he was wearing one of Will Tomlinson's ColdFusionGear "Property of..." T shirts.
Tom Hale talked about improving the communication experience and how Breeze enables all sorts of people to interact effectively. He introduced a short video interview with two guys from Cisco who talked about baking Breeze into their next generation virtual meeting / communications equipment then Tom showed a Japanese application built on top of Breeze that took advantage of the customization available, including custom Flash graphics objects for the whiteboarding pod to allow math e-learning.
Next up was a quick demonstration of a new beta product - "Room Extensions" - that allows developers to create their own plugins for Breeze. Tom showed a Closed Captioning extension and then Nigel Pegg and Peter Ryce demonstrated some collaborative applications running inside Breeze. Nigel said the extensions were possible using two simple primitives that broadcast and receive messages, via the Breeze server. They also showed how an Excel spreadsheet could be converted to an interactive Flash app and shared thru Breeze (I didn't catch the name of the third-party product that did this, unfortunately). Oh, and the first Breeze demo was an app built with Flex Builder 2!
Mobile & Devices was the next focus with Al Ramadan talking about the growth of the market and the advances in the devices. iRiver will be releasing a Personal Media Player powered by Flash that will be able to play Flash video as well as audio etc. Nokia continue to do more with Flash on their cellphones - we saw a video interview with several Nokia folks from Europe - and Qualcomm's BREW system will be adopting Flash Lite. The next generation mobile player, Flash Lite 2.0, based on Flash Player 7, will be available from Macromedia <labs> in January. Bill Perry showed the support for mobile app development in Flash 8 Professional (slick) and Josh Ulm showed FlashCast and talked about user interface work on devices.
Finally Kevin took the stage to present the MAX Awards. Some very impressive user experiences took the top slots (including the air traffic training app from Australia that I saw demo'd at MXDU 2005 earlier this year). At the end we all got to vote via SMS for our favorite entry - the votes went to a CFMX server and were tallied and displayed back to us through a Flex user interface in real time. A nice touch!
Then I had a good chat with Tom Jordahl and Bill Sahlas of the ColdFusion team about what was coming up in the sneak peek later in the day as well some thoughts about Scorpio (CF8). It's an exciting time to be a ColdFusion developer!
Next was the second run of my Enterprise Integration talk. It definitely felt a bit smoother today although I ran through it a bit faster than yesterday and left quite a bit of Q&A at the end - but only got a couple of questions. I need to reorganize the "challenges" section and add in some notes about XML standards still allowing a lot of leeway in data formats (from comments after yesterday's talk - I remembered to mention it today but didn't integrate it into the slides).
After lunch I had planned to attend the RIA best practices session but it was extremely full so I sat out and chatted with several ColdFusion developers - including an interesting discussion about object modeling and the differences between a data model representation and an object graph representation (objects refer to objects directly by reference, data models use keys to identify entities).
8am Not sure... maybe Integrating ColdFusion with Flex?
9:15am ColdFusion Enterprise Integration (me!)
10:30am General Session / Keynote (with a ColdFusion focus I believe)
1:30pm Probably RIA Design Best Practices: Theory for Developers
2:45pm Perhaps Leveraging Frameworks and Development Methodologies or maybe Next Generation Flex: Data Services
4pm Developing Hybrid Applications with ColdFusion and Java or maybe the SAP Flex / Netweaver session?
5:30pm Sneak Peaks
6:30pm CFC BOF
Then it was time for my Java/CF integration BOF. Considering how little feedback I've had from folks before the conference, I was surprised at how well-attended it was! I led off with a couple of examples of Java/CF integration from macromedia.com (Google appliance API, credit card authorization) and then asked the audience to volunteer stories. Most were success stories, some were genuine war stories tho'... Some specific issues that came up included: handling of Java native array data types, overloading / casting, class path issues, JAR versioning. The latter two were probably the issues that caused people the most grief, and they are both really Java core issues rather than CF-specific issues. Tom Jordahl was in attendance and said he would welcome feedback on ways to help people resolve those issues.
I had to duck out near the end so I could go and set up for my session on enterprise integration. It's the first opportunity I've had to give this talk (because I only wrote it a week ago!) so I wasn't sure of the pace or timing. I felt it started out a bit rocky and I was going too fast but the second half of the preso seemed to go more smoothly and the immediate feedback from attendees seemed very positive - thank you! Hopefully I'll feel happier about the talk when I give it again tomorrow morning.
Next up Stephen Elop talked about the great things we've seen since MAX 2004 with Studio 8 and ColdFusion MX 7, the rapid adoption of Flash Player 8 (he commented that around 400,000 people would download the player worldwide while we were sat in the General Session!) - ColdFusion got several mentions as a great success over the last year. He pointed at some of the great experiences on the web and picked out Harley Davidson as a particularly compelling use of Flash.
Kevin Lynch came on next and talked about what is possible today with the Flash platform. He mentioned "web 2.0" and showed the MeasureMap hybrid HTML/Flash blog analytics application then moved onto the roadmap. Now we have Flash Player 8, Flash Lite 1.1, Flex 1.5 (and Flash Lite 2.0 just shipped to manufacturers). Guido Schroeder of SAP spoke about the value of Flash for their enterprise applications and demo'd their Visual Composer tool generating MXML / AS to create slick Flex user interfaces.
Coming soon is Flex Builder 2, Flex 2 and Flash Player 8.5 (all available in alpha downloads from Macromedia <labs> - read Scott Fegette's article about the <labs> concept). Kevin said the new player is being reported to provide big performance boosts (caveat: depends on what your app does!). FP8.5 also brings a richer ActionScript language, native regular expressions and native manipulation of XML (E4X). Sho Kuwamoto, co-lead on the Flex Builder team, did a live demo (effectively the same as Kevin's recent demo at Web 2.0) and then William Wechtenhisen talked about what the Flex Enterprise Data Services will provide and showed a real time chat / photo-sharing app built on Sho's Flickr search app. Enterprise Data Services will open up JMS and many other enterprise-class systems to Flex apps.
Kevin also announced a partnership with Mercury Interactive that will provide hooks for automated testing of Flex applications.
Then Kevin showed some possible future scenarios (very slick integration of applications on the web / TV / devices with both online and offline collaboration features). He covered the future architecture of the Flash Platform - a full stack from solutions to low-level services - and then gave a brief overview of "Apollo" - a project to provide a Flash / HTML hybrid experience outside of the browser, offering data synchronization and online / offline operation.
Next up was Mike Sundermeyer of the Experience Design team who postulated a unified media control system across TV, PC and mobile devices that provided a rich, intuitive, personalized, collaborative - and overall emotional - experience.
Finally, Bruce Chizen of Adobe talked about his hopes for the future of the combined Adobe / Macromedia company and his commitment to the importance of great experiences.
After that, a very nice lunch was served (real service with wait staff and silverware!).
They went through each of the major pattern collaborations in a Cairngorm-structured Flex app and emphasized the benefits of an event-driven architecture, using named, high-level business events rather than just the low-level click / drag type events in Flex.
The design patterns include Front Controller, Command, Service Locator, Business Delegate, Value Object and a Model Locator. Together they provide a powerful and compelling structure that makes it easy to scale applications as features grow. To demonstrate that, Alistair did a live enhancement to the demo application (the Cairngorm-structured Flex store) in just five minutes that would have taken substantially longer without a framework in place.
Definitely sparked my interest in doing more Flex development - and using Cairngorm!
8:00am Flex Frameworks: Cairngorm and More (or maybe RIA Design Best Practices: Theory for Developers)
9:15am ColdFusion MX 7 Application Framework or Architecting Flex Applications (or maybe Leveraging Frameworks and Development Methodologies)
10:30am General Session / Keynote followed by lunch
1:30pm ColdFusion Components as Objects
2:45pm ColdFusion Enterprise Integration (me!)
4pm Integrating Flex and Flash Content with AJAX
7pm Meet the ColdFusion Team BOF
8pm ColdFusion Java Integration War Stories BOF (me!)
But now... breakfast...
Spent some good time chatting to UG managers from Albany, NY and Sacramento, CA and a few other places, as well as a variety of TMM folks from all over the world.
Networking is one of the biggest benefits of attending conferences!
Now I need to review the schedule to figure out what I'm doing tomorrow morning... breakfast is at 7am and the first session starts at 8am...
p.s. I'm in room 1543 if anyone needs to contact me!
The move was pretty smooth. HostMySite edited my Fusebox core file to fix the duplicate() issue with sandbox security (changing duplicate() to structCopy()). They notified me (and made a backup of the core file - very efficient and helpful!). The only glitch was my heavy set of Apache redirects and other directives - by default HostMySite have those disabled on new accounts but they quickly enabled them for me. Thanx folks!
**Tony Weeg suggested making the banner a link back to the home page - good idea!
That means that the Model-Glue / ColdSpring integration will be as simple as:
Specify the ColdSpring bean factory loader and location of the ColdSpring bean definition file in ModelGlue.xml:
<setting name="beanMappings" value="/ggcc9/config/beans/ggcc.xml" />
<controller name="csaw" type="coldspring.modelglue.AutoWire"/>
...other controllers...
</controllers>
In order to try it out you will need the BER of Model-Glue (which has Joe's latest ColdSpring integration), the 0.2.1 release of ColdSpring which includes both AOP and the Model-Glue adapter from Dave Ross, and you will also need this extension to ColdSpring that adds auto-wiring for Model-Glue controllers.
In this variant, ColdSpring manages all of the model (except the transient note, task and user beans - I may convert these later) and it also autowires the various beans into the controller objects at startup (so the controller objects have no internal initialization code!).
I've also modified how security is managed to use ColdSpring AOP. In the previous Model-Glue variant (#7), security was checked explicitly in various event handlers by broadcasting the checkIdentity message. Now it is handled through "before advice" on the taskDAO and taskGateway objects, using ColdSpring AOP. The advice performs the security check and throws an exception if the user is not logged in. In the exception event handler, a message is broadcast that causes event results to be set if the exception can be handled by another event (in this case the security exception can be handled by the ggcc.identify event, which challenges the user to login).
I think this shows the power of these two frameworks in combination!
But the lack of a "real" audience... boy, that's a biggie! Made me realize just how much I like the live feedback of people.
A big thank you to Michael Smith of Teratech for inviting me to speak - and I hope the members of the MDCFUG really did find it useful.
You can download the code for the talk - I have already sent the presentation (as a PDF) to Michael for posting on the MDCFUG site.
The simple answer is because it doesn't know about your application framework so it doesn't know about controllers.
Dave Ross and Chris Scott are working on a plugin for Mach II that will allow ColdSpring to automatically locate the listeners, plugins and filters in your "controller" and look for setXxx(yyy) methods in them. If it can match a setter to a bean that it knows about (from the ColdSpring bean XML file), it will automatically invoke the setter for you.
I thought that was a great idea but I wanted it for Model-Glue!
So I wrote an AutoWire.cfc for Model-Glue. It relies on Joe's BER changes to Model-Glue to support the ColdSpring bean loader. I've submitted it to Joe, Dave and Chris so hopefully it will be incorporated at some point.
How it works: Model-Glue creates the bean factory, then creates the controllers. With the ColdSpring changes that Joe listed, Model-Glue creates the ColdSpring bean factory instead of its own (ChiliBeans). My AutoWire.cfc is a controller that you declare in the XML (as the first controller). At startup, when Model-Glue creates that it, AutoWire then modifies the in-memory Model-Glue object so it can intercept subsequent controller creation. Then, as Model-Glue creates the remaining controllers, AutoWire searches for setXxx(yyy) methods on each one and attempts to match them to beans declared in the ColdSpring XML file.
If anyone is desperate to try this out, I'm happy to send you the work-in-progress code...
I was able to remove the ColdSpring bean factory 'hack' from my controller (see link to Dave Ross's post in my previous entry) and just make the ModelGlue.xml changes that Joe mentions. Using ColdSpring is now so easy with Model-Glue that I expect this is how I'll be building applications moving forward!
Dave Ross shows how to use the Model-Glue adapter in ColdSpring - the returnType= attribute should actually specify the fully-qualified return type tho'. That combined with Chris Scott's AOP tutorial and a quick read of the source code (download from coldspringframework ).
My LoggingAfter CFC extends coldspring.aop.AfterReturningAdvice, implements afterReturning() which logs a message and then returns arguments.returnVal (very important!).
My ColdSpring XML file specifies:
- xxxTarget - my actual bean that I want to log methods in
- xxx - a coldspring.aop.framework.ProxyFactoryBean that references xxxTarget and uses the logAfterAdvisor intercepter (below)
- logAfterAdvice - my simple logging class
- logAfterAdvisor - a coldspring.aop.support.NamedMethodPointcutAdvisor that specifies my logAfterAdvice as the advice property and * as the mappedNames (matches anything)
The results of calling methods in xxxTarget are logged automatically!
Logging can be disabled by renaming the xxx and xxxTarget beans (so that my application code calls the actual bean, via the name xxx, instead of the proxy).
Very slick...
Update: see the next blog entry for an even simpler integration!
The #coldfusion channel is often all over the shop and sometimes politically incorrect in the extreme but the framework-related channels are generally much quieter and much more on-topic.
Well, assuming your application is built with ColdSpring in the first place - which is reason enough to start looking seriously at using ColdSpring to assist in managing objects in your Model.
ColdSpring AOP lets you "re-wire" the objects in your Model so that your code ends up calling proxy objects (which in turn call your original objects), and the proxy objects can execute "advice" code before, after or around calling the original methods. This lets you add logging to all or any part of your application, simply by configuring the XML file that defines the objects that ColdSpring manages. Or security. Or...
There are a lot of TV informercials about these propositions this year, mostly "No on Prop XX", paid for by a lot of large organizations. Don't be swayed by the propaganda - do your own research, read the text of the proposed laws, make up your own mind.
Use your voice - vote on November 8th!
I didn't want to post a "me too!" blog entry - it's been very gratifying to see the overwhelmingly positive response on other people's blogs!
So why am I posting about this at all?
First off, it's a landmark release in many, many ways. Flash for developers like you and me instead of just designers. Flex 1.0 got me excited because I could finally build Flash applications without wrestling with the timeline and the designer-focused authoring environment. I love Flex but I can't deploy it on my site (no hosting). Flex 2 will make that possible: build an app with Flex Builder 2, generate the SWF, stick it on corfield.org. That alone would make me very happy.
It's more than that. Much more.
ActionScript 3 brings ECMAScript compliance. An OO language with stronger type checking and support for E4X. Intuitive, native manipulation of XML data. That alone would make me very happy. [More on E4X: ECMA-357]
Flash Player 8.5 will run ActionScript 3 in an all-new virtual machine (AVM2) while allowing legacy content to run in the original virtual machine. It will run ActionScript 3 "significantly faster, supports full runtime error reporting and industry-standard debugging. It includes binary socket support, allowing developers to extend the player to work with any binary protocol". Speed, power and ease-of-use. That alone would make me very happy.
You think you know how happy I am about this?
There's more.
I mentioned back in mid-July that I was working on a new project and shortly after that I commented that QA was also development. Now that Macromedia has announced the Flex 2 product line, I feel I can tell folks that I had the honor of spending a month working on the Flash Player team doing QA on what will now be known as ActionScript 3 and AVM2. They are an exceptionally talented and dedicated team and they are producing phenomenal work. ActionScript 3 is awesome and so is AVM2. I really enjoyed working on those components of the Flex 2 product line, albeit in a very small way, and I hope you will enjoy using them!
That little bit of product involvement makes me happiest of all!
Back in November last year, I posted an entry about data-driven design and pointed to responsibility-driven design which has essentially replaced it. Mark Kamoski just posted a (long) comment on that entry which points out, quite rightly, that a database is important and that some (many?) RDD evangelists speak as if the database can almost be ignored.
I just wanted to clarify that, yes, the database is an important part of most applications because, well, you need your data to persist and preserve its integrity. However, starting to design an application from the database tables forward to the UI is not going to create a maintainable, easy-to-use application. The UI is the most important part because that's what your users see and interact with. The interaction use cases drive the functionality your application must have. Those use cases should drive the design of the model, since it must support all the interaction use cases - and often more if you plan for growth and change. The model determines the data the application requires and that in turn drives the database design.
Database design is important. Your tables should not just be mere shadows of your objects. Objects (classes, really) are designed to satisfy dynamic interactions and represent a variety of entities and relationships in your domain. Databases represent those entities and relationships too but usually in a different form - due to normalization and efficiency concerns (or sometimes just the simple practicality of representing something complex using just columns and rows!). Therefore there is nearly always a mapping between object data and tables.
If you start with the database, that mapping will not be obvious until you get closer to the UI and that's the wrong place to do the mapping - you need the model first and that means focusing on responsibilities, not data.
Except for occasionally dropping in on cf-talk via the archives, I've missed all the conversations on those two lists from July 12th through October 5th. If you desperately want my opinion on something I missed in that time, send me a private email!
...and give my Monday afternoon / Tuesday morning talk on Enterprise Integration and run the ColdFusion / Java Integration BOF on Monday evening. Oh, and the talk is all-new for MAX, not the similarly-named talk I gave at CFUNITED (and various CFUGs).
The Salt Lake City CFUG talk seemed to go well on Friday. Thanx to all those who turned up and good luck to our hosts MasterControl Inc completing the office move that started that morning!
After that trip to SLC, our Prius has now done 12,500 miles in about five months and we're still very happy with it. The fuel economy is typically around 46mpg, although long freeway journeys at 75mph (ok, 80mph) drive it down to 40-43mpg. We love the carrying capacity, we love the sat/nav system - we'll never buy another car without that! And at three bucks a gallon, we love the fuel economy. Anyone want to buy a customized '94 Mustang Cobra?
The reason I haven't liked most applications I've seen that were built with frameworks is the fault of the developer, not the framework.In other words, you can write bad code with any framework but don't blame the framework for that! It's very similar to old saw that you can write bad code in any language but don't blame the language.
He also says:
I decided prior to the conference that for the next issue of CFDJ I would ask each of the pioneers of a framework to rewrite the Macromedia Pet Market application in their framework.He'll be creating a website to host the code for this. The articles and the website should prove a fascinating comparison of the various frameworks!


