<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Brian Swartzfager&apos;s Blog - Miscellaneous</title>
			<link>http://www.swartzfager.org/blog/index.cfm</link>
			<description>blog</description>
			<language>en-us</language>
			<pubDate>Fri, 03 Sep 2010 12:35:58 -0400</pubDate>
			<lastBuildDate>Mon, 13 Jul 2009 18:26:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>bcswartz@gmail.com</managingEditor>
			<webMaster>bcswartz@gmail.com</webMaster>
			
			<item>
				<title>The End of This Blog, The Start of Another</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/7/13/The-End-of-This-Blog-The-Start-of-Another</link>
				<description>
				
				I wasn&apos;t planning on writing a &quot;moving on&quot; post on this blog.  I was going to wait for the folks at &lt;a href=&quot;http://feeds.adobe.com&quot; target=&quot;_blank&quot;&gt;Adobe Feeds&lt;/a&gt; (the only blog aggregator where I&apos;m listed) to update my entry to point to my new blog and simply start blogging there.  But with the release of the ColdFusion 9 and ColdFusion Builder betas on &lt;a href=&quot;http://labs.adobe.com&quot; target=&quot;_blank&quot;&gt;Adobe Labs&lt;/a&gt; last night, now&apos;s not the time to be without an active blog.

So the point of this post is to serve notice about my new blog over at:

&lt;a href=&quot;http://www.thoughtdelimited.org/thoughts&quot; target=&quot;_blank&quot;&gt;www.thoughtdelimited.org/thoughts&lt;/a&gt;

I&apos;ll see if I can cajole Ray Camden to take a break from his stream of tutorial blog posts and videos on CF9/CFB to add my new blog to his &lt;a href=&quot;http://www.coldfusionbloggers.org&quot; target=&quot;_blank&quot;&gt;ColdFusionBloggers aggregator&lt;/a&gt;, so that at least I&apos;m aggregated somewhere (not that ColdFusionBloggers is any less of an aggregator than Adobe Feeds; in some ways it&apos;s better).  We&apos;ll see how that goes.  :)

Until then, and until Adobe Feeds is updated with my new blog RSS feed address, the best way to find out if I&apos;ve posted anything new would be to follow me on Twitter (bcswartz). 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Mon, 13 Jul 2009 18:26:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/7/13/The-End-of-This-Blog-The-Start-of-Another</guid>
				
			</item>
			
			<item>
				<title>My First Mozilla Jetpack Add-On For Firefox: browseTimer</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/5/25/My-First-Mozilla-Jetpack-AddOn-For-Firefox-browseTimer</link>
				<description>
				
				As I &lt;a href=&quot;http://www.swartzfager.org/blog/index.cfm/2009/5/21/Mozilla-Announceds-Jetpack-an-API-For-Writing-FireFox-AddsOn-with-jQuery-HTML-and-CSS&quot; target=&quot;_blank&quot;&gt;previously mentioned&lt;/a&gt; on my blog last week, Mozilla has launched a new means of creating add-ons for Firefox called &lt;a href=&quot;https://jetpack.mozillalabs.com/&quot; target=&quot;_blank&quot;&gt;Jetpack&lt;/a&gt;, which allows would-be plugin developers to build add-ons with HTML, CSS, and Javascript functions that include all of the &lt;a href=&quot;http://www.jquery.com&quot; target=&quot;_blank&quot;&gt;jQuery&lt;/a&gt; functions.

As it happens, the first two functions listed in the &lt;a href=&quot;https://jetpack.mozillalabs.com/api.html&quot; target=&quot;_blank&quot;&gt;Jetpack API&lt;/a&gt; were the &lt;em&gt;clearInterval()&lt;/em&gt; and &lt;em&gt;clearTimeout()&lt;/em&gt; functions, and that gave me a idea.  My most recent AIR application, &lt;a href=&quot;http://focustimer.riaforge.org&quot; target=&quot;_blank&quot;&gt;focusTimer&lt;/a&gt;, is a desktop widget inspired by time management techniques like &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; target=&quot;_blank&quot;&gt;Pomodoro&lt;/a&gt;, where you basically shut out/off all distractions and work on a task for a set amount of time.  Once that time is up, the idea is to take a short break before starting another distraction-free period.

&lt;img src=&quot;http://www.swartzfager.org/blog/mozillaJetpack/browseTimer/screenshot.gif&quot; style=&quot;padding: 5px 15px; float: right;&quot;&gt; 

So my Jetpack add-on, &lt;a href=&quot;http://www.swartzfager.org/blog/mozillaJetpack/browseTimer/installBrowseTimer.html&quot; target=&quot;_blank&quot;&gt;browseTimer&lt;/a&gt;, is a timer built into the status bar of Firefox that lets you set how much time you want to spend browsing the web before getting back to work.  Once the timer expires, the add-on uses the Jetpack API functions for the Firefox tabs to blank out the content of all of your open Firefox tabs and turn the body of the now-blank pages red (in other words, you KNOW when the timer has run out!).

It&apos;s certainly not the most useful add-on in the world, but it didn&apos;t take long and it helped me learn the basics of Jetpack.

If you&apos;re interested in checking it out, visit the following page...

&lt;a href=&quot;http://www.swartzfager.org/blog/mozillaJetpack/browseTimer/installBrowseTimer.html&quot; target=&quot;_blank&quot;&gt;http://www.swartzfager.org/blog/mozillaJetpack/browseTimer/installBrowseTimer.html&lt;/a&gt;

...for the link to the Jetpack add-on need to run all Jetpack-based add-ons, links to the Macintosh and Windows versions (there were slight differences in how the input elements were displayed in the status bar that warranted two separate versions), and instructions on how to uninstall it if you don&apos;t like it/need it. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>jQuery</category>
				
				<category>JavaScript</category>
				
				<pubDate>Mon, 25 May 2009 14:55:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/5/25/My-First-Mozilla-Jetpack-AddOn-For-Firefox-browseTimer</guid>
				
			</item>
			
			<item>
				<title>In Defense of Twitter</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/5/23/In-Defense-of-Twitter</link>
				<description>
				
				Since I&apos;ve already defended &lt;a href=&quot;http://www.twitter.com&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; in two other people&apos;s blogs this past week, I figured I should write my own post on the matter.  That way, if I feel inclined to comment on Twitter use again, I can just post the URL to this entry and leave it at that (save myself some typing).

I wasn&apos;t enamored with Twitter when I first checked it out.  I wasn&apos;t interested in the mundane things people were doing at the moment, and I certainly didn&apos;t think anyone really cared what I was doing.

But at cfObjective() 2008, it quickly became clear that Twitter could help me connect with fellow conference-goers and clue me in on what was going on in particular sessions, where people were gathering to hang out or go out, etc.  And I&apos;ve used Twitter ever since:  I&apos;m not on it every waking moment and I don&apos;t feel like I&apos;m disconnected when I&apos;m not on it, but I do make use of it.

I really feel that the simple trick to getting value out of Twitter is to follow people whose Twitter posts (&quot;tweets&quot;) provide some value to you:  information, insight, humor, whatever.  Most of the people I follow are ColdFusion/RIA/Web developers, and they&apos;ll post any interesting links about those topics that they encounter as they surf the web.  It&apos;s almost like a people-powered RSS feed of tech articles, except that you&apos;re getting the information from people you know and respect rather than random people.

Sure, there are the occasional tweets about where people are or what they&apos;re having for lunch, the tidbits of daily life, but those can be easily ignored if you&apos;re not interested.  And yes, it can be a distraction if you&apos;re getting live updates from Twitter via a desktop client like &lt;a href=&quot;http://www.twhirl.org/&quot; target=&quot;_blank&quot;&gt;Twhirl&lt;/a&gt; or &lt;a href=&quot;http://www.tweetdeck.com/beta/&quot; target=&quot;_blank&quot;&gt;Tweetdeck&lt;/a&gt;, but there&apos;s a simple solution to that:  turn it off while you&apos;re working, and turn it back on when you&apos;re taking a break.

I&apos;m not trying to push Twitter on anyone--you can live without it--but I think folks should give it a serious try before deciding one way or the other. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Sat, 23 May 2009 20:55:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/5/23/In-Defense-of-Twitter</guid>
				
			</item>
			
			<item>
				<title>Mozilla Announces Jetpack, an API For Writing FireFox Adds-On with jQuery, HTML, and CSS</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/5/21/Mozilla-Announceds-Jetpack-an-API-For-Writing-FireFox-AddsOn-with-jQuery-HTML-and-CSS</link>
				<description>
				
				I found out about this last night from a tweet sent out by the &lt;a href=&quot;http://www.twitter.com/jquery&quot; target=&quot;_blank&quot;&gt;jQuery Twitter account&lt;/a&gt; (which is probably a good indication that they like the idea).

The subject line pretty much says it all:  Jetpack is designed to let current web developers use their existing skills with HTML, CSS, JavaScript, and jQuery to build Firefox add-ons/plugins without the need to mess with Firefox&apos;s XUL mark-up language.  While JavaScript has always been part of the add-on development process, the inclusion of jQuery should make performing certain actions a whole lot easier.

