<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Christian Cantrell</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/" />
<modified>2009-06-09T17:12:01Z</modified>
<tagline>AIR Application Developer</tagline>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5</id>
<generator url="http://www.movabletype.org/" version="3.38">Movable Type</generator>
<copyright>Copyright (c) 2009, cantrell</copyright>
<entry>
<title>New version of PixelWindow</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/06/new_version_of_1.html" />
<modified>2009-06-09T17:12:01Z</modified>
<issued>2009-06-09T16:53:15Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15225</id>
<created>2009-06-09T16:53:15Z</created>
<summary type="text/plain">PixelWindow (was PixelPerfect) was one of the first AIR applications I wrote, and has turned out to be one of the most useful. It now has its own site, and several new features.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p><a href="http://www.pixelwindowapp.com/">PixelWindow</a> (was PixelPerfect) was one of the first AIR applications I wrote, and has turned out to be one of the most useful. I wrote it primarily as a test case for multi-window, custom chrome, transparent, pure ActionScript AIR applications, and I've been using it almost daily ever since.</p>
<p>If you're unfamiliar with PixelWindow, it's a simple, light-weight AIR application for measuring things on your screen. It creates a translucent window that acts like a pixel ruler with its width and height reported in the center. Just drag it around and resize it to measure whatever you want.</p>
<p>I finally got around to updating PixelWindow, and creating <a href="http://www.pixelwindowapp.com/">its own site and installer badge</a>. I also added a few new features:</p>
<ul>
  <li>You can now measure down to 15x15 pixels. When the ruler gets too small to display the dimensions, they jump outside the window.</li>
  <li>The ability copy dimensions to your clipboard.</li>
  <li>The ability to use your keyboard to move rulers by one or five pixels at a time.</li>
  <li>A help window to remind you of the keyboard shortcuts.</li>
</ul>
<p>If you use an old version of PixelWindow (probably installed as PixelPerfect), I recommend that you <a href="http://www.pixelwindowapp.com/">grab the new version</a>. And if you don't use it, it's an extremely useful app for any designer or developer to have around. And remember that PixelWindow is open source, so feel free to <a href="http://code.google.com/p/pixelperfect/">grab the code</a> to fix bugs, add features, or just to see how it works.</p>]]>

</content>
</entry>
<entry>
<title>ActionScript function for turning a date into a time interval</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/06/actionscript_fu.html" />
<modified>2009-06-01T17:51:48Z</modified>
<issued>2009-06-01T17:42:07Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15222</id>
<created>2009-06-01T17:42:07Z</created>
<summary type="text/plain">Here&apos;s a simple function for turning ActionScript Date objects into time time interval strings like &quot;2 hours ago,&quot; or &quot;3 days ago.&quot;</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>ActionScript</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>While working on a small Twitter utility, I wrote a function to turn a date into a time interval string. For instance, rather than formatting the date, it returns strings like "Just posted," "6 minutes ago," "4 hours ago," or "20 days ago".  It's not a complex function, but I thought I'd post it here in case it might save someone a few minutes of coding.  The less time we spend writing code someone else has already written, the more time we can spend innovating.<p>

<code><pre>
private function formatDate(d:Date):String
{
	var now:Date = new Date();
	var diff:Number = (now.time - d.time) / 1000; // convert to seconds
	if (diff < 60) // just posted
	{
		return "Just posted";
	}
	else if (diff < 3600) // n minutes ago
	{
		return (Math.round(diff / 60) + " minutes ago");
	}
	else if (diff < 86400) // n hours ago
	{
		return (Math.round(diff / 3600) + " hours ago");
	}
	else // n days ago
	{
		return (Math.round(diff / 86400) + " days ago");
	}
}</pre></code>]]>

</content>
</entry>
<entry>
<title>Adobe Feeds Data Problem</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/05/adobe_feeds_dat.html" />
<modified>2009-05-16T12:42:46Z</modified>
<issued>2009-05-01T14:42:46Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15211</id>
<created>2009-05-01T14:42:46Z</created>
<summary type="text/plain">I just wanted to let everyone know that we had a little problem the other day with Adobe Feeds and ended up losing some data. Most of the post data has been recovered, but we lost some site submissions. If you submitted your blog after 2/12/09, it&apos;s likely that it was lost and you will need to resubmit it.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Weblogs</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>I just wanted to let everyone know that we had a little problem the other day with <a href="http://feeds.adobe.com/">Adobe Feeds</a> and ended up losing some data. Most of the post data has been recovered, but we lost some site submissions. If you submitted your blog after 2/12/09, it's likely that it was lost and you will need to resubmit it. Sorry for the goof up.</p>
<p>On a related note, how many of you out there are still using Adobe Feeds? I talked to a few people recently who just use the RSS that Adobe Feeds generates rather than using the site itself. How are people getting their Adobe developer news these days, and/or technology news in general?</p>]]>

