July 15, 2003
Blog Offline
I just moved my account to new servers at Hurricane Electric and upgraded my account. This has broken the Berkeley DB behind Movable Type so you cannot current add comments to this blog and I can't post to it. I'm working on the problem and hope to have everything working again soon.Added manually by seancorfield!
July 13, 2003
Mach II
The Mach II website is now up! You can read about Mach II and download the (beta) framework and example code. The site is still being worked on so keep watching that space...Elastic Satellite
The latest issue of Elastic Satellite is now available for download (as a 3.1Mb PDF file!). It has an interesting article from Brett Michlitsch about the conflicting tensions between solid software process and architecture on one hand and the rapidly changing requirements and short timeline pressures of web application development. Actually the article is part one of three so I look forward to the next couple of issues to see where Brett goes with this.July 12, 2003
The Music-Video Reloaded
Last night my wife took me out for my birthday treat: dinner at Kuleto's followed by "The Matrix Reloaded" at the Metreon iMax.Dinner was great - the best calamari with remoulade sauce I've ever had I think, followed by an incredible dill and orange gnocchi with Dungeness crab, accompanied by a couple of pints of Guinness and washed down with a 20 year old port!
The movie was... pretty, big... and totally content-free. Gosh, I loved the first movie and bought the DVD as soon as I could. This second episode is beautiful to watch, great soundtrack, incredible choreography but... empty. I found myself second-guessing the dialog continually and wishing the Zen aphorisms would go away and we'd get another fight scene. As a Bay Area resident, I particularly enjoyed the "Hwy 101" chase scene (filmed in and around Alameda in the East Bay, overlaid with signs from the real hwy 101 down around where I used to work (Redwood Shores) but with a superimposed San Francisco skyline looming impossibly large (you can't see SF from Redwood Shores!).
It was a wonderfully entertaining night out and I shall definitely watch "Revolutions" when it comes out but I don't expect it to be any less of a full-length music video than "Reloaded"... low expectations should be easily met.
July 11, 2003
CF OOP / Architecture
I've mentioned cfoop.com before but the architecture section is beginning to contain some more interesting and in-depth commentary. The latest post about structured exception handling is a good example and while I don't agree with every point he makes, it's still worthwhile reading. I've commented on that entry, raising the specter of reuse-through-inheritance which I believe is one of the most common design errors most nOObs make and I've been threatening to write up my thoughts on this subject for many, many months (I started a draft back in October last year!). One day I will write a treatise on it!JSP or CFML?
Came across a somewhat strange article by Chris Preimesberger and Charlie Arehart which purports to advocate ColdFusion over JSP - in an apparent attempt to persuade CFers not to switch to JSP. The article has drawn quite a bit of flak on TheServerSide forums. Some of the criticism is deserved (for the vague swipes at JSP as a technology) and some is just noise (the usual uninformed criticisms of CFML). Read the article, read the comments on TheServerSide and make up your own mind.My position is that CFML has a much easier learning curve than either JSP or Java while not preventing well-designed software from being written. The abilities of the language need to be discussed separately from the abilities of the developers - bad code and poorly performing applications can be built in any language!
July 10, 2003
Safari Debug Menu
I've been asked quite often lately "How do you enable the Debug menu in Safari?" so I figured I'd actually blog the answer. Quit Safari, open a Terminal window and type the following:defaults write com.apple.Safari IncludeDebugMenu 1Start Safari and you should see a new Debug menu, to the right of the Help menu. It contains useful stuff like: open current page in any browser installed on your system (for comparative testing); masquerade as other browsers (by changing the user agent); page load test (my favorite!).
You can find out more about Safari in Apple's developer FAQ.
Cognitive Dissonance - SFSU CEL
As I rode BART to work this morning, I noticed a poster for San Francisco State University's College of Extended Learning. It shows an 'up' escalator in a subway with the caption "moving up - The Best Careers in the World Start Here". The cognitive dissonance is that the escalator is English - part of the London Underground system - resplendent with warning signs on the emergency stop buttons that the fine for improper use is £50!July 09, 2003
Mach II Training
Hal Helms and Ben Edwards are running a three-day training course for Mach II in August, in Las Vegas. This fourteen-unit course will take you through object-oriented programming concepts, CFCs, implicit invocation architecture and moves on to Web Services, Flash Remoting, and Plugins as well as looking at MVC and application architecture. It promises to be a comprehensive and very useful course - if you are at all interested in extending your ColdFusion skills into the OO arena. The early bird rate runs until the end of July.McWireless
McDonald's WiFi experiment seems to be continuing apace. I have two McDonald's locally and one of them (Grove Way, Castro Valley, CA) is now part of the program. Unfortunately, that's the one I don't use. And even if I did, I'm not sure I'd want to pay "five bucks for two hours' worth" as JD indicates. I'd expect to get at least some airtime free while I was eating there - hey, I just paid four bucks for a Value Meal so you can't expect me to pay another $2.50 to work while I eat?It will be interesting to see how the McWireless experiment pans out. Will people pay? Will it depend on the service provider in each case (Wayport in my neighborhood)? As JD suggests, it might need to be "connectivity-as-amenity".
Apple, Panther, JBoss
A number of interesting items in Apple's announcement of the 'Panther' Server operating system: they are bundling JBoss as the built-in application server - with a nice GUI to manage it; the "automatic setup" facility can configure servers based on settings stored on an iPod; inclusion of Samba 3 and Open Directory 2. This is a big push for the server space, building on their oh-so-desirable Xserve rack-mounted servers. I wish them luck (and, okay, I'm drooling... I wish I could justify an Xserve at home!).Mach II - corfield.org
I have just added a fledgling Mach II section to my website and updated the Fusebox section.Mach II - Initial Thoughts
I've just started looking at the new Mach II framework (formerly Fusebox MX). The framework is built on an implicit invocation architecture (you can read some background to this on the Fusebox Beta website), using "listeners" and "events" and comes with an MVC example application, ContactManager. The framework uses an XML configuration file to define the behavior of your application. The XML is used to specify "listeners" - CFCs that have methods invoked in response to events - "events", "views" and "plugins". Each event specifies which listeners it notifies and whether it displays a view. Each view specifies the CF page that generates that view. The plugins are CFCs that have various methods invoked at certain points in processing each request (event).For example, the
listContacts event notifies the RecentContacts listener to retrieve 'recent contacts' and the ContactManager listener to retrieve 'all contacts' and then the event selects the contactList view. An event can trigger other events. For example, the newContact event causes a form to be displayed into which you enter new contact details. Submitting the form - the createContact event - causes the ContactManager listener to be notified to create the contact and it announces that a new contact has been created (the contactCreated event). That event is, in turn, specified to generate the listContacts event so that after adding a new contact, you end up on contact listing page.
It takes a bit of getting used to if you're from a procedural background but it's certainly very elegant.
More on this later...