You can learn more about Jetpack via the following URLs:

&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;https://jetpack.mozillalabs.com/&quot; target=&quot;_blank&quot;&gt;https://jetpack.mozillalabs.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://labs.mozilla.com/2009/05/introducing-jetpack-call-for-participation/&quot; target=&quot;_blank&quot;&gt;http://labs.mozilla.com/2009/05/introducing-jetpack-call-for-participation/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;https://jetpack.mozillalabs.com/tutorial.html&quot; target=&quot;_blank&quot;&gt;https://jetpack.mozillalabs.com/tutorial.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

...the tutorials in the final link give you a good idea of the kinds of things Jetpack will allow you to do:  the last example is a Jetpack add-on that will count and display the number of unread e-mails in your Gmail Inbox.

I want to give Jetpack a whirl, but I honestly can&apos;t think of any functionality I want to add to Firefox that I can&apos;t get from an existing plugin.  Anyone have any suggestions for something to try with Jetpack? 

It&apos;s interesting how web technologies keep being repurposed as a development option in other technologies (Adobe AIR, the upcoming Palm Pre&apos;s &lt;a href=&quot;http://developer.palm.com/&quot; target=&quot;_blank&quot;&gt;WebOS&lt;/a&gt;, and now Jetpack).  Even though I&apos;m not particularly interested in delving into all these different areas, I must say that I like the trend.  :) 
				</description>
				
				<category>RIAs</category>
				
				<category>Miscellaneous</category>
				
				<category>jQuery</category>
				
				<category>JavaScript</category>
				
				<category>CSS</category>
				
				<pubDate>Thu, 21 May 2009 07:29:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/5/21/Mozilla-Announceds-Jetpack-an-API-For-Writing-FireFox-AddsOn-with-jQuery-HTML-and-CSS</guid>
				
			</item>
			
			<item>
				<title>Bug In How Safari 3.2.1 Renders the Links For RSS Feeds</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/5/9/Bug-In-How-Safari-321-Renders-The-Links-For-RSS-Feeds</link>
				<description>
				
				One of my clients contacted me yesterday to tell me that there was a problem with reading their RSS feed in Safari (and only in Safari).

Over the next hour or so, I learned quite a bit about how the current version of Safari (3.2.1 as of this writing) handles RSS:

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
By default, Safari is configured to open up your default e-mail client to handle/read RSS feeds, resulting in a lot of head-scratching by your truly when I tried to navigate to the feed and ended up with a &quot;Compose New Message&quot; window in Thunderbird.  While a lot of people do prefer the RSS-reading capabilities of their mail client over what the browser does with feeds, make that decision for the user is a questionable call on Apple&apos;s part, and some sort of alert/notice that this was the deal would have been nice.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
A lot of browsers these days will apply a style to the RSS feed XML (probably using some sort of built-in XSL, I&apos;m guessing) prior to display so that it&apos;s more human-readable and the hyperlinks for each news item are clickable.  But you can still view the raw XML using the &quot;View Source&quot; option of the browser.  Safari, on the other hand, transforms the feed into an HTML file with JavaScript, leaving no trace of the original XML.  Again, another somewhat presumptuous decision by Apple to buck convention in order to enhance the user experience.
&lt;/li&gt;
&lt;/ul&gt;

...Those two issues are annoyances rather than bugs.  The problem affecting my client&apos;s RSS feed, however, is a bug in regards to how Safari is transforming the RSS data before displaying it to the user.

Each news item in an RSS feed can contain a number of elements/nodes, two of which are the &amp;lt;link&amp;gt; and &amp;lt;guid&amp;gt; elements.  The &amp;lt;link&amp;gt; element is meant to contain the URL where the reader can access the full text of the item.  The &amp;lt;guid&amp;gt; element contains a string that uniquely identifies that RSS feed item within the feed (like a primary key in a database).  

If the &amp;lt;guid&amp;gt; element contains the &quot;isPermaLink&quot; attribute and that attribute value is set to &quot;true&quot;, then that indicates that the &amp;lt;guid&amp;gt; element also contains a URL (a permanent one) to the full text of the item (one that might be different from the URL in the &amp;lt;link&amp;gt; element), and an RSS client could legitimately used the URL in the &amp;lt;guid&amp;gt; as the link to the story instead.

What I discovered, though, was that Safari was creating the hyperlink for each news item by combining the value of the &amp;lt;link&amp;gt; element in the &amp;lt;channel&amp;gt; node of the RSS feed with the value of the &amp;lt;guid&amp;gt; element of each item (which was simply a unique numeric value), even though the &amp;lt;guid&amp;gt; elements did NOT contain the &quot;isPermaLink&quot; parameter.  So instead of using the value of the &amp;lt;link&amp;gt; element of each item as per the RSS specs, Safari ended up creating non-existent URLs.

The solution, of course, was simple:  I just put the URL for each news item in the &amp;lt;guid&amp;gt; element as well as the &amp;lt;link&amp;gt; element.  Point is, I shouldn&apos;t have had to.

Once I applied the solution, I did some searching to find out if this is a known problem that was being worked on.  I found one mention of it in a generic tech support forum post published in 2008, so it looks like the problem has existed for awhile but hasn&apos;t gotten much attention (probably because most people read RSS feeds through actual RSS clients).  I used Safari&apos;s built-in bug report mechanism to report it to Apple, but I don&apos;t hold out much hope for that having an impact.

Still, I thought it worth a post, on the off-chance this information might help someone else. 
				</description>
				
				<category>Web development</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Sat, 09 May 2009 14:36:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/5/9/Bug-In-How-Safari-321-Renders-The-Links-For-RSS-Feeds</guid>
				
			</item>
			
			<item>
				<title>New AIR Application:  focusTimer</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/5/6/New-AIR-Application--focusTimer</link>
				<description>
				
				A few weeks ago, &lt;a href=&quot;http://www.pbell.com/&quot; target=&quot;_blank&quot;&gt;Peter Bell&lt;/a&gt; wrote a blog post about the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; target=&quot;_blank&quot;&gt;Pomodoro Technique&lt;/a&gt;, a time management technique that advocates setting aside a set amount of time to turn off all distractions (e-mail, IM, Twitter) and focusing on a single task.  I had just recently starting adopting the practice of shutting down my e-mail client once in awhile so as not to be distracted by incoming messages, so the idea made a lot of sense to me.

Not having a physical kitchen timer like the Pomodoro folks use and finding my stopwatch to be somewhat inadequate, I decided to try and write an AIR application to fit my needs.  And so the focusTimer was born.

It&apos;s a very simple app:  set the amount of time you want to focus (the 25 minutes advocated by the Pomodoro folks is the default), and click the &quot;Start&quot; button.  I didn&apos;t want to get caught up in checking to see how much time was left, so I added a button so I could toggle between seeing the time left and just a status message.  

I wanted to keep the window small so that it could be moved out of the way, but I also wanted a strong visual cue for when the time was up, so the color of the window changes to green when you start the countdown, switches to yellow for the &quot;2-minute warning&quot;, and ends in red when the timer runs out.  In the two days I&apos;ve been using it at work, I&apos;ve found that I can move the window to the far end of my secondary monitor and still catch the color change out of the corner of my eye.

Finally, even though the idea is to block out all distractions, there are some interruptions that cannot be ignored, so the &quot;Start&quot; button toggles between a &quot;Pause&quot; button and a &quot;Resume&quot; button once the countdown has started.  If your focus session goes completely off the rails, you can use the &quot;Cancel&quot; button to break out of it and start all over again.

Even though I wrote this AIR app primarily for myself, I figured other folks might find it useful, so it&apos;s now available for download up on RIAforge:

&lt;a href=&quot;http://focustimer.riaforge.org&quot; target=&quot;_blank&quot;&gt;http://focustimer.riaforge.org&lt;/a&gt; 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>AIR</category>
				
				<pubDate>Wed, 06 May 2009 07:31:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/5/6/New-AIR-Application--focusTimer</guid>
				
			</item>
			
			<item>
				<title>Do We Need A Better Way To Survey the CFML Community?</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2009/1/27/Do-We-Need-A-Better-Way-To-Survey-the-CFML-Community</link>
				<description>
				
				I just finished reading Issac Dealey&apos;s &lt;a href=&quot;http://ontap.riaforge.org/blog/index.cfm/2009/1/20/survey1&quot; target=&quot;_blank&quot;&gt;recent blog post&lt;/a&gt; (worth reading, by the way) where he shares some of the results from a survey he conducted regarding framework preferences back in September.  

In the post, he mentioned how difficult it seems to be to get folks to participate in these kinds of surveys, and it reminded me that someone else in the community was recently pleading with folks to take their survey (unfortunately, I forget who, but I did take it).  And I wonder what kind of a response Hal Helms is getting with his &lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=0eA1iqZZt948FgGrD9hZyg_3d_3d&quot; target=&quot;_blank&quot;&gt;ColdFusion Web Developer Survey&lt;/a&gt;.

So it got me thinking:  is surveying the community/getting feedback from the community a problem in need of a solution?  Are these surveys being neglected because people don&apos;t see the point or don&apos;t have the time?  Or is the low response rate more the result of a lack of publicity or poor technical implementation of the survey itself?

Any thoughts? 
				</description>
				
				<category>CFML</category>
				
				<category>ColdFusion</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Tue, 27 Jan 2009 07:48:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2009/1/27/Do-We-Need-A-Better-Way-To-Survey-the-CFML-Community</guid>
				
			</item>
			
			<item>
				<title>Idea: Give Adobe Bolt Collaboration Features</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/12/3/Idea-Give-Adobe-Bolt-Collaboration-Features</link>
				<description>
				
				In my last blog post, I suggested that Adobe include a list of CFML community resources in the upcoming &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Bolt&quot; target=&quot;_blank&quot;&gt;Bolt IDE&lt;/a&gt; in order to promote the community to isolated developers who might otherwise be unaware of all the resources out there.

After thinking about it a bit more, it occurred to me that maybe Bolt could take it one step further.  Instead of simply using Bolt to point developers to the community, have Bolt bring the community to the developer.  Build in an RSS viewer that displays the latest ColdFusion posts from Adobe Feeds.  Put in a communicator tool so the developer can converse with other CFML programmers via IM or Twitter.  Let the developer screen-share their code with other developers both inside and outside of their organization.  Integrate geolocation into Bolt and show the developer a list of other Bolt users (and maybe Adobe user groups) that are nearby.  Instead of using e-mail and message boards to communicate with CFML developers, Adobe could broadcast any news announcements to all of the Bolt installs, and Bolt users could submit questions to Adobe and other users via discussion forums displayed in a window of the IDE that gets refreshed automatically.

I&apos;ll admit, it&apos;s a pretty pie-in-the-sky idea.  Given that Adobe only has a finite amount of time and resources, I would certainly not want Adobe to leave out any traditional IDE features, the things that allow developers to code quickly and efficiently, in order to take the time to add all of the things I just suggested.

But if they did have a little extra time, I think adding even one or two simple collaboration/informational features would certainly enhance the product, and perhaps set a trend for other IDEs to follow. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>ColdFusion</category>
				
				<category>CFML</category>
				
				<category>Adobe</category>
				
				<pubDate>Wed, 03 Dec 2008 20:12:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/12/3/Idea-Give-Adobe-Bolt-Collaboration-Features</guid>
				
			</item>
			
			<item>
				<title>Adobe MAX Day 2 Keynote In Progress.  News So Far:  New CF IDE (Bolt)</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/11/18/Adobe-MAX-Day-2-Keynote-In-Progress--News-So-Far--New-CF-IDE-Bolt</link>
				<description>
				
				The MAX Day 2 keynote address is still in progress.  So far, the biggest news so far regarding ColdFusion is the announcement of Bolt, a ColdFusion IDE based on Eclipse to be released at or around the same time as ColdFusion 9.  Sounds promising.  

You can sign up to participate in pre-release testing of Bolt on Adobe Labs at &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Bolt&quot;&gt;http://labs.adobe.com/wiki/index.php/Bolt&lt;/a&gt;

Not much else about ColdFusion so far:  I&apos;m trying to keep apprised by watching Twitter and the live blogging being done by two Adobe evangelists at &lt;a href=&quot;http://www.webkitchen.be/2008/11/18/max-san-francisco-keynote-day-2-liveblog/&quot;&gt;http://www.webkitchen.be/2008/11/18/max-san-francisco-keynote-day-2-liveblog/&lt;/a&gt;

Unfortunately, I am at work, so I can&apos;t entirely devote my full attention to what&apos;s going on. :) 
				</description>
				
				<category>ColdFusion</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Tue, 18 Nov 2008 14:31:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/11/18/Adobe-MAX-Day-2-Keynote-In-Progress--News-So-Far--New-CF-IDE-Bolt</guid>
				
			</item>
			
			<item>
				<title>CF411 and ColdFusion for Educational Use (Oh, And That New Browser...)</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/9/3/CF411-and-ColdFusion-for-Educational-Use-Oh-And-That-New-Browser</link>
				<description>
				
				Blogging bullet-point style tonight:

