Viewing By Month : May 2004 / Main
May 27, 2004
I seem to be crazy busy at the moment both with work and personal stuff so I haven't been able to blog much this week.
I'd love to be able to blog what I'm working on right now but can't do so until more information appears on either Tim Buntel's blog or Ben Forta's blog. You can deduce it's Blackstone-related. Watch this space!
After Robin Debreuil explained what C# has that Java does not, I'm writing a fairly long response to that, as I get time to experiment more with C# and Mono. I'll blog my thoughts on C# vs Java in due course.
There's several other articles and blog entries that I've read recently that I want to write up commentaries on, so hopefully I will make up for the recent dearth of entries over the next week.
In a couple of hours, my wife and I are setting off for Albuquerque for the 5th Annual CEU Fiesta which is part of the training my wife needs to do as she shifts from cat breeding and showing to cat show judging. We'll be back some time on Tuesday so no more blogging until then!


John Dowdell called out that there are a lot of jobs currently open on the Macromedia website, especially in the engineering and IT / Operations areas. Lots of opportunities - does something suit you?


Macromedia today announced Flash Player 7 is available for Linux. This brings increased performance, CSS support and native SOAP support to browsers on the Linux platform and continues Macromedia's tradition of supporting Linux as an important platform.


May 24, 2004
Good to see that Tim Buntel has been 'persuaded' to create a blog dedicated to Blackstone, the next release of ColdFusion. Since Tim is product manager for ColdFusion, this should be a juicy, insightful and definitive blog! Welcome to the blogosphere Tim!


An informal survey about corporate blogging asks seven questions about the phenomenon. Here are the questions with my answers:
1) Why do you blog for your company?
I started back in June 2002 when my then boss, Jeremy Allaire, suggested that everyone on the CFGURU mailing list should start a blog. So the blog is first and foremost a personal blog about Macromedia technology but it also covers specific information from various internal Macromedia teams (such as promoting User Group events, highlighting new Tech Notes and product updaters etc). One important thing to note is that whilst my blog is listed in the Developer Center, I am not in any way an official community spokesperson for the company.
2) What goals did you set for the blog?
Initially it was just to aggregate and share knowledge about ColdFusion but over time it has become more of a platform for aggregating and sharing thoughts about software development in general.
3) How do you think your blog fits into your company's communications strategy?
Much like John Dowdell's blog, mine developed organically rather than as part of a direct communication strategy.
4) Tell me about the publishing mechanics of your blog. How often do you publish? How do you decide what to publish? Any special publishing techniques?
I have a calendar alarm to send me an email at 11am every weekday and I try to ensure I publish at least one entry a day (and use the emails as a reminder to catch up if I miss a day or two). I have Movable Type installed on my personal website and it publishes to HTML. That's the mechanics.
As for deciding what to publish, it's very subjective for the most part. I'll write about whatever interests me, picking up on items mentioned in the news, on other blogs, on mailing lists or from internal Macromedia requests to broadcast information. I try not to repeat something that has been widely covered already unless I feel I have something worthwhile to add. I try to stay focused on mostly technical issues.
5) Who writes the blog? Who contributes to the blog on a regular basis?
It's just me.
6) Have you achieved your original communications goals?
Yes, based on positive feedback from my readers...
7) Were there any any unexpected communications or learning consequences as a result of publishing your blog?
I continue to be surprised at how broad the readership is but overall it's been a very smooth process. I've made a lot of new friends through the blog!


May 21, 2004
A concern that has been voiced around ColdFusion lately is that it's not being taught in schools and thus there is no "grass roots" movement for it. Ben Forta points readers toward an existing education program for ColdFusion (which, I must admit, I did not know about). Spread the word - as CF developers, you can help by talking to teachers and students that know, perhaps even offering to talk to schools about why they should teach ColdFusion and pointing them to this educational package!


