Archive for October, 2003

ColdFusion vs Flash (Part II)

(For background on this project, see yesterday’s post.)

The application I’m experimenting with is called Community Resource Directory (CRD). It’s a simple application which other community managers and myself will use to keep track of various online community resources such as weblogs, mailing lists, forums, news groups, etc. Resources will have one or more categories (relating to the particular technology they address) and one medium (mailing list, forum, weblog, etc.). The application will support all the operations you would expect: adding, updating and deleting resources, categories and mediums.

I’m well on my way to having the HTML version of this application functional. As of this moment, I can add, update and delete categories. So far, I’m very happy with the way the architecture is turning out. It’s much more complex than if I had just decided to hack together a quick ColdFusion/HTML version of the application, but even though the application is not particularly extensive, I am treating it as though it could grow into something much larger. In my opinion, the key to a successful and effective architecture is that it should never grow in complexity (beyond an initial level of complexity) no matter what type of functionality you add to your application and how big it gets. The application should scale in size, not in complexity. In other words, it’s ok if the application seems a little complicated at 5 pages as long as it is no more complicated at 500.

I have designed the ColdFusion/HTML version of the application to use web services, and much to my delight, although I am invoking as many as 4 remote functions during the course of a single request, the application is still very fast. Of course, the web services happen to be located on the computer the client is running on, so this isn’t a fair test yet, but I’m glad to see that using web services is not noticeably slower than invoking the components they wrap directly.

One thing I am being very careful not ever do is put any remote function invocations in loops. For instance, if I want to delete ten categories, the wrong way to accomplish this would be to call the remote deleteCategory function ten times in a loop. Instead, I build an array of category IDs that are meant to be deleted, and send that over the wire instead. This is much more efficient, and should have a dramatic impact on how well the application performs.

ColdFusion MX 6.1 Verses Flash MX 2004

I’m working on a relatively simple application that I have decided I am going to build both a ColdFusion/HTML and a Flash interface for. Neither interface will provide any more or less functionality than the other, and both will be written on top of the same components, but I think it will be an interesting experience. I will document the pros and cons of both approaches as I go along.

I’m considering a slightly unique architecture for this project, as well. The Flash front-end will use web services to communicate with the server, and I’m actually considering having the ColdFusion/HTML interface communicate via the same web services. Unconventional, I know. The the obvious approach would be to have the web services that the Flash front-end uses wrap the components that the ColdFusion/HTML interface uses, but if they both use the same web service interface, that would allow me to run the ColdFusion interface on a different server than the rest of the back-end, which I think is interesting. I haven’t decided yet, but I’m leaning in that direction. If nothing else, it would be an interesting experiment, and I am interested in seeing how the ColdFusion application would perform.

Modular Computing — It’s About Time!

On November 7th, Antelope Technologies will launch the first truly modular computer (at least, as far as I know). What is a modular computer? It’s something I have been envisioning for about 5 years now, and something I can remember my father talking about for at least 20 years. It’s a separation between the computer and its form factor, so one computer becomes your hand-held, desktop and laptop. And in my opinion, it’s long overdue. If Antelope delivers on what they are promising, we can finally stop waiting on the mythical OQO ultra-personal hand-held PC.

Interesting Article on Community MX

How many of you visit Community MX on a regular basis? There are some good paid articles over there, but also some good free content, as well. An interesting article called “Getting Into Good Coding Habits” just went live today. Here is an excerpt:

In this article, we will look at how we can customise the default ColdFusion template that Dreamweaver generates to aid our workflow. Further aiding our local development, we will also look at how we can help ColdFusion process our templates in a more efficient manner. This will aid the processing speed and therefore improve the rendering time in the browser window which, of course, delivers a faster site to our end user.

US Government Powered By ColdFusion

I’m sure many of you already caught this on Ben Forta’s weblog, but in case you missed it, it seems that ColdFusion is, by far, the preferred technology for government websites. Second is ASP, third is PHP, and last is JSP. You can get more specific numbers on forta.com.

DRK 5 Released

DRK 5 was released today to DevNet subscribers. As always, there is plenty of cool ColdFusion content.

  • Blog Man: Blog Man is a web log manager built in ColdFusion. A year in the making, this application balances manageability with scalability. It features many of the tools you’ve probably seen in Movable Type and other blog applications…
  • Lighthouse Bug Tracker: Lighthouse Bug Tracker is a simple system that enables bug tracking in projects. It makes tracking (and tackling) development issues simple and straightforward…
  • Pollster 2.0: Macromedia Pollster 2.0 is a hybrid ColdFusion/Flash application for easily creating and deploying polls and poll results on your website. Some of the new features in Pollster 2.0 include user accounts, unlimited options, automatic and manual updates of poll results, and automatic poll archiving…
  • Weblog Service: Weblog Service is an application that allows you to expose any RSS feed (regardless of version) as a web service. Once this feed has been exposed, clients can query your RSS data as though it were a database…
  • Socket.cfc: The Socket component allows you to create a two-way communication link between your server and another server. Socket connections are often called “raw socket connections” because they work at a lower level than something like the CFHTTP tag and they don’t assume any kind of protocol other than what’s needed to make and manage the socket connection…
  • CFID3 Component: The CFID3 component is based on the open-source JD3Lib Project, which allows you to manipulate the ID3 tags of MP3s natively with ColdFusion MX. Additionally you can update a database with parsed ID3 information…
  • HTTP Agent: Every time your application uses the CFHTTP tag, it spends a sizable amount of time waiting for a response from the HTTP request. During that time, your application sits idle. This may be all right if you have only a single request to make but imagine if you have dozens or hundreds to make. Wouldn’t it be great if you could put that time to better use? HttpAgent does just that. Instead of executing a single request and having it block (wait for response), you can execute as many simultaneous connections as you wish…
  • Query Randomizer: The Query Randomize user-defined function, queryRandomize, randomizes the rows in a query object so that they are not ordered by anything…

Right now, DRK 5 is only available for download by subscribers because the CDs aren’t ready yet, but they will be shortly. I’ll post here when I find out more.

Customizing Unordered Lists

I occasionally see people on lists and forums asking how they can customize bulleted lists. This is about all you need to know:

.disc {list-style:disc}

  • this is
  • a disc

.square{list-style:square}

  • this is
  • a square

.circle {list-style:circle}

  • this is
  • a circle

.image {list-style-image:url(http://www.markme.com/cantrell/images/mm_bullet.gif)}

  • these are
  • custom bullets

Apple Introduces G4 iBooks

Right after introducing iTunes for Windows, Apple has rolled out a new line of iBooks. My very first Mac was an iBook which I loved, except for the performance. Man, was it slow. Back in those days (when OS X first came out and couldn’t even be used to burn a CD yet), the iBooks had a better form-factor than the Powerbooks. Recently, the Powerbooks have undergone a much-needed redesign, however, and are finally the perfect laptops (for Mac users, of course). The new iBooks are attractive, though, if you need something small, light, and relatively inexpensive.

Curious About Royale?

Have you heard of Royale? If not, “Royale is the internal code name for an initiative at Macromedia that addresses the requirements of enterprise programmers who want to develop Rich Internet Applications.” Royale isn’t available yet, but it is rapidly maturing, and will soon be ready for beta testing. If you’re interested in becoming a tester, apply now.

Overview of the Future of IE

By now, I think we’re all aware of the upcoming changes in Internet Explorer, however I’m still occasionally seeing questions and debates in the community. Macromedia recently published a short, concise Breeze presentation which does an excellent job of describing the issue and the available solutions. If you have questions about if or how the new version of Internet Explorer will affect you, I encourage you to check it out.