&lt;ul&gt;

&lt;li&gt;
&lt;p&gt;
Charlie Arehart&apos;s new &lt;a href=&quot;http://www.carehart.org/cf411/&quot; target=&quot;_blank&quot;&gt;CF411&lt;/a&gt; site has a MASSIVE amount of links to tools and resources for CFML and web development.  Stop what you&apos;re doing right now, go to the page, and store it somewhere (your bookmarks, Delicious, wherever).
&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
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 &lt;a href=&quot;https://freeriatools.adobe.com/coldfusion/&quot; target=&quot;_blank&quot;&gt;https://freeriatools.adobe.com/coldfusion/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;While I&apos;m glad the announcement is out, I just wish it had been promoted better.  There&apos;s still nothing about it up on the Adobe home page or even on Adobe&apos;s ColdFusion product page.  Why not?
&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;
Last (and least...), Google surprised everyone this week with their new &lt;a href=&quot;http://www.google.com/chrome&quot; target=&quot;_blank&quot;&gt;Chrome&lt;/a&gt; web browser.  It got so much attention that everyone stopped talking about the iPhone, which is admittedly pretty impressive.
&lt;/p&gt;
&lt;p&gt;Like everyone else, I&apos;ve played with it.  Here&apos;s my take on it (yep, more bullet-points):
&lt;ul&gt;
  &lt;li&gt;It runs pretty well.&lt;/li&gt;
  &lt;li&gt;It does seem to run JavaScript more quickly than other browsers.&lt;/li&gt;
  &lt;li&gt;It has a few nice innovative features.&lt;/li&gt;
  &lt;li&gt;It can be quirky at times and it has some flaws (but it is a beta).&lt;/li&gt;
  &lt;li&gt;It has promise, but it doesn&apos;t provide any new functionality that I find particularly useful to me.&lt;/li&gt;
  &lt;li&gt;FireFox will remain my browser at work and at home.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;/li&gt; 
				</description>
				
				<category>Technology</category>
				
				<category>Miscellaneous</category>
				
				<category>ColdFusion</category>
				
				<category>CFML</category>
				
				<pubDate>Wed, 03 Sep 2008 20:20:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/9/3/CF411-and-ColdFusion-for-Educational-Use-Oh-And-That-New-Browser</guid>
				
			</item>
			
			<item>
				<title>Leveraging the Ubiquity FireFox Plugin To Access CFQuickDocs Pages</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/8/29/Leveraging-the-Ubiquity-FireFox-Plugin-To-Access-CFQuickDocs-Pages</link>
				<description>
				
				If you&apos;re a FireFox user and you haven&apos;t tried out the new &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot; target=&quot;_blank&quot;&gt;Ubiquity&lt;/a&gt; plugin created by the folks at Mozilla Labs, you should.

What is Ubiquity? The short answer is it&apos;s a command-line interface for retrieving and re-purposing web content. For example, the &quot;wikipedia&quot; 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:

&lt;img src=&quot;http://www.swartzfager.org/blog/images/ubiquity_wiki.gif&quot; /&gt;

You can see even more interesting uses for Ubiquity by watching the &lt;a href=&quot;http://labs.mozilla.com/2008/08/introducing-ubiquity/&quot; target=&quot;_blank&quot;&gt;video clip&lt;/a&gt; in the Ubiquity blog post.

One of the things about Ubiquity that hasn&apos;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 &lt;a href=&quot;http://www.cfquickdocs.com/&quot; target=&quot;_blank&quot;&gt;CFQuickDocs&lt;/a&gt; page by typing &quot;cfquickdocs&quot; and the name of the CFML tag or function I want to look up:

&lt;img src=&quot;http://www.swartzfager.org/blog/images/ubiquity_cfq.gif&quot; /&gt;

As Ubiquity commands go, it&apos;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:

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

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:

&lt;a href=&quot;http://www.swartzfager.org/ubiquity/cfquickdocs.html&quot; target=&quot;_blank&quot;&gt;http://www.swartzfager.org/ubiquity/cfquickdocs.html&lt;/a&gt;