</content>
</entry>
<entry>
<title>Make the mouse wheel work in Flash on OS X</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/03/make_the_mouse.html" />
<modified>2009-05-16T12:42:46Z</modified>
<issued>2009-03-05T20:04:51Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15199</id>
<created>2009-03-05T20:04:51Z</created>
<summary type="text/plain">JavaScript to make the mouse wheel work in Flash in OS X...</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Flash</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>As I'm sure all you Mac users are painfully aware, the mouse wheel doesn't work in Flash on Macs. Imagine my surprise, therefore, when testing out a new Flex-based bug tracking system, and finding that I was able to use my Mighty Mouse to scroll a List. The source of the page revealed a clue which eventually led to <a href="http://blog.pixelbreaker.com/flash/as30-mousewheel-on-mac-os-x/">AS3.0 MouseWheel on Mac OS X</a>. Seems to work pretty well, and should hold us over until we get this in the player.</p>
<p>(Note that the mouse wheel works as expected in AIR applications; this is for browser-based apps only.)</p>]]>

</content>
</entry>
<entry>
<title>ShareFire: a new feed reader for Adobe AIR</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/01/sharefire_a_new.html" />
<modified>2009-05-16T12:42:46Z</modified>
<issued>2009-01-30T17:44:20Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15186</id>
<created>2009-01-30T17:44:20Z</created>
<summary type="text/plain">Apprise Reader is now ShareFire. And it has new features.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>Over the summer, I built a feed reader called Apprise with my intern, Dan Koestler. Dan is now working with me full-time, and the first thing he did when he started at Adobe was update the application and <a href="http://www.sharefirereader.com/">release a new version</a>. The following changes were made for 1.5:</p>
<ul>
  <li>Renamed the application to <a href="http://www.sharefirereader.com/">ShareFire</a>. It's all about sharing news, after all.</li>
  <li>Enabled shorter update intervals. You can now updated as frequently as every 15 minutes.</li>
  <li>On OS X, the number of unread posts now appears in the dock icon.</li>
</ul>
<p>In case you're new to ShareFire, here are some other interesting features:</p>
<ul>
  <li>Share articles via Twitter, AIM, email, Facebook, Delicious, Digg, Newsvine, and more right from the application.</li>
  <li>Automatic categorization by author and topic.</li>
  <li>Create &quot;smart topics&quot; to easily find posts on topics you're interested in.</li>
  <li>Get &quot;toast&quot; notifications of new posts.</li>
  <li>OPML import and export.</li>
  <li>Realtime search.</li>
  <li>&quot;Site view&quot; (switch between the summary, and the site itself).</li>
  <li>Automatic feed resolution. Rather than entering a feed URL, you can now enter a site URL, and Apprise will automatically find and aggregate the feed associated with it.</li>
  <li>Support for 16 languages.</li>
  <li>Lots lots lots more.</li>
</ul>
<p>If you already have Apprise installed, you will get the update automatically (if you want to update manually, go to Settings &gt; Application Updates &gt; Check Now). If you don't have it installed, <a href="http://www.sharefirereader.com/">check it out here</a>.</p>
<p>Let us know what you think!</p>]]>