I've seen a couple of people reporting a mysterious and intermittent JVM crash that gives Error ID : 4F530E43505002EF at the bottom of the crash log. It's a known bug in the JVM apparently but that won't help anyone who encounters it. Steven Erat has blogged a workaround that uses the JVM -Xint option. The result is a more stable, but slower, JVM.


May 20, 2004
Macromedia has added a new MacroChat today, Thursday 5/20, at noon PDT (3pm EDT):


Macromedia has just released a hot fix for ColdFusion MX 6.1 that extends support for Verity to additional Linux versions. With this hot fix, Verity is now supported on these additional platforms: Red Hat 7.2, 7.3, 8, 9; Red Hat AS 2.1, 3.0; Red Hat ES 2.1, 3.0 and Suse 7.2, 7.3, 8.0 (in addition to the original platforms supported: Red Hat 7.2, AS 2.1, ES 2.1 and Suse 7.2).


May 19, 2004
Brandon Purcell and Deepa Subramanian have two great articles published on the Flex Developer Center covering tips & techniques for improving client application performance and Flex server performance. Lots of useful information there.
There's also an Updater for Flex 1.0 available that provides various performance improvements.


As part of community week, Macromedia is running a worldwide user group meeting today. The first session starts in just over an hour (9am PDT) so make sure you get along to your nearest local user group and catch the live presentation!


May 18, 2004
An O'Reilly blogger looks at the cost difference between buying a low-end Mac vs an equivalent PC. Of course, these sorts of comparisons usually invoke a stream of 'religious' comments and indeed that trend has started over there. I wanted to highlight it here simply because it is in line with my own experience when I was looking at a new computer for my wife about 18 months ago. She'd been a Windows user for years so we spec'd out a Dell desktop that gave her all the performance, peripherals and software she wanted - it was about $4,300. Just out of curiosity, I spec'd out the closest equivalent iMac... $3,600. So she switched... and, after the initial few months of pain spent learning the 'new way' things happen, she's very happy with her first Mac.


Jeff Peters has published a new book "ColdFusion Lists, Arrays, and Structures" through Proton Arts Books. It's good to see a book that focuses in-depth on just part of the ColdFusion language instead of trying to cover everything to only a shallow level.


May 17, 2004
I went to the INS again this morning (another 3+ hours!) to submit photos etc for my 'unconditional' Green Card and get another one year extension to my temporary I-551 stamp in my passport. I've also filed my paperwork for citizenship. That might mean that I only have to deal with the INS one more time (for the civics exam / pledging allegiance). Hurrah!
If you've followed my moving to America saga (see the timeline halfway down the page), you'll realize why I'm so pleased to be near the end of my INS interactions! Don't get me wrong - they do a very difficult job because they get a lot of complaints from their customers and I admire their patience and tolerance but that doesn't mean I enjoy going to visit them!


May 14, 2004
I got bored with the look'n'feel of the blog so I tweaked it a bit. I think it looks a bit cleaner now. Your mileage might vary...


After my problems with building the SSCLI on Panther, I decided to go with Mono Beta 1 since that has a nicely packaged installer for Mac OS X. I was very impressed with how smoothly the process went, although the installer doesn't tell you where it will put everything (/opt/local in case you are wondering). All I had to do to get up and running was to add /opt/local/bin to my path environment variable and I was writing my first C# program ("Hello World" of course).
After my experiences with the SSCLI on Jaguar, I was amazed at the speed of Mono's compiler and runtime! Now I guess I can get on with learning C# although I don't really know what I'll use it for...
I also wanted to play with ASP.NET so I downloaded XSP and mod_mono (for Apache) but the XSP server process doesn't seem to run properly on Mac OS X yet unfortunately. I may spend some time fiddling with the source code to see if I can isolate the problems. The mono-devel list already helped me to get mod_mono to build correctly but I'm guessing that not too many Mono developers are using Macs right now.