If you don&apos;t have Ubiquity installed but want to learn more about developing Ubiquity commands, there is an 
&lt;a href=&quot;https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial&quot; target=&quot;_blank&quot;&gt;online tutorial&lt;/a&gt; that explains the basics.  Once you have the plugin installed, you&apos;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. 
				</description>
				
				<category>Technology</category>
				
				<category>RIAs</category>
				
				<category>Miscellaneous</category>
				
				<category>jQuery</category>
				
				<category>JavaScript</category>
				
				<pubDate>Fri, 29 Aug 2008 11:51:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/8/29/Leveraging-the-Ubiquity-FireFox-Plugin-To-Access-CFQuickDocs-Pages</guid>
				
			</item>
			
			<item>
				<title>If You Build the App, Someone Just Might Use It:  You Never Know</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/8/23/If-You-Build-the-App-Someone-Just-Might-Use-It--You-Never-Know</link>
				<description>
				
				I was rather surprised to see my &lt;a href=&quot;http://colorPicker.riaforge.org&quot; target=&quot;_blank&quot;&gt;colorPicker AIR application&lt;/a&gt; included in a list of &lt;a href=&quot;http://sixrevisions.com/tools/adobe_air_apps_web_designers/&quot; target=&quot;_blank&quot;&gt;10 AIR apps for web designers&lt;/a&gt; on the &lt;a href=&quot;http://sixrevisions.com/&quot; target=&quot;_blank&quot;&gt;Six Revisions&lt;/a&gt; blog this past week.  Then Gary Gilbert gave it more exposure by &lt;a href=&quot;http://www.garyrgilbert.com/blog/index.cfm/2008/8/19/Air-Apps-for-Web-Designers&quot; target=&quot;_blank&quot;&gt;blogging&lt;/a&gt; about the Six Revisions post.

After seeing the Six Revisions post, I decided to check colorPicker&apos;s download numbers on &lt;a href=&quot;http://www.riaforge.org&quot; target=&quot;_blank&quot;&gt;RIAForge&lt;/a&gt; and got another surprise:  the download count was just shy of 800.

As of today, four days after the blog exposure, the download count stands at 1119.

I built the colorPicker mainly for myself (and I still use it).  I put it up on RIAForge because I thought a FEW people might prefer something a bit simpler than &lt;a href=&quot;http://kuler.adobe.com&quot; target=&quot;_blank&quot;&gt;Kuler&lt;/a&gt; (Adobe&apos;s color palette tool).  But given the number of slick color designer AIR apps that are out now, I would never have expected that many people to have given colorPicker even a glance.

It just goes to show that you never know what apps or code other people might find worthwhile. 
				</description>
				
				<category>Web development</category>
				
				<category>Miscellaneous</category>
				
				<category>AIR</category>
				
				<pubDate>Sat, 23 Aug 2008 18:18:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/8/23/If-You-Build-the-App-Someone-Just-Might-Use-It--You-Never-Know</guid>
				
			</item>
			
			<item>
				<title>Google&apos;s new virtual room service (Lively) may have potential</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/7/10/Googles-new-virtual-room-service-Lively-may-have-potential</link>
				<description>
				
				Yesterday Google launched a new beta project called &lt;a href=&quot;http://www.lively.com/html/landing.html&quot; target=&quot;_blank&quot;&gt;Lively&lt;/a&gt;.  Lively lets you create virtual rooms that people can join and then interact with each other via avatars.  The concept is similar to virtual reality systems like The Sims or Second Life, but the difference is that you can put the rooms that you build on your own web page(s).

When I first heard about it, I thought the idea was a bit over-the-top, but I decided to at least try it out last night.

For a first version beta, it&apos;s pretty slick.  You start off with a basic set of room layouts and room items (furniture, decorations, accessories) to build your room with, but you can choose to add different items from an on-line catalog (currently, all of the items are &quot;free,&quot; which seems to imply a virtual currency may be established later when they let folks create their own stuff).  Once you add an item to the room, you can move the item by dragging it and then rotate it as needed.  You can also add mood music, either from the catalog of music or by uploading your own music file.

Once you&apos;ve decided an avatar to represent you, you can enter the room and interact with the items (if there&apos;s a couch, you can choose to sit down on it).  If there are other people/avatars in the room, you can chat with them just like you would in a normal chatroom and your words will appear in a conversation block over your head for everyone to see (or you can whisper privately to a single fellow occupant).  Right-clicking on your avatar brings up a menu of gestures and animations you can have your avatar perform, like clapping, laughing, or dancing like John Travolta in &quot;Pulp Fiction&quot; (yes, it&apos;s as bizarre-looking as you might think).

I threw together a very simple room and then embedded the code to access the room on a very simple web page on my site.  You can &lt;a href=&quot;http://www.swartzfager.org/LivelyTestRoom.cfm&quot; target=&quot;_blank&quot;&gt;check it out&lt;/a&gt; if you like, but since you&apos;ll need the Windows-only plugin to enter the room, which is the same plugin that lets you create your own room and avatar, you&apos;re probably better off trying Lively out by creating your own room.

The need for the plugin to even enter a room is probably one of the biggest drawbacks of the service.  The visual evidence strongly suggests that Lively runs off of Flash and was built using Flex (I once saw the standard Flex &quot;Initializing...&quot; dialog box while loading my room) so it&apos;s unclear as to why a separate plugin is needed.  Maybe Adobe can work with Google to redo the plugin in AIR so it&apos;s at least cross-platform.

The other challenge facing adoption of Lively is, well, its usefulness.  Right now, it&apos;s essentially an enhanced chat room.  Some folks have said that businesses could use it to hold virtual meetings, but I don&apos;t see that happening unless Lively is upgraded to allow one or more room participants to speak via a microphone and provides a means of working with a presentation (Lively does allow you to display Flash videos within your room but I didn&apos;t explore that feature).

And while the idea of having a virtual room up on your home page or blog is kinda neat, it&apos;s not going to do you much good unless there&apos;s a compelling reason for people to come and hang out in groups in YOUR room.  Centralized virtual realities like Second Life are never empty because there&apos;s just one world for people to go to:  certain areas might be emptier than others, but there&apos;s always someone around to interact with.

Still, I do see some potential uses for it with established communities.  Popular online forums could replace their existing chat rooms with Lively rooms.  Businesses could create a guest room or visitor room where website visitors could hang out before interacting with customer service avatars.  Conferences like cf.Objective() or CFUnited could have virtual discussions rooms that allow conference-goers to discuss the day&apos;s events with non-conference goers (&quot;Folks, the in-person BOFs will be from 8pm to 9pm, followed by the online BOF free-for-all in the Lively room from 9pm to...whenever.&quot;)

Heck, the folks on the &lt;a href=&quot;http://www.riadventure.com/&quot; target=&quot;_blank&quot;&gt;RIA cruise in February&lt;/a&gt; could take the Lively &quot;tropical island&quot; room template and make a place to meet up with non-cruise landlubbers at some point during the cruise if they wanted to.

Who knows if people would make use of these rooms, but the beauty is that it doesn&apos;t take long at all to create a basic Lively room, so if it doesn&apos;t work out the time lost in trying isn&apos;t painful.

It&apos;ll be interesting to see if this goes anywhere.  My guess is that it&apos;ll depend on how much time and effort Google decides to invest in it and whether it will scale effectively (I heard that there were load issues when it first went public yesterday, but I didn&apos;t have any real problems with it last evening). 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Flex</category>
				
				<pubDate>Thu, 10 Jul 2008 07:25:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/7/10/Googles-new-virtual-room-service-Lively-may-have-potential</guid>
				
			</item>
			
			<item>
				<title>Table normalization verses long-term data storage</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/5/14/Table-normalization-and-longterm-data-storage</link>
				<description>
				
				I&apos;m currently working on an application that involves long-term storage of assessment data.  Users submit records of their activities and assess their performance, and then reviewers look over those assessments and denote whether they agree or disagree with them.  Each assessment database record is related to a reviewer through the unique reviewer id that is part of the assessment record, and I can use that relationship to retrieve the reviewer&apos;s name whenever I display the assessment record.

It&apos;s a standard example of table normalization.  If the reviewer&apos;s name was stored within the assessment record itself, and the reviewer changed their name for some reason (marriage, divorce, mid-life crisis, etc.), the application would have to update the name in both the reviewer&apos;s record AND the assessment record.  But by using the reviewer&apos;s id in the assessment record to establish a relationship between the assessment record and the reviewer record, the reviewer&apos;s name only needs to be recorded or updated once. 

However, this project will entail keeping the assessment data for an undetermined number of years.  With the data arrangement I just described, that means I would have to store the assessment records and all of the related reviewer records if I want to be able to keep showing the name of the reviewer when looking at older assessment records.  That could result in keeping a lot of extra data about reviewers (addresses, e-mail addresses, logins, passwords, etc.) who are no longer associated with the program simply because we need to keep their name tied to the assessments.

I think this is one of those situations where it makes sense to repeat a little data.  Recording the reviewer&apos;s name in the assessment records allows me to let the administrative users of the application delete reviewer user accounts without impacting historical data.  It means a bit more work in keeping the reviewer&apos;s name the same in both records, but in the long run I think it&apos;s worth the effort. 
				</description>
				
				<category>Web development</category>
				
				<category>Oracle</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Wed, 14 May 2008 14:00:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/5/14/Table-normalization-and-longterm-data-storage</guid>
				
			</item>
			
			<item>
				<title>Finish the sentence:  &quot;I know I&apos;m in a coding zone/groove when...&quot;</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/4/23/Finish-the-sentence--I-know-Im-in-a-coding-zonegroove-when</link>
				<description>
				
				&quot;...I correctly write a recursive algorithm involving nested arrays on the first try.&quot;

