NOTE: As of July 12, 2009, this blog has been discontinued and replaced by the new Thought Delimited blog. All of the entries in this blog can be found there, along with new posts.

CF411 and ColdFusion for Educational Use (Oh, And That New Browser...)

Blogging bullet-point style tonight:

  • Charlie Arehart's new CF411 site has a MASSIVE amount of links to tools and resources for CFML and web development. Stop what you're doing right now, go to the page, and store it somewhere (your bookmarks, Delicious, wherever).

  • The announcement that ColdFusion 8 Enterprise is now available for free for educational use (in other words, for learning purposes) was made on Monday. You can find out more at https://freeriatools.adobe.com/coldfusion/

    While I'm glad the announcement is out, I just wish it had been promoted better. There's still nothing about it up on the Adobe home page or even on Adobe's ColdFusion product page. Why not?

  • Last (and least...), Google surprised everyone this week with their new Chrome web browser. It got so much attention that everyone stopped talking about the iPhone, which is admittedly pretty impressive.

    Like everyone else, I've played with it. Here's my take on it (yep, more bullet-points):

    • It runs pretty well.
    • It does seem to run JavaScript more quickly than other browsers.
    • It has a few nice innovative features.
    • It can be quirky at times and it has some flaws (but it is a beta).
    • It has promise, but it doesn't provide any new functionality that I find particularly useful to me.
    • FireFox will remain my browser at work and at home.

Leveraging the Ubiquity FireFox Plugin To Access CFQuickDocs Pages

If you're a FireFox user and you haven't tried out the new Ubiquity plugin created by the folks at Mozilla Labs, you should.

What is Ubiquity? The short answer is it's a command-line interface for retrieving and re-purposing web content. For example, the "wikipedia" command built into the plugin takes the word you type in, retrieves data from the top 5 matches for that word (as you type it, no less) in Wikipedia using an API, and displays that data with clickable links to the Wikipedia pages in the command window:

You can see even more interesting uses for Ubiquity by watching the video clip in the Ubiquity blog post.

One of the things about Ubiquity that hasn't been talked about very much is that you can create your own Ubiquity commands using JavaScript and then share those commands with other Ubiquity users (note to jQuery users: Ubiquity commands can use jQuery functions as well as regular JavaScript functions). To that end, I created a very simple command that lets me call up a particular CFQuickDocs page by typing "cfquickdocs" and the name of the CFML tag or function I want to look up:

As Ubiquity commands go, it's not that impressive, but it does let me pull up a particular entry faster than I used to (which involved going into my bookmarks, clicking on the bookmark, waiting for the page to load, and then entering the tag or function I want to read about). And all it took was one function call with four parameters:

makeSearchCommand({
name: "cfquickdocs",
url: "http://www.cfquickdocs.com/?getDoc={QUERY}#{QUERY}",
icon: "http://www.cfquickdocs.com/favicon.ico",
description: "Searches the CFQuickDocs for the CFML tag or function you enter."
});

Sharing a Ubiquity command is simply a matter of putting the command in a JavaScript file and then creating an HTML page that calls that file. If you already have Ubiquity installed, you can install this CFQuickDocs command into your Ubiquity plugin by going to the following URL:

http://www.swartzfager.org/ubiquity/cfquickdocs.html

If you don't have Ubiquity installed but want to learn more about developing Ubiquity commands, there is an online tutorial that explains the basics. Once you have the plugin installed, you'll have access to a command editor that lets you try out your commands as you code them, and you can read the code for all of the functions that come built into the plugin.

AIR Recognized as a Top-10 Emerging Technology by MIT Technology Review

AIR made the Technology Review's top-10 list of emerging technologies:

TR10: Offline Web Applications

Nice to see AIR get some recognition as an emerging trend.

Now give us AIR 1.0 already! :)

Thoughts on Future Trends in Computing

At our staff meeting today, my manager told us our director was looking for input on emerging "21st century" technologies and technology trends, and to send him our thoughts so he could pass them along. Here's what I sent:

  • The introduction of applications that have both a web and and desktop front-end to access server-side data, with the desktop application provide offline functionality and data storage that can then be synchronized with the back-end data. Examples of this upcoming movement are Adobe AIR, Google Gears, and the Mozilla Prism project.
  • Increased portability of programming languages to other platforms. It's now possible to code .NET or Java application in dynamic languages such as Python or Ruby.
  • Increasing development of RIAs (Rich Internet Applications) based on AJAX, Adobe Flex, Microsoft Silverlight, and JavaFX. RIAs allow for more engaging and more powerful user interfaces and (in the case of the latter 3 technologies) make it easier to integrate audio-visual material into applications.
  • The continued growth of "cloud computing," where organizations store their non-critical data on external servers maintained by a third party but controlled and accessed by the organization over the Internet. The chief example of this is Amazon's S3 data service.
  • The continued trend of exposing the social (people-based) connections between data started by the social networking sites. The social networks themselves may stop growing, but the idea of using a person as a focal point for otherwise unrelated data is going to stick around.

...Hardly earth-shattering predictions, but other than within my particular unit, my organization isn't that hip to web trends.

