- FileMaker / Tech Blogging has a new home
- This is What!
- Well, Now What?
- Teaching FileMaker to Send Alerts to an iPhone
- Avatar, Earthquakes, and The Real Time Web
- Installing Aegir on ubuntu 9.1
- Ext.js Reactorized
- FileMaker OnKeystroke Script Triggers
- Finally Got #googlewave... But I don't get it!
- Finally Got #googlewave... But I don't get it!
FileMaker DevCon 2009 Review
I had a great time at the FileMaker Developer's Conference in San Francisco. There were some great sessions, groundbreaking ideas and some fabulous new products released. Over all my sense is that the FileMaker market has really matured in the last few years. It is rounding out. The gaps in the platform are being filled in with some seriously creative thinking. What follows is my account of some of the high lights and low lights of this year's convention.
For the first time in about 6 or 7 years I had nothing to do there but attend sessions and reconnect with colleagues and friends. I had no sessions to present and no booth duties. It was wonderful!
Location, Location, Location
Let me start my review with what I didn't think worked top well, the location. I love San Francisco. It is one of my favorite cities. But I seriously missed the resort atmosphere we have had in the past. The pool was tiny and the weather cold. I really missed the lazy river!
Since all of San Francisco beckoned, attendees tended to scatter off in all directions. I don't like this. I come to DevCon primarily to hang with people I haven't seen in a year. It is much easier to find people when we are locked up in the same nice resort in the middle of a dessert. The JW Marriott in Phoenix was great for this reason.
The layout of the convention center was truly baffling. It took me three days to figure out where everything was. There were stairs and escalators and long hallways to nowhere. It was like being a rat in a maze. The vendors suffered the most since the Product Showcase was way too far off the beaten track.
There was one thing I did like about the location. The hotel had 46 floors. Climbing stairs is great exercise. And the stairwell in the Hilton went all the way from the bottom to the top. The sturdy water pipes that cross overhead were perfect for doing pull-ups. So each morning I would climb the stairs, stopping every ten floors to crank out ten pull-ups before continuing my climb. I love it!
Awesome Products
There were many many standout products on display at the Product Showcase. I can't mention them all, but here are 3 of my favorites.
Reactor 3, from Digital Fusion
Digital Fusion's Reactor Plugin makes the development and deployment of UI Widgets really simple. Last year, I presented on building UI Widgets with html, javascript and flash, so this is a topic that is near and dear to my heart. Craig Saunders and his team have just knocked the ball out of the park on this one. You have just got to check it out! It was also really nice to get an honorable mention in the press release!
Everything these guys do just rocks. Simple easy to deploy, easy to use, offsite backups of your FileMaker Server back ups. Just awesome!
CalDav Server for FileMaker, SeedCode and 360works.
This was just a preview, and is not ready for release. But it so freakin awesome that I must mention it here. John Sindelar, from SeedCode demoed iCal connecting to a FileMaker Database through CalDAV, and editing FileMaker data. It was awesome! I can't wait to get it.
Breakthrough Concept
Now let me get on to what was the breakthrough game changing concept for me. Disconnecting UI from data tables. This concept comes from Bruce Robertson of Concise Design and again John Sindelar, of SeedCode. This was the one idea that i had an immediate need for and solved some problems that I was having with some current projects.
I think it is going to have a major impact, especially in the area of building re-usable complex interface components. I am going to have to save an in depth discussion on this for a later blog, because it is a big enough concept to require it but let me just layout the basics.
I am going to call this concept, the Data Provider Pattern. This is because it is very similar to design patterns used in other development environments like Flex. In these other environments, UI components like a calendar, have a single variable called "dataProvider". That variable provides the data that component displays. Change the data in the dataProvider, and the component automatically updates to reflect the new data. The format of the data, can vary, but it is often in the form of XML.
Some interfaces like Calendars and Hierarchy are hard to in FileMaker because they often require you to create a lot of interface logic in your data tables. This is not a good thing for many reasons, but a big one has to do with portability. Much of the complex code required to display this kind of interface is in the actual data tables. This makes interface tightly bound to the the data tables. This makes it very difficult to re-use.
I think Bruce originally discovered that you could use global variables, utility tables, and FileMaker's text parsing engine to create what he called "virtual lists". These "virtiual lists" can have data pulled from multiple sources, or simply created on the fly. Bruce uses portals (or list views) and GetValue to parse what data should appear on each row of the portal (or list view).
The data itself does NOT live in the records that are used to display the data. Only unstored calcs that parse the Data Provider Global Variable, live there. These are display only records. They are just used to iterate (loop) through and parse the Data Provider. It is the Data Provider Global Variable that holds the Data. Bruce's Virtual List are completely de-coupled from the FileMaker Database Tables.
Another added bonus is that since FileMaker is parsing data that is already "in memory" as a pose to having to retrieve data from the tables, this turns out to be extremely fast.
John Sindelar then stepped up to the plate and took the concept to the next level by storing complete iCal files ( .ics files) in a global variables, and then parsing them using the calc engine, and utility tables to display his calendar. Because he has de-coupled the Calendar display code from any Data Tables he is free to pull data variety of different sources, including any publicly available iCal feed.
Let me re-state this last part in other way. When pulling data from an available iCal feed from anywhere on the internet, John does not have to import the data into a FileMaker table. He just sets the Data Provider, Global Variable with the text of the iCal file and that is it. The calendar data is not stored in ANY table. It exist solely in memory!
This is a truly remarkable thing, but there are some issues you do have to deal with. Most of these issues have to do with keeping the data fresh. Since it is no longer tied to the actual data, you have to put scripts or other methods in pace to ensure that you keep that data up to date. But the benefits far outweigh the extra work required.
I hope to post more on this breakthough concept soon.
Having the year off from presenting was nice, but I think next year I will submit a couple of topics. This year was so inspiring, I am ready to get back in the saddle :>)
- eow's blog
- Login or register to post comments

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_c.png?x-id=94a10727-29ba-4070-971d-5b95edfa776e)