What about you?  When do you know you&apos;re in a coding groove such that it feels like you&apos;re coding by feel/intuition? 
				</description>
				
				<category>ColdFusion</category>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Wed, 23 Apr 2008 15:09:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/4/23/Finish-the-sentence--I-know-Im-in-a-coding-zonegroove-when</guid>
				
			</item>
			
			<item>
				<title>ColdFusion Developers and Social Technologies</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/3/25/ColdFusion-Developers-and-Social-Technologies</link>
				<description>
				
				My manager is attending the BEA Participate conference in May (we run their portal product), and yesterday he and I sat down with a developer who was creating the portal for the conference itself.  The conference portal was designed to promote social networking:  attendees will be able to track the status of other attendees, see what their interests are, leave comments for them on their comment wall, and communicate with them via a Twitter channel.  

Everyone attending the conference is getting an iPod Touch and there will be a mobile version of the portal so folks can simply use the iPod to keep abreast of what&apos;s going on.

My initial reaction was that it was a really cool idea...which is strange because I&apos;m not really into social networking.  I have a &lt;a href=&quot;http://www.twitter.com&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt; account and a &lt;a href=&quot;http://www.pownce.com&quot; target=&quot;_blank&quot;&gt;Pownce&lt;/a&gt; account, but I never use them:  who wants to hear what I&apos;m currently doing, and when do I have the time to stop and tell them?

But I could see myself using these social technologies at a specific event like a conference, where part of the fun IS being social and participating in the discussion.  The trick is that you have to have enough attendees to embrace the idea in order for it to be worthwhile.  My manager isn&apos;t into social networking either, so I wonder if folks at his conference are really going to use these social networking features.

I can&apos;t help but wonder what would happen if we had a similar social networking portal at a big ColdFusion conference like &lt;a href=&quot;http://www.cfobjective.com&quot; target=&quot;_blank&quot;&gt;cf.Objective()&lt;/a&gt; or &lt;a href=&quot;http://www.cfunited.com&quot; target=&quot;_blank&quot;&gt;CFUnited&lt;/a&gt;.  Assuming the typical saturation of the wireless bandwidth wasn&apos;t a problem, would most CF developers interact with each other using these tools? 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Tue, 25 Mar 2008 07:32:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/3/25/ColdFusion-Developers-and-Social-Technologies</guid>
				
			</item>
			
			<item>
				<title>XML Is A Fickle Beast</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/3/12/XML-Is-A-Fickle-Beast</link>
				<description>
				
				I was curious as to why my two most recent blog posts had not shown up on the &lt;a href=&quot;http://weblogs.macromedia.com/mxna/&quot; target=&quot;_blank&quot;&gt;MXNA feed&lt;/a&gt;, so I just took a look at the RSS XML for my blog using FireFox.

Unfortunately, these days Firefox never exposes the raw XML:  it formats it into a more &quot;user-friendly&quot; view.  So I didn&apos;t see any error, but the essentially blank page was enough of a confirmation that there was a problem.

I wasn&apos;t sure if IE does the same thing with XML these days, so I fired up Opera.  I&apos;ve never used Opera to troubleshoot XML problems, and was presently surprised at how it output the XML as text and highlighted the first invalid character.

It turned out that I had two invalid characters in one of my posts, and it know why:  I copied and pasted some of the text from a Word document and never cleaned it up.  What I find really strange about it is that particular post was almost a month old, and I know I&apos;ve had other posts processed by MXMA since then, so why did it become a problem today?  Interesting.

But at least it&apos;s fixed. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Wed, 12 Mar 2008 19:55:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/3/12/XML-Is-A-Fickle-Beast</guid>
				
			</item>
			
			<item>
				<title>Google Maps Street View Now Includes St. Paul (And The cf.Objective Hotel)</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/3/10/Google-Maps-Street-View-Now-Includes-St-Paul-And-The-cfObjective-Hotel</link>
				<description>
				
				My colleague Chris, a Java developer, was making arrangements to attend this year&apos; &lt;a href=&quot;http://www.ja-sig.org/&quot; target=&quot;_blank&quot;&gt;JA-SIG&lt;/a&gt; conference.  As he was finishing up, he found a link to Google Maps that ended up taking him the Google Maps Street View of St. Paul.  He&apos;d never seen the &lt;a href=&quot;http://www.google.com/help/maps/tour/#street_view&quot; target=&quot;_blank&quot;&gt;Street View&lt;/a&gt; feature of Google Maps, so he showed it to me.

It was only when I saw the view of the hotel from the street view and saw the name of the hotel did I realize that JA-SIG is being held at the same hotel as &lt;a href=&quot;http://www.cfobjective.com&quot; target=&quot;_blank&quot;&gt;cf.Objective()&lt;/a&gt;, the Crowne Plaza.  Even funnier, JA-SIG ends on April 30, and cf.Objective() starts on May 1st.

Obviously the Crowne Plaza is the hip place to be if your technically-inclined.  They even have a virtual version of the hotel in &lt;a href=&quot;http://www.secondlife.crowneplaza.com/&quot; target=&quot;_blank&quot;&gt;Second Life.&lt;/a&gt;  I wonder if they&apos;ll let us hold a couple of virtual developer parties there? 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Mon, 10 Mar 2008 20:38:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/3/10/Google-Maps-Street-View-Now-Includes-St-Paul-And-The-cfObjective-Hotel</guid>
				
			</item>
			
			<item>
				<title>Internet Explorer 8&apos;s Webslices Feature:  Widgetizing Pieces of Web Pages?</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/3/5/Internet-Explorer-8s-Webslices-Feature--Widgetizing-Pieces-of-Web-Pages</link>
				<description>
				
				The first &lt;a href=&quot;http://www.microsoft.com/windows/ie/ie8/welcome/en/default.html&quot; target=&quot;_blank&quot;&gt;public beta of Internet Explorer 8&lt;/a&gt; was released today.  In addition to supposedly being fully web standards-compliant, IE 8 comes with two new...well, capabilites:  Activities and Webslices.

Curious (and admittedly a bit bored with what I was currently doing), I did a Google search and came up with a page that does a pretty good job of explaining Activities and Webslices:

&lt;a href=&quot;http://blogs.msdn.com/astrauss/archive/2008/03/05/ie8-beta-is-out-and-with-it-some-slices-activities.aspx&quot; target=&quot;_blank&quot;&gt;IE8 Beta Is Out And With It Some Slices &amp;amp; Activities&lt;/a&gt;

The Activities capability allows web developers to provide XML code that will add contextual menu options to certain page content when you right-click on that content, allowing you to send that content to another web page or service, like sending an address on the page to a mapping service like Google Maps.

The Webslices capability is even more interesting (if I understand it correctly):  using CSS, web developers can tag a piece of the web page as being a slice.  End-users can then save this slice in IE, and IE will periodically check that slice for any changes.  If the content is changed, the end-user is notified and they can pull up just that part of that web page as a pop-up widget in the browser.

I don&apos;t quite know what to make of it...it&apos;s like they&apos;ve made it possible to send a request to a webservice from the  page (Activities) and to make part of the page a webservice (Webslices).

It&apos;s an interesting idea, but what will the other browsers do with this stuff? 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Wed, 05 Mar 2008 15:41:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/3/5/Internet-Explorer-8s-Webslices-Feature--Widgetizing-Pieces-of-Web-Pages</guid>
				
			</item>
			
			<item>
				<title>If You Don&apos;t Follow RIA News, You Must Be a TWiT</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/3/4/If-You-Dont-Follow-RIA-News-You-Must-Be-a-TWiT</link>
				<description>
				
				I just finished listening to the &lt;a href=&quot;http://www.twit.tv/134&quot; target=&quot;_blank&quot;&gt;latest &quot;This Week in Tech&quot; (TWiT) podcast&lt;/a&gt; on my way home from work tonight.

I&apos;m a regular listener of TWiT.  Even though I&apos;m aware of most of their news items prior to hearing it from them, I like some of the personalities on the show and their discussions are generally interesting.  But I have one big problem with TWiT:  they never talk about RIA (Rich Internet Application) technology.  Oh, they might say the word &quot;Flash&quot; or &quot;Flex&quot; in regard to some specific product or service, and maybe say a sentence or two about AJAX, but that&apos;s as far as it ever goes.  Maybe they think their audience is mostly end-users who don&apos;t care, but that doesn&apos;t stop them from talking about stuff that only geeks would truly care about, so I don&apos;t think it&apos;s a valid excuse.

I thought this week might be different.  With all of the press coverage over the release of AIR this week, and with all the subsequent articles hyping the RIA struggle between Microsoft and Adobe, Silverlight vs. AIR (even though it&apos;s not an accurate comparision)...surely the TWiT panel couldn&apos;t ignore the topic this week.

Sure they could.

What got me even more frustrated was the way it WASN&apos;T mentioned.  Just over 4 minutes into what was an 87-minute podcast, host Leo Laporte notes they have a large roundtable group and &quot;absolutely nothing to talk about.&quot;  Not usually a good sign for the rest of the podcast.