</content>
</entry>
<entry>
<title>Geolocation API Research</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2009/01/geolocation_api.html" />
<modified>2009-05-16T12:42:46Z</modified>
<issued>2009-01-12T18:28:19Z</issued>
<id>tag:weblogs.macromedia.com,2009:/cantrell/5.15175</id>
<created>2009-01-12T18:28:19Z</created>
<summary type="text/plain">I&apos;m starting to do some research into geolocation APIs, and I need some feedback. If you have any background in geolocation APIs, or even an opinion on their usefulness, you can help me out.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Technology</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>I'm starting to do some research into geolocation APIs. Right now, I'm planning on checking out the <a href="http://gears.google.com/">Google Gears</a> and <a href="http://www.google.com/chrome">Google Chrome</a> APIs, the new <a href="https://developer.mozilla.org/En/Using_geolocation">Firefox 3.1 APIs</a>, <a href="http://www.skyhookwireless.com/">Skyhook's</a> technology, and IP geolocation technology like that used by <a href="http://www.ip2location.com/">ip2location</a>. Anything else you think I should be looking into? How valuable do you think geolocation APIs on the desktop are? Will all computers (or at least all laptops which are gradually becoming all computers) have GPS chips soon? Other than GPS, IP addresses, Wi-Fi access points, and cell tower triangulation, how else can people be located?</p>
<p>Any and all feedback is greatly appreciated.</p>]]>

</content>
</entry>
<entry>
<title>Revisiting Linux</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/11/revisiting_linu.html" />
<modified>2009-05-16T12:42:45Z</modified>
<issued>2008-11-11T20:25:14Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.15128</id>
<created>2008-11-11T20:25:14Z</created>
<summary type="text/plain">I believe the day is finally near when I might actually be able to switch back to Linux.  Ubuntu, AIR, Flex Builder, Firefox, Pidgin, Gmail.  What else do you need?</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>It's been a long time since I've used Linux on a daily basis. Back in those days, my development tools were vim, make, and CVS. I ran an early free version of Red Hat with the best windowing manager there was at the time: FVWM. My browser was Netscape, my multi-protocol IM client was the text-based CenterICQ, and my mail client was Pine running inside of Screen. (My cell phone was a big plastic Nextel clamshell which the IT guys called the construction worker phone.)</p>
<p>But like many Linux users at the time, I was trying to exist in a Windows world. I used VMWare for testing web sites on IE, and various command line tools for converting Word documents that people insisted on emailing me into watered-down PDFs. So when OS X came out, I rejoiced and immediately jumped ship (before it even supported CD burning), and I've never looked back.</p>
<p>But when builds of AIR for Linux started appearing, I decided it was time to revisit Linux (specifically Ubuntu) to see what had changed. I made the mistake of installing it under VMWare on my MacBook initially which didn't impress me all that much since it wasn't able to access the graphics card directly, so yesterday I decided to set aside some time and install Ubuntu natively on my Mac.</p>
<p>From the time I got it in my head to give it a try to the time I was running AIR apps was probably about an hour. That included <a href="http://www.ubuntu.com/getubuntu/download">downloading Ubuntu 8.10</a>, burning the ISO, using Boot Camp to make my Mac think I wanted to install Windows, and more or less following <a href="https://help.ubuntu.com/community/MacBookPro">these instructions</a> for installing Ubuntu on a new partition. Although I used an internal build of AIR for Linux, a public beta build <a href="http://labs.adobe.com/technologies/air/linux/">is available here</a>.</p>
<p>The experience of running Ubuntu natively really blew me away. The windowing effects are beautiful, and after using the OS for a few hours, I began to realize that Ubuntu even does a few things better than OS X. All my AIR apps ran beautifully (here's <a href="/cantrell/images/air_apps_linux.jpg" target="_blank">a screenshot of three of them running</a>), and I began to realize that with Flex Builder for Linux, AIR for Linux, a few strategic AIR apps (<a href="http://apprisereader.com/">Apprise Reader</a>, <a href="http://www.tweetdeck.com/beta/">TweetDeck</a>, etc), Firefox, and with the amount of data that's moving to &quot;the cloud,&quot; I could very easily start using Linux again day-to-day. I did encounter a few incompatibilities running Ubuntu on Mac hardware, but if I could get my hands on a decent ThinkPad, I think I just might be able to make the switch. Of course, I'll have to keep my Mac around for synching my iPhone since I did finally give up that <a href="http://www.epinions.com/content_27528695428">Nextel i1000</a>.</p>]]>

</content>
</entry>
<entry>
<title>Be careful how you call super()</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/09/be_careful_how.html" />
<modified>2009-05-16T12:42:45Z</modified>
<issued>2008-09-17T17:41:01Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.15080</id>
<created>2008-09-17T17:41:01Z</created>
<summary type="text/plain">Here&apos;s something all ActionScript 3 developers should know about extending classes and how parent constructors are called...</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>ActionScript</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>Here's something all ActionScript 3 developers should know about extending classes and how parent constructors are called:</p>
<p>If class B extends class A, does class B have to call <code>super()</code> in its constructor in order to instantiate the parent class? Nope. What happens if you don't? The compiler inserts a call to the constructor for you. <em>Usually</em>.</p>
<p>The compiler just looks to see if you call <code>super()</code> at any point in your constructor. What if that call is inside of a conditional statement that evaluates to false? The default constructor won't get inserted, and the parent classes's constructor won't get called. Why is that a problem? You may very well get null reference exceptions since class level variables are often initialized in constructors. What's worse, you may only get them <em>sometimes</em> &mdash; only when your conditional statement evaluates to false.</p>
<p>Even if you determine that your code works whether <code>super()</code> is called or not, you still have to watch out. What if the implementation of the parent classes changes in the future? Code that used to work, and code that you could reasonably expect to continue working, may just break on you. I've actually seen this happen. It's not pretty.</p>
<p>How do you avoid this problem? Either call <code>super()</code>, or don't. Never put <code>super()</code> in a statement that may not execute, even if you find that your code works fine today since you never know what might happen to that parent class tomorrow.</p>]]>

</content>
</entry>
<entry>
<title>Apprise 1.1: More sharing, more features, and more languages</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/09/apprise_11_more.html" />
<modified>2009-05-16T12:42:45Z</modified>
<issued>2008-09-02T16:14:24Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.15073</id>
<created>2008-09-02T16:14:24Z</created>
<summary type="text/plain">We just released Apprise 1.1 with several new features...</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>We just released <a href="http://www.apprisereader.com/">Apprise 1.1</a> with several new features:</p>
<ul>
  <li>In addition to AIM and Twitter, now you can share posts via email, as well.</li>
  <li>Post links directly to Facebook, Delicious, Digg, Newsvine, MySpace, Google Bookmarks, and Windows Live Bookmarks.</li>
  <li>Smart topics. Only posts containing specific keywords will show up in your smart topics.</li>
  <li>Configurable notifications.</li>
  <li>Support for 16 languages: English, German, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Swedish, Dutch, Czech, Turkish, Polish, and both Traditional and Simplified Chinese. Apprise will use the language of your OS, or you can change languages dynamically from the settings window.</li>
  <li>Improved aggregation. We now show you post content, if it's available, rather than just a post summary.</li>
</ul>
<p>We've also added some smaller features and polish, and fixed several bugs. If you're already running Apprise, it will auto-update. Otherwise, <a href="http://www.apprisereader.com/">go check it out</a>.</p>]]>

