Barack Obama - Change We Can Believe In

Viewing By Month : July 2003 / Main
July 31, 2003
There's been an interesting discussion about CFC design on the CFCDev mailing list recently about what it means to follow the rules of encapsulation. Most folks on the list agree that you shouldn't write CFCs that randomly pull values out of their environment (e.g., request or application scope).
I'm not about to write a treatise on it here but I'll give some basic guidelines: in general, CFCs should never reference shared scopes. There is really only one exception: a façade may manage instances of other CFCs stored in shared scopes (e.g., a façade may create and manipulate CFCs stored in session scope - to maintain state for Flash Remoting or in situations where you need or want to hide the stateful nature of the instances).
What about caching data? Have your CFC cache the data inside itself as instance data and then store the CFC in a shared scope. That lets the client of the CFC manage the lifetime of the cache (e.g,. request, session, application) and it makes the CFC self-contained.
What about instances in shared scopes 'knowing' about each other? Explicitly tell the CFC instance that needs to know by passing it a reference to the other CFC instance it needs to communicate with. That lets the client mix and match instances across different shared scopes.
As I said, just a few guidelines, not a treatise. There will be more on this subject in the updated ColdFusion coding guidelines that I'll be publishing in early September.


This has been posted to several mailing lists this morning: the Flash Player 7 Public Beta has begun. Read the release notes and FAQ before installing beta software! My initial impression is that the new player is substantially faster on Mac OS X Safari than Flash Player 6 and, so far, it seems extremely compatible with existing content.


A friend of mine blogged some tests he did with the Lynx browser. I've used Lynx on Linux as a test of accessibility for web sites because it's a text-only browser. Yes, I know that's not a perfect test of accessibility but if Lynx can read a site, an assistive web browser stands some chance - conversely, if Lynx can't read a site at all, it's unlikely to be accessible! I haven't thought about Lynx for a year or so and didn't have it on my Mac but it made me curious enough that I downloaded the latest source code and built it. As simple as ./configure, make and make install.
I've tried it on a few sites, with varying degrees of readability. This site is pretty good, now that it's all CSS-driven. macromedia.com is pretty good too. It's educational to try it out!


July 30, 2003
Macromedia has released some more information about the upcoming Macromedia Central application and allowed a screenshot of the latest state of play to be published with comments. You can see it here on the blogs of Greg Burch and Geoffrey Williams. I don't see myself as a developer of applications for Central but I will certainly be a user of it. The stock tracker app is already useful but I suspect it's hardly a hint of the cool collaborative and on-/off-line applications that will spill forth from the developer community soon...


July 29, 2003
Naturally I'm very encouraged by the results on this poll so far - two thirds of the respondents say they'll upgrade to Red Sky as soon as it is available. To those folks who've not heard of it, you can check out the Breeze presentation about Red Sky on Macromedia's website. My experience with Red Sky so far make me confident that it will be very well-received and that it will encourage a lot of people to upgrade who've either stayed with CF5 or have had issues with CFMX. I've been busy upgrading a lot of servers here to Red Sky and it's been a pleasurable experience.


July 25, 2003
The latest DevNet Resource Kit - Volume 4 - is now available for purchase. Lots of ColdFusion goodness in this edition including an enhanced logging framework, XML / query conversion components, a filter framework for form / URL variables, and CFBean which brings JSP-style JavaBean access to CFCs.


You can now buy Contribute 2 for Windows or Mac OS X. I have been using Contribute since before the first version was released to the public and I love it! It makes my life so much easier because it makes updating project documentation so simple: browse the intranet, click "Edit Page", update the project details, click "Publish". Done. You can make corrections to pages quickly - while you're browsing the site - and the simplicity of the process means that you actually do correct typos as you see them, instead of putting it off until you need to make a 'bigger' change to the page.
Download it and take it for a test drive - it's really, really good!


Xenarc have just released a PC that fits in your dashboard in the form factor of a regular in-dash stereo! How cool is that? It has GPS, two PCMCIA slots, 128Mb SDRAM and a 15Gb hard drive.