After discussing about two news stories and a discussion about having another option for listening to podcasts besides via iTunes, the discussion turned to a comparison between the Twitter and Pownce messaging systems.  I got hopeful again: Pownce provides an AIR-powered desktop application, so maybe the discussion would cause the AIR release to come up.  One panelist mentioned that the Pownce API had been updated last week, and I thought &quot;Maybe they were waiting on the release of AIR to release that new API&quot; (I have no idea if the events were related).

So I shouted (I kid you not) at my iPod, while driving in my car, at the pre-recorded voice of someone who could not possibly hear me:  &quot;Say maybe it was because of AIR! Mention AIR! &lt;strong&gt;SAY ITS NAME!&lt;/strong&gt;&quot;

Yeah, well, that didn&apos;t work.

I&apos;m not a fanboy of AIR, or Flex, or any of the other RIA technologies (though I do use AJAX reasonably often).  I like whatever gets the job done in the most reasonable way.  I wouldn&apos;t be upset if they made fun of any of those technologies, or questioned their usefulness, or whatever:  I listen to them for their opinions, whether I agree with them or not.

But to not say anything:  that&apos;s pathetic.  RIAs are out there and gaining a presence, whether good or bad.  I can&apos;t see how you can ignore them by mistake.

Near the end of the podcast, regular panelist John Dvorak mocked the use of Twitter because at the end of the day, it didn&apos;t put $5 in his pocket, and a few minutes later someone on Twitter apparently offered to send him $5.

Hey, John, I&apos;ll send you $5 if you can get the TWiT panel to discuss RIA technology.  It would be worth it at 10x the price. 
				</description>
				
				<category>RIAs</category>
				
				<category>AIR</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Tue, 04 Mar 2008 18:33:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/3/4/If-You-Dont-Follow-RIA-News-You-Must-Be-a-TWiT</guid>
				
			</item>
			
			<item>
				<title>Adobe Open Source Website</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/2/25/Adobe-Open-Source-Website</link>
				<description>
				
				This may get missed in the news about the release of AIR and Flex, but apparently Adobe released a new website dedicated to the open source projects they&apos;re involved with (Flex, BlazeDS, Tamarin, etc.):

&lt;a href=&quot;http://opensource.adobe.com/wiki/display/site/Home&quot; target=&quot;_blank&quot;&gt;Adobe Open Source&lt;/a&gt;

...Fortunately it didn&apos;t escape &lt;a href=&quot;http://www.succor.co.uk/&quot; target=&quot;_blank&quot;&gt;Nick Tong&apos;s&lt;/a&gt; attention (I read about it on his blog).  Good catch, Nick. 
				</description>
				
				<category>Flex</category>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Mon, 25 Feb 2008 07:54:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/2/25/Adobe-Open-Source-Website</guid>
				
			</item>
			
			<item>
				<title>Thoughts on Future Trends in Computing</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/2/19/Thoughts-on-Future-Trends-in-Computing</link>
				<description>
				
				At our staff meeting today, my manager told us our director was looking for input on emerging &quot;21st century&quot; technologies and technology trends, and to send him our thoughts so he could pass them along.  Here&apos;s what I sent:

&lt;ul&gt;
&lt;li&gt;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.
&lt;/li&gt;

&lt;li&gt;Increased portability of programming languages to other platforms.  It&apos;s now possible to code .NET or Java application in dynamic languages such as Python or Ruby.
&lt;/li&gt;

&lt;li&gt;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.
&lt;/li&gt;

&lt;li&gt;The continued growth of &quot;cloud computing,&quot; 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&apos;s S3 data service.
&lt;/li&gt;

&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;

...Hardly earth-shattering predictions, but other than within my particular unit, my organization isn&apos;t that hip to web trends. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Technology</category>
				
				<category>Web development</category>
				
				<pubDate>Tue, 19 Feb 2008 18:29:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/2/19/Thoughts-on-Future-Trends-in-Computing</guid>
				
			</item>
			
			<item>
				<title>Some Design Considerations When Building A Web App for iPhone/iPod Use</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/2/17/Some-Design-Considerations-When-Building-A-Web-App-for-iPhoneiPod-Use</link>
				<description>
				
				I recently finished a small project that involved optimizing some simple web applications for use on an iPhone/iPod Touch.

I won&apos;t bore you with the specifics of the project (unless someone asks) but here are some things I learned during the experience:

&lt;ul&gt;
&lt;li&gt;There is no touch analog for click-and-drag (probably because dragging is an action reserved for moving around the page), so drag-and-drops will not work and you cannot select text for copying, cutting or pasting.  This means the dragging tools/effects implemented in the various JavaScript libraries (jQuery, Yahoo YUI, etc.) won&apos;t work.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;There&apos;s really no way to &quot;hover&quot; over an element with your finger, so any CSS style initiated by hovering will not come into play.
&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Because fingers are less precise than a mouse cursor, you have to make sure there is enough space between different clickable elements (links, checkboxes, etc.) so that the user can easily click only on what they want to click on.  So if you have a vertical list of hyperlinks, you may want to put at least one line of space between them.
&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;When you click on a text field, textarea, or select box, the page zooms in and either a keyboard or a list of drop-down choices appears at the bottom of the screen.  Once you make your choice/enter your text and tap the &quot;Done&quot; button, the zoom doesn&apos;t reverse, so you end up still focused on the input element.  That means if you have a submit button off to the left or right, you have to tap and scroll the page to it in order to tap it.  If your application is designed to be viewable in the iPhone/iPod without the need for zooming, you might be able to negate this effect by disallowing all zooming (haven&apos;t tried this yet).
&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Selecting a choice from a drop-down box does not fire off the onChange JavaScript event for that box, probably because the action is intercepted in order to allow the iPhone/iPod to do the actions described in the previous bullet.  The onChange event for text boxes might be similarly affected.
&lt;/li&gt;
&lt;/ul&gt; 
				</description>
				
				<category>Web development</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Sun, 17 Feb 2008 12:26:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/2/17/Some-Design-Considerations-When-Building-A-Web-App-for-iPhoneiPod-Use</guid>
				
			</item>
			
			<item>
				<title>Investing My Tax Rebate In the ColdFusion Economy</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/2/14/Investing-My-Tax-Rebate-In-the-ColdFusion-Economy</link>
				<description>
				
				So it&apos;s official now:  eligible Americans will be getting a tax rebate check in the mail, probably in May, between $300 and $600 each ($1200 total for an eligible couple filing jointly).

The government&apos;s hope is that we&apos;ll go out and spend this money, thereby stimulating the retail economy.  Personally, I doubt it&apos;ll help the economy that much, but I&apos;m willing to spend a little of that money for the cause.

But I&apos;m a big fan of killing multiple vultures with a single rock, so why not invest in the ColdFusion economy as well as the national retail economy?  To that end, I just purchased all three of the &lt;a href=&quot;https://www.amazon.com/s/ref=nb_ss_/103-8458195-9880609?url=search-alias%3Daps&amp;field-keywords=ColdFusion+Web+Application+Construction+Kit&amp;x=0&amp;y=0&quot; target=&quot;_blank&quot;&gt;ColdFusion 8 CFWACK books&lt;/a&gt; in anticipation of my rebate check.  I might also spend some of it on related material, maybe on an upgrade of my &lt;a href=&quot;http://www.visibone.com&quot; target=&quot;_blank&quot;&gt;Visibone&lt;/a&gt; cheat sheets or an upgrade of Flex Builder once version 3 is out (should be soon now...).

(Grin) And hey, maybe I can deduct all of these purchases as professional expenses.