My dear friend Mats has picked up on the "my favorite tools" vibe and posted his favorite tools. I've really tried to resist this for a long time but I think I'm going to have to succumb...
  • Safari. I started with an early beta and I've loved it ever since. It's fast, feature-rich and so well integrated with the operating system.
  • Borland's Together Control Center - in my opinion the best Java design and development environment ever created. Even at $6k per seat (which it was when we bought it several years ago) it's great value!
  • Dreamweaver MX 2004 - a powerful, sophisticated code editor and HTML tool with FTP, SFTP and a myriad shortcut tools.
  • SQL Grinder - the best $49 I ever spent on shareware! An intuitive tool for manipulating databases.
  • MacCVS GUI - a powerful CVS UI, although it doesn't allow the "-b" option on diff. The fish icon is cute :)
  • MySQL - OK, I agree with Mats on this one!
  • Fire - http://fire.sourceforge.net/ - the Mac equivalent of Trillian.
  • Eclipse - promising IDE... might be worth using in a few years once they get the performance and the functionality sorted... :)
  • MacLorem - a great utility for generating gibberish to populate web pages while you are developing
  • OmniGraffle - a wonderfully intuitive graphics program
  • OpenOffice - we don't need no stinking Microsoft Office!
  • Virtual PC - a necessary evil... It works really well and, frankly, it's more reliable than native Windows on Intel
  • Watson - a whole bunch of amazingly useful utilities in a simple UI
  • Macromedia Contribute - the easiest way to manage random websites
  • NetNewsWire - the best Mac RSS feed reader
  • iCal - the simplest, best calendar application
  • Mozilla Firefox - the best "second" browser (I just upgraded from Firebird)


May 13, 2004
Rob has posted a very comprehensive wishlist for the next version of ColdFusion. He's already submitted enhancement requests for all of these but add comments to his blog entry with your feelings about his list and any enhancement requests you might have.


May 12, 2004
I used to have the MS .NET SSCLI installed on my PowerBook but I deleted it because I wasn't using it... But with all the talk of C# I decided to reinstall, now on 10.3. Except I've hit a problem and Google isn't helping me much here so I figured I'd blog it and see if anyone out there has the answer. Here's the error I get:
gcc -c -DHAVE_CONFIG_H -g -O2 -Wall -fno-exceptions -fno-common ...
../socket2.c: In function `WSARecvFrom':
../socket2.c:853: error: `POLLRDNORM' undeclared (first use in this function)
../socket2.c:853: error: (Each undeclared identifier is reported only once
../socket2.c:853: error: for each function it appears in.)
make[2]: *** [socket2.o] Error 1
make[1]: *** [all] Error 2 make: ***
[librotor_pal] Error 1
If anyone knows the magic to make this error go away so I can play with C#, I'd be very grateful!


May 11, 2004
If you don't like how Macromedia markets ColdFusion or you think Macromedia could offer better support or better documentation or...
Go comment on Ben Forta's blog - tell Macromedia what you want to make ColdFusion a success for you!


Dale Asberry has posted a fascinating piece about why distributed systems are so hard to design that focuses on some human failings - the inability to separate 'self' from 'other' - and the impact that has on our ability to decision systems with loose coupling and good cohesion. It makes for interesting reading. I particularly like the table at the end of the article that shows what causes tight coupling and loose coupling in various dimensions of the problem space.