July 24, 2003
I've been reading up on the behavior of font-size in different browsers. I wanted to make the appearance of my site more consistent across browsers. I'd originally used things like font-size: small and font-size: large and these seemed to produce radically different results in Win/IE from Mac/IE, Mac/Safari from Mac/Opera etc. I found recommendations to use em-based size instead so that is what I've done. The overall result should be some slight adjustments in font sizes (on some browsers) and a reasonable reduction in font size on Win/IE. On Win/IE, the calendar still 'hides' a little under the main blog content but it's better than it was. Opera now seems to render the site more consistently. Mozilla and Safari seem pretty much unaffected (which was the intent since they are the better browsers in terms of rendering fidelity).
I'm contemplating a redesign again soon...


July 23, 2003
After much prodding and pushing of button combinations, the stubborn wee brute finally went into "disk mode" and then, after more prodding and pushing, it finally booted up back to the Apple logo and... finally... Browse, Extras, Contacts, Settings, Backlight. Ah, success! And it didn't even lose any data!


You can now download Mach II Beta 2 (7/22) from the evolving Mach II website.


As noted last week, Ben Forta came to BACFUG to talk about the benefits of CFMX for J2EE and to give a sneak peek of Red Sky.
Ben asked the audience a lot of leading questions about how convenient it would be if they could have more than one ColdFusion install on a server, with different CF Admins for different applications and users... Then he showed how this is exactly what CFMX for J2EE provides and set everyone 'homework' to go and download JRun and CFMX for J2EE and try it for themselves.
I'm a huge advocate of the J2EE edition - I'm currently running four independent CF installs on one Tomcat instance on my Mac as well as four separate JRun server instances, each running CF. I have different versions of CFMX installed side-by-side for testing as well as few specific applications that I'm experimenting with. For example, Mach II has its own CF instance.
After the break, Ben talked about some of the things coming in Red Sky. Red Sky is the codename for the upcoming maintenance release of CFMX. It's more than an "Updater" but it will still be a free upgrade to all licensed users of CFMX 6.0. What's in it? Ben said the three main focuses were on simplicity, performance & stability and backward compatibility but that there were also a lot of enhancements. He mentioned improvements to the internet protocol tags (e.g., cfmail, cfinvoke on a web service), improvements to CFCs (e.g., addition of a "super" scope for inheritance, fixing the 'page context bug' so that CFCs can be stored in shared scopes and still access other shared scopes).
He also talked briefly about the major overhaul of the CFML compiler. Currently, CFMX reads the CFML pages and translates them to Java (and writes .java files) and then uses either 'jikesw' or 'javac' to compile that to bytecode (and writes .class files) which is then loaded into memory and executed (by the JVM). That's why there's such a big 'hit' the first time you access a modified page. By contrast, Red Sky reads the CFML pages and compiles them directly to bytecode which is then executed by the JVM. The result is a much faster development cycle. Red Sky is also "much, much faster" than CFMX. Ben couldn't say how much faster (and nor can I!) - but we think folks will be impressed.
Finally, Ben started asking folks for their CF wishlists and set homework for some - for each cool new feature they requested, write up the CF syntax you'd expect to use for that feature! Much of the focus was on image processing, manipulation of PDF (or other document formats) and report generation. It's always interesting to hear what CFers want from CFML!


That didn't last long... My iPod will no longer 'boot' and just sits there with the Apple logo, doing nothing. I'm working my way through the checklists on the Apple iPod support site but I'm not hopeful - especially given the large number of items on the Apple site that recommend unplugging it for 24 hours and then trying a hard reset.


July 22, 2003
The Fusebox website has announced the final release of Fusebox 4. Documentation is still being prepared and the main Fusebox website has yet to be fully updated but you can download the official core files and some example applications from the Fusebox Beta download page.


July 21, 2003
Although this is essentially an advert for IconMedialab's services, it has some very nice suggestions as to what a Rich Internet Application for eCommerce might bring to a website. There's some slick user interactions in the demo.


The Macromedia MAX 2003 conference is now taking registrations. The early bird price is just $895, good through September 12th. There's a lot of server-side development sessions covering a very broad range of topics.


Macromedia has renewed its J2EE license, showing its continuing commitment to JRun and J2EE technology. Macromedia has already been a licensee for more than three years.