Data Storage Forecast: Only Partly Cloudy

Over the past few weeks, the idea of moving data off of desktops and locally-controlled database servers and "into the cloud" (onto shared data hosting services like Amazon's S3) has been gaining more attention. A guy named Nicholas Carr went so far as to predict the demise of the IT department as businesses essentially outsource their data processing/data retention (NetworkWorld, 1/7/08).

There's no doubt that individuals store more data online these days than they used to because of the rise of applications like Facebook, Flickr, and Google Calendar. Any data that has a social aspect to it gains value by being "out there" for others to view and interact with.

There are also business processes that involve collaboration with other business partners, where arrangements are made to exchange information or tangible goods via a buyer/seller dynamic. Again, it makes sense that the data and even the applications that power such collaborations could be managed and hosted by a third party.

But there will always be a desire to keep certain data close to the vest, even if that means maintaining an internal hardware and network infrastructure. Colleges and universities are not going to outsource their student data to a third party, and medical institutions are obligated by law to safeguard medical information. Banks will probably take a pass on shared data hosting as well. Even if cloud computing becomes more accepted and reliable, there will always be groups and individuals unwilling to give up that control despite any cost savings.

Wharton School at UPenn on the Merging of Web and Desktop Technologies

Saw this on Digg today: it's an article by several members of the Wharton School of Business at the University of Pennsylvania that talks about the emergence of technologies geared towards merging the Web and the desktop. They give an overview of the recent developments: Adobe AIR, Google Gears, Silverlight, Prism, etc.

If you're not familiar with this latest trend, the article is definitely a good read:

Software's Future: Melding the Web and the Desktop

Twitter as Alert System?

Yesterday's tragedy at Virginia Tech underlined the importance of sending out warnings regarding dangerous situations as quickly as possible and through as many channels as possible.

Listening to the news last night, it sounded like the VT administration used every channel of communication at their disposal: the campus website, mass e-mails, broadcast phone messages to all campus phones, and a siren system. The university I work at (the University of Maryland) also has all of those means of getting the word out.

The one communication channel that wasn't mentioned, however, was cell phones. That's not surprising: I suspect few universities specifically collect cell phone numbers from their students, and most students would probably be hesitant to give their cell number to the university out of privacy concerns.

But in light of yesterday's events, maybe universities should rethink that issue. Messages sent to land-line phones and e-mail addresses are only received if the recipient is at their phone or is actively checking e-mail. A message sent to a cell phone, which folks usually carry with them, has a much better chance of getting the recipient's attention immediately, even if they are walking between classes. While not every student owns a cell phone, those that did and received the message could spread the word to the people around them, getting the word out much faster.

So let's assume universities offered to send emergency messages (and only emergency messages) to students who provided a cell phone number to contact: how would the university broadcast an alert to those phones?

A long-term solution would be to put a SMS messaging system in place at the university designed specifically for this purpose (universities like mine that run ColdFusion 7, for example, could build an application using the SMS Gateway service provided by the ColdFusion server).

A short-term solution could be Twitter. Twitter is a social networking tool where you can receive short messages from friends via a web page, IM, or via SMS.

A university could set up a Twitter account to use to send out emergency messages, then instruct students to get a Twitter account (which is free) and "follow" the university Twitter account. The students can then control whether they receive updates from the university Twitter account via their phone or not.

Granted, this is not what Twitter was designed for, but I think it could serve as a stop-gap measure for getting warnings out until a more robust system is put in place.

Yahoo Pipes: The Ultimate News Aggregator?

When I first heard about Yahoo Pipes, a little more than a week ago, I didn't get it. Maybe the explanation I read didn't quite communicate what it was all about, or maybe I wasn't paying close enough attention: for whatever reason, it slipped on by.

Then I heard about it again on the TWiT (This Week in Tech) podcast, and when they described it in their typical simple and straighforward manner, I got it: this was something truly unique, and very cool to boot.

So what is it? Yahoo Pipes (pipes.yahoo.com) is a web application that lets you build custom news/information feeds out of numerous existing feeds using drag-and-drop objects. Think of it as a mashup system for RSS and Atom feeds. Instead of using a news aggregator program to pull down several different RSS feeds about technology, you could build a pipe using Yahoo Pipes that would combine all of those feeds together into one. You could even apply a filter to it: you could configure it so it would only display the items from those feeds containing "ColdFusion" in the title or the body of the articles/posts.

The graphical interface is truly incredible. Programmers and non-programmers alike can build their pipes simply by adding action modules and tying them together. It's hard to describe in words, but you could build a simply pipe by starting with a Fetch module that fetches the feed from a URL you supply, tying it to a Filter module which you configure to only permit items containing your search term through, and then tying the Filter module to the Pipe Output module which returns the results. Once you've finished creating your pipe, you can save it so you can access it via a unique URL and even publish it for public consumption.

I encourage everyone to go check it out. I think I'm going to create a pipe that search the generic tech sites for postings about ColdFusion and Flex. If I do, I may post a link to that pipe in my Links module on the right.

BlogCFC was created by Raymond Camden. This blog is running version 5.1.004.