</content>
</entry>
<entry>
<title>How do you want to share with Apprise 1.1?</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/08/how_do_you_want.html" />
<modified>2009-05-16T12:42:44Z</modified>
<issued>2008-08-06T15:40:02Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.15042</id>
<created>2008-08-06T15:40:02Z</created>
<summary type="text/plain">We&apos;re working Apprise 1.1, and we&apos;d like some feedback. Apprise 1.0 allows you to share articles via AIM and Twitter, and for 1.1, we&apos;re adding the ability to share via email, as well. We&apos;re also adding...</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>We're working Apprise 1.1, and we'd like some feedback. <a href="http://www.apprisereader.com/">Apprise 1.0</a> allows you to share articles via AIM and Twitter, and for 1.1 (not out yet), we're adding the ability to share via email, as well. We're also adding Facebook, del.icio.us, Google Bookmarks, and Windows Live Favorites. What other services would you like to see us support? MySpace? Newsvine? Mixx? Let us know what you're using, and we'll do our best to get it in.</p>]]>

</content>
</entry>
<entry>
<title>Share stories right from your news reader</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/07/share_stories_r.html" />
<modified>2009-05-16T12:42:44Z</modified>
<issued>2008-07-28T15:04:42Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.15026</id>
<created>2008-07-28T15:04:42Z</created>
<summary type="text/plain">Apprise now lets you share stories through AIM and Twitter right from your RSS reader. Oh, and we finally added folders, too.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>Over the summer, my intern Dan Koestler and I decided to get serious about <a href="http://www.apprisereader.com">Apprise</a>, a news reader written for AIR. There are a lot of news readers out there, so the natural question is what sets Apprise apart? Here's a summery of what I believe are our most compelling features:</p>
<ul>
  <li>AIM integration. Send stories to your AIM buddies from Apprise rather than copying and pasting URLs into your AIM client. Apprise doesn't replace your AIM client -- it works alongside it to make sharing stories easier and more efficient.</li>
  <li>Twitter integration. Post URLs to Twitter directly from Apprise. Again, Apprise doesn't replace your Twitter client, but it makes posting stories to Twitter much faster and easier.</li>
  <li>Folders. We finally broke down and added folders, our #1 feature request. We now have folders for you to organize your own feeds, but Apprise still automatically organizes posts by author and topic, as well.</li>
  <li>Automatic feed resolution. It's surprising how many sites don't make it easy to find their RSS or Atom feeds. Now you can just enter the URL of the site that you want to aggregate, and Apprise will find the feed for you.</li>