July 19, 2003
Dynamic SVG (dSVG), as explained by one of its lead developers, makes an interesting read on /. most of all because of the comments. SVG seems a really interesting concept but it just hasn't taken off... Will Royale and Laszlo kill SVG by enabling XML-based programming of SWF format images and movies?
I think one reader's objection that he couldn't even download the specification from Corel's site without agreeing to a very long EULA is telling, especially since he can go to W3C and download it without such nonsense. As another reader says "now all we need are some browsers with native SVG support".
Has SVG missed the boat? And if so, why is that?


I'm not a huge fan of Perl (no, really!) so I wouldn't have read this if it were not for one of my team (who is a huge Perl fan): Larry Wall's 7th annual State of the Perl Onion speech. Apart from being very funny and making some interesting and, at times, philosophical points, it addresses something that is becoming more and more common to the software industry - providing a 'platform' on which languages can run. In Perl's case, the platform is Parrot which will support multiple languages (eventually). Java's JVM supports multiple languages (even though most people think it only supports Java). Microsoft's CLR is another example.


Meet The Makers interviews John Witchel, the creator of BrowserCam. It's very interesting to read about the technology behind BrowserCam - mostly Java software and a distributed network of machines running a wide variety of browsers.


July 18, 2003
The very resourceful Steve Collins has Dreamweaver MX and Flash MX running on Linux!


July 17, 2003
There's a fascinating (and long) thread on cf-talk at the moment that was spawned by someone asking the innocent question: What are the "cons" to using Fusebox? They are trying to present a balanced pros / cons argument about Fusebox to their colleagues and they've already had a lot of "pros" (from a Fusebox forum, naturally) so they were asking for disadvantages from a broader audience. Interestingly, most people are coming out in favor of the concepts behind Fusebox, even if they are not specifically advocates themselves, and Brian Kotek's posts are fascinating because they focus on software architecture and engineering best practice issues, rather than "Fusebox is Good / Bad" arguments.


I wouldn't normally blog a Windows-only product, especially one you have to pay for, but iRider - a web browser - was mentioned on one of the ColdFusion mailing lists (in the aftermath of the "Netscape is dead!" debacle) and you should check out the demo, even if you think you aren't interested. The demo is about ten minutes long and uses Flash to good effect. iRider is a very impressive browser in terms of usability, allowing for multiple links to be opened in the background, providing thumbnail indexes of all the pages being browsed in the current session and generally manages groups of links and pages in an extremely efficient and intuitive manner. I wish there was a Mac version!


Newsflash!
Macromedia Senior Evangelist Ben Forta presents at the Bay Area ColdFusion User Group on July 22.
The Bay Area CFUG is hosting Macromedia Senior Evangelist Ben Forta as a guest speaker at its next meeting on July 22.
Join the meeting to hear the presentation, "Running ColdFusion on top of J2EE," followed by a sneak peek into the next ColdFusion update.
For more information and directions, visit: http://www.bacfug.org.


A colleague spotted this panel discussion about interviewing a programmer. It is interesting to hear what these C++ and Java experts say (the panel included Joshua Bloch, Scott Meyers, Bruce Eckel, Chuck Allison, Kevlin Henney...). They mostly agreed you need to get the candidate to talk about one of their technical projects to get the most insight and they were split on the issue of asking candidates to do a test. Bruce asks candidates to create a design model of a chicken but Scott thinks such on-the-spot tests are so unlike how we all work that they're neither fair nor worthwhile. I tend to agree with Scott - I interviewed with ObjectSpace in Dallas, TX many years ago and they asked me to draw a class model for the game Monopoly. I did a good job but was annoyed by their attitude (in another segment of the interview, they plunked me down in front of a Windows machine with Visual C++ and asked me to code something from a stack of design specs). I walked out of the interview about 3/4 through and flew home to England (yes, they'd flown me in from England for the interview!). I told them their attitude and treatment of me stank. They apologized and offered me the job anyway. I turned them down. You can tell a lot about a prospective employer by the way they conduct interviews!
Anyway, it's a very interesting article and worth reading if you're on either side of the fence.


July 16, 2003
Geoff Bowers just noted that comments do not work on the old blog archives - you can't even view the comments now. Sorry, they're gone for good... unless I can resurrect the old database files. When I get time, I'll do a find/replace and remove the comments links from the old archives.