&lt;strong&gt;P.S&lt;/strong&gt; In my zeal to get the CFWACK books ordered, I forgot about investing in the &lt;a href=&quot;https://secure.houseoffusion.com/subscriptions.cfm&quot; target=&quot;_blank&quot;&gt;Fusion Authority Quarterly Update&lt;/a&gt;, another excellent ColdFusion resource. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Thu, 14 Feb 2008 20:03:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/2/14/Investing-My-Tax-Rebate-In-the-ColdFusion-Economy</guid>
				
			</item>
			
			<item>
				<title>Data Storage Forecast:  Only Partly Cloudy</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/2/12/Data-Storage-Forecast--Only-Partly-Cloudy</link>
				<description>
				
				Over the past few weeks, the idea of moving data off of desktops and locally-controlled database servers and &quot;into the cloud&quot; (onto shared data hosting services like Amazon&apos;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 (&lt;a href=&quot;http://www.networkworld.com/news/2008/010708-carr-it-dead.html&quot; target=&quot;_blank&quot;&gt;NetworkWorld, 1/7/08&lt;/a&gt;).

There&apos;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 &quot;out there&quot; 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. 
				</description>
				
				<category>Technology</category>
				
				<category>Miscellaneous</category>
				
				<pubDate>Tue, 12 Feb 2008 07:45:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/2/12/Data-Storage-Forecast--Only-Partly-Cloudy</guid>
				
			</item>
			
			<item>
				<title>The End of Netscape</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/1/30/The-End-of-Netscape</link>
				<description>
				
				I just read an announcement that our help desk, which provides technical support for all of the university, is ending support for all Netscape web browsers and e-mail clients on February 1st, the same date that Netscape itself is ending support for those products.

The announcement surprised me a bit:  usually we&apos;re not that quick to cut off support for a product.  But it makes sense:  with spyware and other malware being such a big user support problem, having folks using a browser that&apos;s no longer being updated or patched to deal with such malicious programs would only add to the pain.

For me, that means less browser to code for when building internal apps (though pages that rendered correctly in FireFox and IE almost always rendered properly in Netscape as well).

Goodbye Netscape! 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Wed, 30 Jan 2008 08:07:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/1/30/The-End-of-Netscape</guid>
				
			</item>
			
			<item>
				<title>Techniques For Providing Instructions Within A Web Application</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/1/22/Techniques-For-Providing-Instructions-Within-A-Web-Application</link>
				<description>
				
				Some of the processes you find in web applications are fairly standard.  Most folks can fill out a contact form, or fill out a survey, or make a calendar entry without the need for too much explanation.  But what do you do when the form involves business rules that the user may or may not know, or presents the user with a number of options?  [More]
				</description>
				
				<category>Web development</category>
				
				<category>Miscellaneous</category>
				
				<category>jQuery</category>
				
				<pubDate>Tue, 22 Jan 2008 20:40:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/1/22/Techniques-For-Providing-Instructions-Within-A-Web-Application</guid>
				
			</item>
			
			<item>
				<title>Browser Inconsistencies:  Yuck!</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2008/1/9/Browser-Inconsistencies--Yuck</link>
				<description>
				
				Usually I don&apos;t have to wrestle with web browser inconsistencies in my work:  very few of the JavaScript functions I write need to be altered to work differently depending on the browser, and my page layouts don&apos;t typically need to be pixel-perfect.

But when I do have to make adjustments for different browsers, it can be a real pain.  I&apos;ve spent several hours over the past two days trying to get my latest little personal project to look right in various browsers (IE, FireFox, Opera, etc.).  The slight sizing variations between the browsers wouldn&apos;t normally be a problem, but I happen to be working with a very small horizontal space such that even the difference of a few pixels can screw it up.

Fortunately, I&apos;ve reached a point where the layout is acceptable (if not perfect) in the web browser.  So hopefully my project will make its way here onto my blog within the next day or so. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Wed, 09 Jan 2008 20:59:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2008/1/9/Browser-Inconsistencies--Yuck</guid>
				
			</item>
			
			<item>
				<title>How to Use the Same Server-Side Code to Validate Form Data With or Without AJAX Using jQuery</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/12/29/Simple-technique-for-using-serverside-validation-code-for-client-OR-serverside-form-validation</link>
				<description>
				
				In any web application, if the user submits information to be stored in a database using a form, you always want to validate that information before it&apos;s stored in the database.  The majority of users have JavaScript enabled in their web browser, allowing you to use JavaScript functions to validate the data on the client-side before the submission is allowed to proceed.  However, there are those rare individuals who have JavaScript turned off, so a conscientious developer will also validate the submitted data on the server side as well as a backup.

The problem with this is that you end up having to maintain two sets of validation functions, which means twice the work if you have to make a change to the submission form or the validation rules themselves.  In addition, if you&apos;re not experienced with JavaScript, you may find it harder to write the JavaScript validation code than similar code in your server-side programming language of choice.

In an earlier blog post, I wrote about how the latest version of ColdFusion, ColdFusion 8, provides a new tag called &amp;lt;cfajaxproxy&amp;gt; that allows you to make JavaScript calls to functions contained in ColdFusion Component (CFC) files on the server, enabling you to write your validation code within CFC functions and call them for either client-side or server-side validation.  

But what if you&apos;re not running ColdFusion 8 yet, or you&apos;re using another web programming language (like PHP)?

Here&apos;s a technique I came up with using the &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery JavaScript library&lt;/a&gt; and the &lt;a href=&quot;http://malsup.com/jquery/form/&quot;&gt;jQuery Form plugin&lt;/a&gt; that lets you write your validation and database-update code on the server-side in such a way that you can either call it via AJAX if JavaScript is enabled or run it server-side if JavaScript isn&apos;t available:  [More]
				</description>
				
				<category>Miscellaneous</category>
				
				<category>jQuery</category>
				
				<category>JavaScript</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Sat, 29 Dec 2007 11:45:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/12/29/Simple-technique-for-using-serverside-validation-code-for-client-OR-serverside-form-validation</guid>
				
				<enclosure url="http://www.swartzfager.org/blog/enclosures/submitDemo.zip" length="35920" type="application/zip"/>
				
			</item>
			
			<item>
				<title>Perfection Isn&apos;t Mandatory</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/12/4/Perfection-Isnt-Mandatory</link>
				<description>
				
				I came across this blog post, and even the blog itself is geared towards the .Net crowd, I thought the message was true for all coders who strive to hone their craft:

&lt;a href=&quot;http://www.secretgeek.net/inadequate.asp&quot;&gt;You are NOT  inadequate&lt;/a&gt; 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Tue, 04 Dec 2007 12:55:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/12/4/Perfection-Isnt-Mandatory</guid>
				
			</item>
			
			<item>
				<title>First Week in the ColdFusion Community</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/11/19/First-Week-in-the-ColdFusion-Community</link>
				<description>
				
				It&apos;s now been a week since I joined the ColdFusion Community, so here are my thoughts on the experience so far.

First off, I must like it, because I keep checking on it to see what&apos;s going on.  This is my first social network (I don&apos;t really count LinkedIn), so I wasn&apos;t sure if it would appeal to me.  But I&apos;m finding that it&apos;s a much easier way to get to know folks and converse with them than posting on blogs and exchanging e-mails.

I think part of it is that it&apos;s a different dynamic.  With blog comments and e-mails, it&apos;s like you&apos;re going to someone&apos;s house and knocking on their door; you&apos;re inviting yourself to their party.  Being in a social network is more like going to a bar.  It&apos;s a shared space, and the
expectation of interaction is built in:  if the person didn&apos;t want to socialize or be approached, they wouldn&apos;t be there in the first place.

I think all of the avenues of interaction on the site--the comment walls, the forums, the groups, the blogs--are great.  However, I am still trying to figure out some of the nuances and the best way to have certain types of conversations.  I&apos;ve had a few brief exchanges that
took place between comment walls, which leads to comments left on my wall or the other person&apos;s wall that don&apos;t entirely make sense because the rest of the conversation is on the other wall or even a few walls.

I&apos;m also trying to figure out the best use for the friend system.  As far as I can tell, the main use of the friend system (besides showing folks who visit your profile that you HAVE friends) is to establish a group of folks you might want to share certain thoughts or comments with that you don&apos;t want visible to the rest of the community or a guest. That&apos;s fine, but I can&apos;t really think of anything I would only share with the folks I currently have as friends.  Maybe that will change as I get to know them.

One of the expectations I had regarding friends was that somehow I would be more connected to those friends, that the system would follow their activities in the community more closely on the assumption that I would be interested to know what they in particular were doing.  If the friendship system does actually do that, I haven&apos;t really seen any evidence of it.

Then of course there&apos;s the whole &quot;who do you ask to be a friend and who do you accept as a friend&quot; question.  My current inclination is to only send friend requests to folks I&apos;ve conversed with over e-mail or in person, and to accept any requests sent my way.

One thing I&apos;d like to see added is a navigation tab that takes you to a list of all the recent blog posts
(http://www.coldfusioncommunity.org/profiles/blog/list).  I think that would help bring more exposure to the blogs. It could get messy as more folks keep blogs here, but I think most folks who have well-read blogs outside of the community will probably stick to those, especially since
there will eventually be a way to pull in external blog posts in one&apos;s community blog.

All in all, I think the community has taken off rather well (with over 400 members joining since word about it started to spread last week). It&apos;ll be interesting to see how active it will be and what folks will end up doing with it.  What comes out of it will depend on what folks put into it. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Mon, 19 Nov 2007 07:31:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/11/19/First-Week-in-the-ColdFusion-Community</guid>
				
			</item>
			
			<item>
				<title>APIs Everywhere</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/10/30/APIs-Everywhere</link>
				<description>
				
				This morning I heard that Pownce social networking/collaboration system (http://www.pownce.com) had released an API to let developers create applications that could query certain data from Pownce.

This afternoon, I learned through an RSS feed that Meebo (http://www.meebo.com), the site that lets you manage sessions for all of the major IM networks (AIM, MSN, ICQ, etc.), is also releasing an API called Meebo Platform to allow developers to create and then submit applications to run on the Meebo system.

Both Pownce and Meebo are systems that I played with when they first came out, but lost interest in because I wasn&apos;t sure how they would be useful to me.  Now that they have APIs, maybe I can MAKE them useful to me.

This is my first blog entry in a long time...I&apos;ve been preoccupied with other things, and I just wasn&apos;t motivated to update a blog that no one seems to read.  But over the past few days I&apos;ve been feeling a lot more ambitious and energized, and changes may be coming, especially to this blog. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Web development</category>
				
				<pubDate>Tue, 30 Oct 2007 14:37:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/10/30/APIs-Everywhere</guid>
				
			</item>
			
			<item>
				<title>Twitter as Alert System?</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/4/17/Twitter-as-Alert-System</link>
				<description>
				
				Yesterday&apos;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&apos;t mentioned, however, was cell phones.  That&apos;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&apos;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&apos;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&apos;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.  &lt;a href=&quot;http://www.twitter.com&quot;&gt;Twitter&lt;/a&gt; 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 &quot;follow&quot; 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. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Technology</category>
				
				<pubDate>Tue, 17 Apr 2007 07:49:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/4/17/Twitter-as-Alert-System</guid>
				
			</item>
			
			<item>
				<title>Google Notebook Gets a Facelift</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/3/29/Google-Notebook-Gets-a-Facelift</link>
				<description>
				
				One of the tools I use everyday is Google Notebook:  it&apos;s my repository of cool and informative links that I can access from any computer with Internet access.

Unfortunately, I didn&apos;t put much thought into organizing the structure of my notebook when I first started, so right now I&apos;ve got a pretty unorganized, long list of links, and I was thinking that I needed to spend some time fixing it.

I just opened my notebook via the Firefox Google Notebook extension, and was surprised to see that the interface had changed.  It looked a lot slicker, and now each entry has a little icon with a drop-down menu that lets you edit or move the entry somewhere else in your notebook.  Exactly what I needed! 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Thu, 29 Mar 2007 13:28:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/3/29/Google-Notebook-Gets-a-Facelift</guid>
				
			</item>
			
			<item>
				<title>Marrying myFeedz to Yahoo Pipes (Warning: Illegal In Some States)</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/2/23/Marrying-myFeedz-to-Yahoo-Pipes-Warning-Illegal-In-Some-States</link>
				<description>
				
				I wasn&apos;t happy with the sparse results I was getting from my CF/Flex/Apollo/Adobe Yahoo pipe, so I decided to see what would happen if I configured myFeedz to find CF/Flex/Apollo/Adobe articles for me and then included those results in the Yahoo Pipe.

So essentially I fed one news aggregator into another news aggregator...is that wrong?  :)

Regardless, the pipe does provide more results now. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Fri, 23 Feb 2007 12:30:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/2/23/Marrying-myFeedz-to-Yahoo-Pipes-Warning-Illegal-In-Some-States</guid>
				
			</item>
			
			<item>
				<title>myFeedz:  Adobe&apos;s Answer to Yahoo Pipes</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/2/19/myFeedz--Adobes-Answer-to-Yahoo-Pipes</link>
				<description>
				
				I had just finished creating my &lt;a href=&quot;http://pipes.yahoo.com&quot;&gt;Yahoo Pipe&lt;/a&gt; for finding articles related to ColdFusion, Flex, Apollo, and Adobe (available as a link in my Links box).

I ran it to see if any articles came up.  The very first article was about myFeedz.

&lt;a href=&quot;http://www.myfeedz.com/&quot;&gt;myFeedz&lt;/a&gt; is a new tool from &lt;a href=&quot;http://labs.adobe.com&quot;&gt;Adobe Labs&lt;/a&gt; which also lets you create custom news feeds.  Unlike Yahoo Pipes, myFeedz lets you configure your feeds using tags, and it lets you save the results for later viewing (a particularly nice feature).

Now I have to go and make some custom feeds over at myFeedz. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Mon, 19 Feb 2007 08:00:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/2/19/myFeedz--Adobes-Answer-to-Yahoo-Pipes</guid>
				
			</item>
			
			<item>
				<title>Yahoo Pipes:  The Ultimate News Aggregator?</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/2/16/Yahoo-Pipes--The-Ultimate-News-Aggregator</link>
				<description>
				
				When I first heard about Yahoo Pipes, a little more than a week ago, I didn&apos;t get it.  Maybe the explanation I read didn&apos;t quite communicate what it was all about, or maybe I wasn&apos;t paying close enough attention:  for whatever reason, it slipped on by.

Then I heard about it again on the &lt;a href=&quot;http://www.twit.tv/TWiT&quot; target=&quot;_blank&quot;&gt;TWiT&lt;/a&gt; (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 (&lt;a href=&quot;http://pipes.yahoo.com&quot; target=&quot;_blank&quot;&gt;pipes.yahoo.com&lt;/a&gt;) 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 &quot;ColdFusion&quot; 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&apos;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&apos;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&apos;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. 
				</description>
				
				<category>Miscellaneous</category>
				
				<category>Technology</category>
				
				<pubDate>Fri, 16 Feb 2007 07:32:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/2/16/Yahoo-Pipes--The-Ultimate-News-Aggregator</guid>
				
			</item>
			
			<item>
				<title>Interesting FireFox bug</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2007/2/5/Interesting-FireFox-bug</link>
				<description>
				
				I needed to draw a red vertical line, and I thought I&apos;d be lazy and just distort a regular &lt;hr&gt; tag so that it would look vertical.  So first I manipulated the size and width attributes:

&lt;code&gt;
&lt;hr size=&quot;30&quot; width=&quot;2&quot; /&gt;
&lt;/code&gt;

That worked just fine:

&lt;hr size=&quot;30&quot; width=&quot;2&quot; /&gt;

...but, when I tried to give it a color:

&lt;code&gt;
&lt;hr size=&quot;30&quot; width=&quot;2&quot; color=&quot;red&quot; /&gt;
&lt;/code&gt;

This is the result (if you&apos;re using IE, this won&apos;t look odd at all):

&lt;hr size=&quot;30&quot; width=&quot;2&quot; color=&quot;red&quot; /&gt;

Wild, huh? 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Mon, 05 Feb 2007 07:38:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2007/2/5/Interesting-FireFox-bug</guid>
				
			</item>
			
			<item>
				<title>Engaging in Problems Instead of Finding Solutions</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2006/12/11/Engaging-in-Problems-Instead-of-Finding-Solutions</link>
				<description>
				
				Every once in awhile, I`m reminded that my main motivation for becoming a web application developer is not to build applications but to build solutions.  I enjoy creating solutions to problems and hearing the solutions others come up with.  On the flipside, I hate hearing stories where folks engage in the practice of responding to problems by creating new problems.

What inspired this thinking today was a non-tech story I heard on the news this morning.  Seattle&apos;s main airport, Sea-Tac, was decorated with the usual holiday decorations, including several large Christmas trees in some well-trafficed areas.  A prominent rabbi in the Seattle area asked the airport to include a menorah next to one or two of the trees.  The airport apparently said no, and apparently the rabbi hinted that he might bring a lawsuit over the issue.  

Airport officials decided that the best course of action, the &quot;solution,&quot; was to take down all of the prominent Christmas trees.  This decision has upset a lot of people, including the rabbi, who said that this wasn`t the result he was looking for.  [More]
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Mon, 11 Dec 2006 07:18:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2006/12/11/Engaging-in-Problems-Instead-of-Finding-Solutions</guid>
				
			</item>
			
			<item>
				<title>Is There Such a Thing as Too Much OO?</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2006/11/30/Is-There-Such-a-Thing-as-Too-Much-OO</link>
				<description>
				
				It`s been a busy day, so I decided to look through my &lt;a href=&apos;http://www.google.com/notebook/&apos;&gt;Google Notebook&lt;/a&gt; collection of links for something that could be a topic for my &lt;em&gt;post du jour&lt;/em&gt;.

Steve Yegge`s post &lt;a href=&apos;http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html&apos;&gt;&amp;quot;Execution in the Kingdom of Nouns&amp;quot;&lt;/a&gt; is a humorous argument against pure object-oriented programming.  Although it`s directed at the Java community, I ended up putting it in my Notebook because of all of the discussion that was going on in the ColdFusion community at the time about making ColdFusion more like Java (a discussion that is still ongoing). 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Thu, 30 Nov 2006 20:51:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2006/11/30/Is-There-Such-a-Thing-as-Too-Much-OO</guid>
				
			</item>
			
			<item>
				<title>Welcome to my blog</title>
				<link>http://www.swartzfager.org/blog/index.cfm/2006/11/28/Welcome-to-my-blog</link>
				<description>
				
				Hello!  My name is Brian, and welcome to my blog.

Starting tomorrow, I`ll be using this blog to share my knowledge and experience as an intermediate-level ColdFusion web application developer, any resources I come across that I think would be useful to other web application developers, and ...well...anything else I think is worth talking about.  :)

Until then, check out the Links section over on the right for links to some ColdFusion and web development resources. 
				</description>
				
				<category>Miscellaneous</category>
				
				<pubDate>Tue, 28 Nov 2006 20:25:00 -0400</pubDate>
				<guid>http://www.swartzfager.org/blog/index.cfm/2006/11/28/Welcome-to-my-blog</guid>
				
			</item>
			</channel></rss>