</ul>
<p>Apprise has several other cool features like realtime search accross all feeds, OPML import and export, Vi keys, and site view. And it finally even got a nice design so it no longer looks like a developer designed it.</p>
<p>You can find Appirse at <a href="http://www.apprisereader.com">apprisereader.com</a>. If you already have an earlier version of Apprise installed, you should be able to click on the badge and replace it, but you also might need to uninstall the old version first. This version of Apprise adds auto-updated, so from now on, you'll get new features and bug fixes automatically.</p>]]>
<![CDATA[<p>Update: I should have mentioned that you should export your feeds before upgrading to the new version of Apprise so you can easily import them again. In future versions, all your feeds will be preserved.</p>]]>
</content>
</entry>
<entry>
<title>Closing all your application windows in AIR</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/07/closing_all_you.html" />
<modified>2009-05-16T12:42:44Z</modified>
<issued>2008-07-02T16:28:49Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.14999</id>
<created>2008-07-02T16:28:49Z</created>
<summary type="text/plain">Here&apos;s a little snippet of code I sometimes use in AIR applications to make sure all windows close when the main application window closes.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>Here's a little snippet of code I sometimes use in AIR applications to make sure all windows close when the main application window closes. I usually put it in the main application MXML file (the main window of the application). It stops the main window from closing, and closes any other opened application windows first in the opposite order in which they were opened (more recent windows first). Without code like this, if you have any other windows open, even little utility windows, and your main application window is closed, your application will not exit, even if NativeApplication.autoExit is set to true.</p>

<code><pre>this.nativeWindow.addEventListener(Event.CLOSING,
  function(e:Event):void
  { 
    e.preventDefault();
    for (var i:int = NativeApplication.nativeApplication.openedWindows.length - 1; i >= 0; --i)
    { 
      NativeWindow(NativeApplication.nativeApplication.openedWindows[i]).close();
    } 
  });</pre></code>]]>

</content>
</entry>
<entry>
<title>AIR 1.1 and Apprise 1.5</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/06/air_11_and_appr.html" />
<modified>2009-05-16T12:42:43Z</modified>
<issued>2008-06-16T15:38:20Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.14977</id>
<created>2008-06-16T15:38:20Z</created>
<summary type="text/plain">With the release of AIR 1.1 comes a new version of Apprise, a feed aggregator written for AIR. Apprise is a work in progress with lots of additional features to come, but here&apos;s what we have so far...</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Apollo</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p><strong>Note: </strong>Apprise is now available at <a href="http://apprisereader.com">apprisereader.com</a>.</p>

<p>With the release of <a href="http://www.adobe.com/products/air/">AIR 1.1</a> comes a new version of Apprise, a feed aggregator written for AIR. Apprise is a work in progress with lots of additional features to come, but here's what we have so far:</p>
<ul>
  <li>Support for all versions of RSS and Atom.</li>
  <li>Automatic categorization by author and topic.</li>
  <li>OPML import and export.</li>
  <li>Realtime search.</li>
  <li>&quot;Site view&quot; (easily switch between the summary, and the site itself).</li>
  <li>Check marks. Put a check mark next to posts that you want to keep track of and easily find again later.</li>
  <li>Advanced sorting. Sort feeds, authors, and topics by name, or by number of unread posts.</li>