My tax refund came through recently so my wife said I could treat myself to a 15Gb iPod. It arrived today and cheered me up no end in the midst of trying to reconstruct my blog... As with most Apple stuff, it came in a beautifully designed box, very carefully packed and I just plugged it into the Firewire port and watched it copy over 400 songs from iTunes in just a few minutes (impressive!) and then I fired up iSync and it auto-detected the iPod and synchronized my Address Book and iCal entries onto it (impressive!). So there it sits, fully charged, a shiny white object of desire... I can finally listen to music on BART now!


An interesting news story which says enterprise customers looking at Linux are more interested in the stability it brings to the table than whether it is more or less expensive to run than Windows. Microsoft is not trying to claim that Windows is more stable than Linux although Microsoft has claimed the total cost of ownership is lower for Windows.


Sheesh! My blog is offline for just a few days and Macromedia put out a bunch of cool stuff that I only get to report on today...
Both Mike Chambers and Christian Cantrell have blogged examples of the cool, new "pollster" Flash widget that is coming soon on DevNet Resource Kit 4. The power of suggestion means I'll have to go and get a coffee as soon as I've finished this entry!
We also announced Contribute 2 which brings this awesome website management tool to the Mac as well as introducing Macromedia FlashPaper for Windows users. As regular readers probably know, I am a huge advocate of Contribute and was an avid user of Contribute 1 on Windows. I 'switched' just over a year ago so I was thrilled to get my hands on early releases of Contribute 2 for Mac and I'm happy again: it's just so much easier to manage updates to existing HTML websites with Contribute! I haven't seen FlashPaper at all but it sounds very interesting...


Yes, I will be trying to reconstruct the old links and templates to restore the left navigation etc. It'll take me a while so please bear with me. I'll also probably recreate the July entries so that the July archive link (left) actually shows all the entries for this month. It will certainly take me a while to get things back to the state I was in before the upgrade.


After upgrading my ISP account, my old blog database files have become unreadable. Until I can sort that mess out, I've created a new instance of the blog! The old blog can be found here (but search operates on this new blog - sorry - and the comments will try to access this new blog too - again, sorry).


July 13, 2003
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...


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
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
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!


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
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 1
Start 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.


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 9, 2003
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.


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".
The McD I use has just sprouted wifi so I may go and try it out soon...


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!).


I have just added a fledgling Mach II section to my website and updated the Fusebox section.


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...


July 7, 2003
Happy Birthday to me. Thankfully, it passed uneventfully. I'm not a big fan of birthdays. My vacation is over so normal (blog) service will be resumed now...


Hakman Peachey have demos of their JSX Objects - DHTML code - for various applications. None of the demos work in any browser I have access to. Maybe they work in MSIE for Windows? I tried Netscape, Firebird, Camino, Safari, Opera (all Mac) and the demos failed to render in every single one of those browsers. Why would anyone go to all that trouble to create a DHTML application that doesn't work in so many browsers?


July 3, 2003
A friend sent me this NASA picture (with the above title) and I laughed out loud!
NASA's Astronomy Picture Of The Day site has some awesome images on it. One of my favorites - and it was my desktop wallpaper for nearly two years! - is this picture of Earth at night.


July 2, 2003
The 4th Annual Fusebox Conference is in Las Vegas, NV this year (8/30-9/1) with the Sunday sessions devoted to Fusebox 4 and Monday's half-day session devoted to Mach-II (formerly Fusebox MX). It's a very reasonable $99 if you sign up before 7/19 (and only $149 after that).


July 1, 2003
J2SE 1.4.2 is now available. There are a lot of bug fixes in this release as well as various performance and security enhancements. Definitely worth upgrading to!


As a few others have pointed out, the session schedule is now available for MAX 2003 (November, Salt Lake City). As you can see, there's a good mix of sessions from basic to expert with a lot of interesting ColdFusion-related sessions. Quite a focus on CFCs, Web Services, Architecture and OOP - a good thing, in my opinion. I'll also highlight Dave Watt's session on Working with Multiple ColdFusion Instances which should convince folks what I've been preaching for a while: CFMX for J2EE has a lot of worthwhile benefits over the CFMX Standalone / Server edition.
I've just come back from a weekend in Salt Lake City - a cat show - and found it to be a very friendly (& very patriotic!) city that is easy to get around, once you 'grok' their grid system which is all numbered streets that extend out from the temple. We stayed in Motel 6 at 200 W 600 S - effectively two blocks west of the temple and six blocks south (the road numbers generally go up in hundreds).




Hosting provided by