May 9, 2004
Hacknot's Mr Ed takes a stick to the XP zealots again. What I like about his various forays into this area are that he's mostly attacking the zeal with which XP is upheld but the XPers who comment on his posts always think he's attacking XP itself (and thus display exactly the zeal that he is criticizing in the first place!).
There is no one true way that works for all people, all teams or all projects. This is true of all the "ologies" we deal with in the software industry. The trick is knowing which parts of which "ology" will work for you and your team and adopt them accordingly (and in an informed manner).
Like Mr Ed, I have misgivings about a number of things many XP people seem to think - the agile manifesto (quoted in the comments on Hacknot) has led many XPers to completely undervalue process, tools, documentation, contracts and plans to the point of viewing them as unimportant. They are important in the bigger picture - XP is very programmer-focused and while that may get software built faster, it doesn't mean you get a good maintenance proposition. I'm not convinced that YAGNI, KISS and "embrace change" are a good basis for a system that will be easy to maintain and enhance in the future (they're often good for the micro-problem but the macro-problem needs more forethought and more care, in my opinion).


This is an interesting question asked by Matt Woodward (in a comment on my Lake Woebegone post):
...do you think that the fact that many CFers continue to do things in what in their mind is the "easy way" (i.e. procedurally) is harming the reputation of CF as a language/technology?
My simple answer to this is "No, I don't believe that harms CF's reputation" and I'll argue that based on having seen a lot of procedural code written in C++ and Java. Back in the day, I used to audit a lot of code from around the world - C++, C and FORTRAN. You could always tell the FORTRAN programmers who had recently learned C - they wrote C in the style of FORTRAN (we called it "C-TRAN"). Some of them never adjusted to the C mindset. It never harmed the reputation of C.
Similarly, a lot of C programmers migrated to C++ but what many of them really did was to simply use a C++ compiler on their old C code and they never became idiomatic C++ programmers - they never 'got' OO. C++ drew some criticism for allowing that behavior but since it was intended to be somewhat backward compatible with C, you can hardly blame those non-OO programmers (and, ultimately, I don't believe it harmed the reputation of C++).
Java also has its share of procedural programmers - even tho' they are forced to use at least one class just to get code to run. I don't think that hurts Java's reputation.
The point is that you can write procedural code in any OO language (well, it's hard to write procedural code in Smalltalk but it is still technically possible). You can't hold that against a language - especially a deliberately multi-purpose language (as C++ has proclaimed itself to be).
Going back to the original question, I don't think a failure to adopt OO amongst ColdFusion programmers is going to hurt the language's reputation. ColdFusion was designed to be extremely easy to learn and it has certainly allowed "non-programmers" to be very productive. Indeed, that is one of ColdFusion's key selling points: designers and HTML producers can easily 'step up' to ColdFusion and produce dynamic web sites. It is that very strength that has 'harmed' ColdFusion's reputation as far as being taken seriously as a programming language. Look at how much-maligned Visual Basic is - for a very similar reason: it was "too easy" to learn and it allowed non-programmers to get stuff done.
What we are seeing now is an interesting 'fork' in the ColdFusion community between those folks who want to 'move on' and become 'serious programmers' while remaining with ColdFusion and those folks who simply love ColdFusion because it helps them get their jobs done - the non-programmers with a great tool to build dynamic web sites. The fact that the programmers (mostly self-taught, I'll guess) want to stay with ColdFusion as they climb the ladder is a testament to the language itself. ColdFusion now has to face the challenge of serving both communities...


My reference to Hal's comments about OO has drawn some good comments with a common theme:
"What is really missing are more good books that look at OO with CF."
"Unfortunately, aside from Discovering CFCs [..], I have found that there are very limited resources for understanding how employ OO in CF."
"...it would be fantastic if a CF book existed that from the very beginning taught OO as the correct/preferred way to build applications in CF."
They're right of course - CF-specific OO resources are very, very sparse today. Hal recommends learning Java or C# to learn OO - there's certainly more resources out there for OO in those languages. There's another reason why Hal recommends learning OO through those languages: a lot of the OO literature and design patterns material assumes your language of choice supports interface. ColdFusion does not (yet), so it can be hard to learn the concepts when you can't write the code directly. Of course, you don't need interface to write OO code - look at Smalltalk which is one of the grand-daddies of OO languages which has neither interfaces nor multiple inheritance. Similarly, you can implement all the design patterns and anything else you want to in ColdFusion - you just need ColdFusion-specific guidance on how to do it!
I've always been a strong advocate of being multi-lingual. Knowing only one language - or even only related family of languages - narrows your viewpoint and can make you set in your ways in terms of problem solving. I have always recommended learning additional languages that are somewhat out-of-the-box. Java and C# are the obvious "other" languages to learn these days but they are too closely related to be your only other languages. In the past on this blog, I've talked about learning a functional programming language like Haskell [blog entry] and I've also talked about Smalltalk [blog entry]. Another language I highly recommend is Prolog which is a declarative language. All of these have free implementations for pretty much every platform so you've no excuse for not trying them.
Haskell: nhc98 (compiler), hugs (interpreter).
Smalltalk: Cincom Smalltalk.
Prolog: SWI Prolog.
Enjoy!


May 8, 2004
My wife & I had a great time in San Diego last week - the drive down was very smooth (just over seven hours door-to-door), great food in Old Town San Diego (both Cafe Coyote and Zocalo are highly recommended), San Diego Zoo (always good!), the Natural History Museum (great exhibit on feathered dinosaurs from China) and, of course, the San Diego ColdFusion User Group meeting. It was a good crowd, RoboDemo and RoboHelp both went down very well (thanx to Silke and Mike from Macromedia San Diego!) and I got a lot of good questions after my Mach II presentation. Afterwards, some of us went to Joe's Crab Shack (never let Cameron give you directions! :) to continue the discussions and eat and drink. A very enjoyable evening!
The drive back? Slow traffic out of San Diego, had to stop to get fresh tires on the Mustang due to a nasty bulge in the wall of the Bridgestones it was wearing before (tread separation perhaps?) and then an accident on the Grapevine held us up for an age (seems to happen almost every time I drive back that way).


I'm catching up on all the blogs I read and I liked this post from Hal Helms about the irresistable force that is OO. It's not exactly what some CFers want to hear but it's an honest opinion born of wanting to help CFers stay marketable. Hal's right on several points here - you can't avoid OO, you can't learn it overnight, the dot com bubble burst and life is just plain ol' different now...


Macromedia Community Week Promotion BadgeOld news on some blogs but I was away on vacation when this hit the wire so I have an excuse! Macromedia is celebrating their customer community by hosting "Community Week", May 17-21. According to the official blurb, this is "an opportunity to learn, network and interact with Macromedia product managers and our customer community". Lots of Breeze live presentations - and the centerpiece of the week is a worldwide live Macromedia User Group meeting where you can "get a glimpse of the future technologies, features, and functions that Macromedia engineers have been working on". Go to www.macromedia.com/community/ for more information.


May 2, 2004
Well, not quite today but it has been about twenty years now since I started doing professional IT (my first paid gig was actually 1980). Not surprisingly, I've seen a lot of changes in the IT space over the last two decades! I was just asked by a friend of mine (Hi Arvind!) what are my favorite changes in that time... the first thing that popped into my head was wireless networking. That's probably had the biggest impact on my life in terms of convenience (I have a wireless network at home and work is wifi everywhere). What else has changed in that time? What hasn't changed? I remember a world without C++ or Java, for example - a world where OO wasn't mainstream. I remember a world where a personal computer was probably something you built yourself and a laptop was pretty much unthinkable. A world where 1Mb RAM was huge and so was a 20Mb hard disk!
So what have been the most impressive changes, in my opinion, over the last twenty years?
  • Wireless Networking
  • The ubiquity of personal computing, especially the powerful and very portable modern laptop
  • Object-Orientation, helping us to better understand and better model real-world problems
  • The ubiquity of the operating system GUI (X11 / Motif, Mac OS, Windows), making computers affordable for everyone - in the usability sense
  • The World-Wide Web
That's what comes to mind right now... I'll give it more thought and may update this entry in future...


I'm heading out to Old Town, San Diego tomorrow morning and will be "off air" for a week. I'm speaking at SDCFUG on Tuesday night but otherwise the week is pure play time! The zoo, Cinco de Mayo, breakfast at Cafe Coyote, dinner at The Great Wall and who knews what else will fill our week. This is the first real vacation my wife & I have taken together for several years and we're really looking forward to it!




Hosting provided by