</ul>
<p>Apprise 1.5 adds the following features:</p>
<ul>
  <li>Support for 11 languages. Apprise now supports German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Simplified Chinese, and Traditional Chinese. By &quot;support&quot; I mean the UI is localized into these 11 languages &mdash; the aggregator itself will support any written language.</li>
  <li>Automatic feed resolution. Rather than entering a feed URL, you can now enter a site URL, and Apprise will automatically find and aggregate the feed associated with it.</li>
  <li>Improved search. The search algorithm in Apprise 1.5 is much more advanced. Both the title and the summary are searched, and you can search for multiple terms in any order.</li>
  <li>Improved &quot;new post&quot; heuristics. Apprise 1.5 is more intelligent about figuring out which posts are new in order to eliminate duplicates.</li>
  <li>General polish. We added several little improvements like focusing the cursor where appropriate, and updating individual feeds' unread count during the aggregation process rather than updating them all at the end.</li>
</ul>
<p>If you <a href="http://code.google.com/p/apprise/">check the code out</a> and build Apprise yourself, you can get even more features:</p>
<ul>
  <li>Copy support. You can copy post URLs to our clipboard for easy sharing.</li>
  <li>Drag and drop. Drag posts into an IM or email window to share stories.</li>
  <li>Vi keys. Well, J and K, anyway.</li>
</ul>
<p>My new intern, Daniel Koestler, and I will be working on adding new features to Apprise this summer. And, of course, it's all cross-platform and <a href="http://code.google.com/p/apprise/">open source</a>, so anyone who wants to contribute features can.</p>
<p>The next version of Apprise (2.0) will enable the auto-update feature so you'll be able to pick up new features automatically. We consider 1.0 and 1.5 to be betas, so they have to be manually installed. Click on the badge below to have a look at what we have so far, and let us know in the comments what features you want to see next.</p>]]>

</content>
</entry>
<entry>
<title>Adobe Feeds Update II</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/05/adobe_feeds_upd_1.html" />
<modified>2009-05-16T12:42:43Z</modified>
<issued>2008-05-13T18:30:52Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.14912</id>
<created>2008-05-13T18:30:52Z</created>
<summary type="text/plain">Just a quick note to let you know that I fixed the Adobe Feeds web services.</summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>Just a quick note to let you know that I fixed the Adobe Feeds web services. Also, just a reminder that if you're seeing &quot;header length too long&quot; error messages, clear your cookies, and the problem won't come back.</p>
<p>Oh, I also fixed the FAQ on Safari, so if you Mac users have been dying to read the FAQ all these years, now you can. Of course, you probably figured out the answer to your question by now.</p>]]>

</content>
</entry>
<entry>
<title>Adobe Feeds Update</title>
<link rel="alternate" type="text/html" href="http://weblogs.macromedia.com/cantrell/archives/2008/05/adobe_feeds_upd.html" />
<modified>2009-05-16T12:42:43Z</modified>
<issued>2008-05-08T16:33:44Z</issued>
<id>tag:weblogs.macromedia.com,2008:/cantrell/5.14909</id>
<created>2008-05-08T16:33:44Z</created>
<summary type="text/plain"><![CDATA[The new launch of Adobe Feeds (MXNA) has gone well, but there are two issues I'm seeing people report: Maybe people have been getting &quot;Header Length Too Large&quot; errors. Interestingly, this comes from cookie-related code that CF7 tolerated, but CF8...]]></summary>
<author>
<name>cantrell</name>

<email>ccantrel@adobe.com</email>
</author>
<dc:subject>Adobe</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.macromedia.com/cantrell/">
<![CDATA[<p>The new launch of Adobe Feeds (MXNA) has gone well, but there are two issues I'm seeing people report:</p>
<ol>
  <li>Maybe people have been getting &quot;Header Length Too Large&quot; errors. Interestingly, this comes from cookie-related code that CF7 tolerated, but CF8 doesn't. Anyway, the problem has been fixed. If you're still seeing the error message, clear your feeds.adobe.com cookies, and it will never come back.</li>
  <li>It seems the web services are broken. This is probably the result of the query optimizations I made. I didn't test all the web services, so they're probably incompatible with the changes I made. Oops. Sorry about that. I'll get this fixed in the next couple of days, and report back when they're working again.</li>
</ol>
<p>We'll get Feeds back to 100% in the next week or so. Please be patient with us!</p>]]>

</content>
</entry>

</feed>