<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>joeberkovitz.com &#187; Uncategorized</title>
	<link>http://www.joeberkovitz.com/blog</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Thu, 03 Jul 2008 18:34:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Heading to Atlanta to Speak at 360Flex</title>
		<link>http://www.joeberkovitz.com/blog/2008/02/23/heading-to-atlanta-to-speak-at-360flex/</link>
		<comments>http://www.joeberkovitz.com/blog/2008/02/23/heading-to-atlanta-to-speak-at-360flex/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 14:00:56 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/2008/02/23/heading-to-atlanta-to-speak-at-360flex/</guid>
		<description><![CDATA[After a far-too-short breather from the last snow-encrusted landing at Logan Airport, I will be flying to Atlanta on Monday to speak at the 360Flex conference Tuesday morning.  I really like this conference because it&#8217;s small, 100% focused on Flex development and has an extra-congenial, hang-friendly atmosphere.
Many of my speaking topics have to do [...]]]></description>
			<content:encoded><![CDATA[<p>After a far-too-short breather from the last snow-encrusted landing at Logan Airport, I will be flying to Atlanta on Monday to speak at the <a href="http://360flex.eventbrite.com/">360Flex</a> conference Tuesday morning.  I really like this conference because it&#8217;s small, 100% focused on Flex development and has an extra-congenial, hang-friendly atmosphere.</p>
<p>Many of my speaking topics have to do with architecture, patterns, or some kind of preaching about best engineering practices.  I love all that, but, to be completely frank, it feels a bit abstract and windy sometimes.  I like to build concrete stuff that does something useful, and that&#8217;s where my real interests lie.  (&#8221;Dammit, captain, I&#8217;m an engineer, not a methodologist&#8230;&#8221;)  So this year I&#8217;ve made a pact with myself to only do talks about real live projects.</p>
<p>At 360 Flex I&#8217;ll be sharing a detailed case study of the architecture and implementation inside the most challenging and interesting product we&#8217;ve built at Allurent to date: the Allurent Display Platform.  This system includes an engine that visually renders XML markup as Flex components &#8212; but unlike MXML or HTML, the markup resolves bindings to nonvisual data objects (usually products or product categories) that can live anywhere in a &#8220;virtual namespace&#8221; of content.  Allurent Display also includes a fully-featured visual authoring tool for this markup similar to Flex Builder Design View.</p>
<p>This talk is a case study, not a product demo: I will be sharing the big decisions we made, the Flex or Flash technologies we used, the implementation tricks we had to resort to, the alternate approaches we considered (maybe the audience will propose something better).  I think it&#8217;ll be a fun time.  Anyway, hope to see you there, if this kind of thing interests you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2008/02/23/heading-to-atlanta-to-speak-at-360flex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex Builder Source Folders Need to Go Back in the Oven</title>
		<link>http://www.joeberkovitz.com/blog/2007/10/31/flex-builder-source-folders-need-to-go-back-in-the-oven/</link>
		<comments>http://www.joeberkovitz.com/blog/2007/10/31/flex-builder-source-folders-need-to-go-back-in-the-oven/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 14:56:53 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=57</guid>
		<description><![CDATA[&#8220;The pain, the pain&#8230;&#8221;
&#8211; Jonathan Harris as Dr. Zachary Smith in the original Lost in Space
Dr. Smith was famous for whining, and so am I.  Here&#8217;s my latest: Flex Builder does not work very well with multiple source folders in a project&#8217;s path.  Probably the worst breakage is that integrated SVN source control [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;The pain, the pain&#8230;&#8221;<br />
&#8211; <em>Jonathan Harris as Dr. Zachary Smith in the original </em>Lost in Space</p></blockquote>
<p>Dr. Smith was famous for whining, and so am I.  Here&#8217;s my latest: Flex Builder does not work very well with multiple source folders in a project&#8217;s path.  Probably the worst breakage is that integrated SVN source control (via the Subclipse plugin) doesn&#8217;t work inside them (<a href="https://bugs.adobe.com/jira/browse/FB-9989">FB-9989</a>).  Second worst would be that library projects can&#8217;t compile classes from multiple source folders (<a href="https://bugs.adobe.com/jira/browse/FB-9988">FB-9988</a>).  Yet another baddie: <a href="https://bugs.adobe.com/jira/browse/FB-5564">FB-5564</a>: if you use Ctrl-click to navigate to a definition in a class which is in a linked source folder, a new window is opened unnecessarily, as if FB didn&#8217;t know that two files were actually the same.  All this is too bad, because source folders are a really good solution to another serious problem with Flex Builder, and one that is probably harder for Adobe to fix: poor performance with multiple library projects.</p>
<p>If you&#8217;re using Flex Builder on some large applications with a number of library projects, you may have noticed it gets <strong>real</strong> slow.  Yeah, I&#8217;ve noticed that too.  It&#8217;s too bad, because using lots of small-to-medium libraries forces developers to be much more careful about dependencies between packages.</p>
<p>At Allurent, our approach to this problem has been to structure our Flex Builder projects for speed rather than strict dependency checking.  We use Ant for all production builds (it builds multiple .swcs for dependency checking), while developers can use Flex Builder for incremental builds while they work on a project, if they want.  To get around the big slowdown problem, we create mega-projects that include all the libraries&#8217; source code directly via multiple source paths.  While such projects are slow to open and start up, once you build them and warm up Eclipse&#8217;s caches they perform quite well.</p>
<p>The big fly in the jam jar &#8212; I know it&#8217;s usually ointment that metaphorical flies get stuck in, but that phrase gets kind of old, doesn&#8217;t it? &#8212; is that source folders are kind of semi-functional in Flex Builder.  The fact that Subclipse doesn&#8217;t treat the contents of source folders as versioned (even if they are) is really frustrating.  Maybe some folks out there are frustrated too.  If you are please consider voting on the above bugs!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2007/10/31/flex-builder-source-folders-need-to-go-back-in-the-oven/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Please Rinse Your Used Planet Before Recycling</title>
		<link>http://www.joeberkovitz.com/blog/2007/09/13/please-rinse-your-used-planet-before-recycling/</link>
		<comments>http://www.joeberkovitz.com/blog/2007/09/13/please-rinse-your-used-planet-before-recycling/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 13:04:36 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=52</guid>
		<description><![CDATA[Lately I had been taking occasional solace from the fact that our planet seemed to be one of those disposable models.  We have been making a royal mess of it, but at least (or so I had thought) in 5 billion years Earth would be incinerated in a thermonuclear explosion, courtesy of our Sun&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I had been taking occasional solace from the fact that our planet seemed to be one of those disposable models.  We have been making a royal mess of it, but at least (or so I had thought) in 5 billion years Earth would be incinerated in a thermonuclear explosion, courtesy of our Sun&#8217;s transition into a red giant.  I thought of Earth as sort of a planetary Huggie, something that gets dirty and smells bad but ultimately gets thrown away, burning into nuclear ash and leaving a cleaner galaxy behind it.</p>
<p>But today, courtesy of the New York Times, I read:</p>
<blockquote><p>About five billion years from now, astronomers say, the Sun will run out of hydrogen fuel and swell temporarily more than 100 times in diameter into a so-called red giant, swallowing Mercury and Venus and dooming life on Earth, but perhaps not Earth itself.  Astronomers are announcing that they have discovered a planet that seems to have survived the puffing up of its home star, suggesting there is some hope that Earth could survive the aging and swelling of the Sun.</p></blockquote>
<p>So it appears that Earth may instead be destined for some kind of galactic curbside recycling bin.</p>
<p>If so, I think it would make sense for us to leave the planet in some kind of reasonable shape after all.  You wouldn&#8217;t recycle filthy, unwashed food containers out on the street, where they would attract flies.  Would you?  No, I thought not.  Likewise, you shouldn&#8217;t leave a nasty, polluted planet lying around the solar system where it might attract&#8230; well, I&#8217;m not sure what.  Anyway, my plea stands: let&#8217;s clean this place up so it&#8217;s ready for recycling.  We can do this any time in the next 5 billion years or so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2007/09/13/please-rinse-your-used-planet-before-recycling/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wii be rollin&#8217;&#8230;</title>
		<link>http://www.joeberkovitz.com/blog/2007/04/16/wii-be-rollin/</link>
		<comments>http://www.joeberkovitz.com/blog/2007/04/16/wii-be-rollin/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 11:58:04 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Bicycling]]></category>

		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=43</guid>
		<description><![CDATA[I&#8217;ve just emerged from my thrice-weekly morning session with the bike trainer.  It&#8217;s gotten a lot easier to deal with the boredom of stationary pedaling thanks to the Wii that we bought &#8220;for the kids&#8221;.
No, dear reader, I am not in fact coordinated enough to play Zelda or Wii Sports while pedaling furiously.  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just emerged from my thrice-weekly morning session with the bike trainer.  It&#8217;s gotten a lot easier to deal with the boredom of stationary pedaling thanks to the Wii that we bought &#8220;for the kids&#8221;.</p>
<p>No, dear reader, I am not in fact coordinated enough to play Zelda or Wii Sports while pedaling furiously.  (OK&#8230; make that semi-furiously.)  What I am able to do is surf the web using the Wii&#8217;s built-in web browser, pointing and clicking the Wii Remote in one hand while maintaining pace and position on the bike.  And this, from my point of view, is one very good reason to get hold of one of these gadgets.  Now I can read a wide variety of stuff while doing my workout, and exercise free choice over it.  <em>That&#8217;s</em> progress!</p>
<p>There are plenty of other reasons to check out the Wii.  The remote (which has 6 degrees of free motion as well as buttons and internal accelerometers) is a really interesting input device, and it can interface via Bluetooth with a PC or Mac, and folks are coming out with some great homebrew hardware and software to provide connectivity for developers.  Combine the remote with <a href="http://flex.org">Flex</a>, <a href="http://www.wiiflash.org/">WiiFlash</a> and <a href="http://www.papervision3d.org/">Papervision3D</a>, and suddenly you&#8217;re looking at an impressive 3D visualization platform.  Hmmm&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2007/04/16/wii-be-rollin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>An ActionScript interpreter, courtesy of JavaScript and Apollo</title>
		<link>http://www.joeberkovitz.com/blog/2007/04/12/an-actionscript-interpreter-courtesy-of-javascript-and-apollo/</link>
		<comments>http://www.joeberkovitz.com/blog/2007/04/12/an-actionscript-interpreter-courtesy-of-javascript-and-apollo/#comments</comments>
		<pubDate>Thu, 12 Apr 2007 22:28:07 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=42</guid>
		<description><![CDATA[I&#8217;ve been experimenting quite a bit this week with Apollo, in preparation for a wee talk on the subject at Harvard.  I&#8217;ve been building out that dependency analysis tool in Apollo and exploring the cool Javascript/Actionscript bridging capabilities in a series of examples.
Something amusing came up in the course of exploring script bridging: because [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting quite a bit this week with <a href="http://labs.adobe.com/technologies/apollo/">Apollo</a>, in preparation for a wee talk on the subject at Harvard.  I&#8217;ve been building out that dependency analysis tool in Apollo and exploring the cool Javascript/Actionscript bridging capabilities in a series of examples.</p>
<p>Something amusing came up in the course of exploring script bridging: because JavaScript has the <tt>eval()</tt> function, and because AS3 objects are visible in an Apollo HTML DOM as fully fledged Javascript objects, one can easily use eval() in a Javascript context to evaluate live AS3 function calls, property assignments, and so on.  Very, very nice!</p>
<p>For example,</p>
<pre>
&lt;head&gt;
&lt;script&gt;var obj;&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input id="expr" type="text" size="80"/&gt;
&lt;a href="#" onClick="eval(document.getElementById('expr').value)"&gt;
  Evaluate
&lt;/a&gt;
&lt;/body&gt;
</pre>
<p>If you stuff this HTML into an HtmlControl, set that control&#8217;s <tt>window.obj</tt> to some AS3 object (say a <tt>Label</tt> for argument&#8217;s sake), then you can eval expressions like <tt>obj.setStyle(&#8221;fontFamily&#8221;, &#8220;Tahoma&#8221;)</tt> inside the HtmlControl and watch them take effect before your eyes.  Should be a great debugging hack in Apollo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2007/04/12/an-actionscript-interpreter-courtesy-of-javascript-and-apollo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Secret Life of SWFs: Flex 2&#8217;s undocumented SwfxPrinter tool</title>
		<link>http://www.joeberkovitz.com/blog/2007/04/08/secret-life-of-swfs/</link>
		<comments>http://www.joeberkovitz.com/blog/2007/04/08/secret-life-of-swfs/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 00:35:07 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=41</guid>
		<description><![CDATA[It&#8217;s apparently a well-kept secret, but the Flex SDK includes a very useful tool for examining the structure and contents of SWF files.  The Java class flash.swf.tools.SwfxPrinter, which lives in the Flex 2 SDK&#8217;s lib/swfkit.jar library, is an undocumented utility that dumps AS3 SWF files as XML documents.  These dumps can provide really [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s apparently a well-kept secret, but the Flex SDK includes a very useful tool for examining the structure and contents of SWF files.  The Java class <tt>flash.swf.tools.SwfxPrinter</tt>, which lives in the Flex 2 SDK&#8217;s <tt>lib/swfkit.jar</tt> library, is an undocumented utility that dumps AS3 SWF files as XML documents.  These dumps can provide really useful insight into what is taking up space in a compiled AS3 Flash or Flex application.</p>
<p>If you&#8217;re in the <tt>FLEX_HOME/lib</tt> directory you can run it as follows:</p>
<p><code><br />
java -classpath asc.jar;swfkit.jar flash.swf.tools.SwfxPrinter [options] swfFilename<br />
</code></p>
<p>Here&#8217;s a somewhat random excerpt from some output; this includes some Flash sprite definitions:</p>
<pre>
  &lt;DefineSprite id='28'&gt;
    &lt;!-- sprite framecount=1 --&gt;
    &lt;PlaceObject2 idref='27' depth='2' matrix='t0,0'/&gt;
    &lt;ShowFrame/&gt;
  &lt;/DefineSprite&gt;
  &lt;ScalingGrid idref='28' grid='(80,80),(1200,360)'/&gt;
</pre>
<p>The valuable <tt>-showoffset</tt> option causes the output to include the offset and size of each element in the file.  For instance, the following <tt>DefineFont3</tt> element shows the size of an embedded font from a Flex CSS stylesheet:</p>
<pre>
  &lt;!-- offset=86441 size=35356 --&gt;
  &lt;DefineFont3 id='112' font='Myriad' numGlyphs='232' italic='false' bold='false' ansi='false' wideOffsets='false' wideCodes='true' shiftJIS='false' langCode='0' hasLayout='true' ascent='17019' descent='5120' leading='614' kerningCount='0' codepointCount='232' advanceCount='232' boundsCount='232'&gt;
</pre>
<p>Sadly, in a regular application SWF, there is no information about how the code is broken up; all you get is a single element representing the entire code of the application in a single lump:</p>
<pre>
  &lt;!-- offset=291066 size=1338571 --&gt;
  &lt;DoABC2 name='frame2'&gt;
  &lt;/DoABC2&gt;
</pre>
<p>Not to worry.  Far more useful are the results of using SwfxPrinter on the SWF that&#8217;s inside a SWC (just use any ZIP decompression tool to unpack <tt>library.swf</tt> from a SWC file).  Now you&#8217;ll see information like this:</p>
<pre>
  &lt;!-- offset=2130104 size=4192 --&gt;
  &lt;DoABC2 name='mx/effects/CompositeEffect'&gt;
  &lt;/DoABC2&gt;
  &lt;!-- offset=2134296 size=670 --&gt;
  &lt;DoABC2 name='mx/effects/Parallel'&gt;
  &lt;/DoABC2&gt;
  &lt;!-- offset=2134966 size=4111 --&gt;
  &lt;DoABC2 name='com/allurent/containers/AnimatedViewStack'&gt;
  &lt;/DoABC2&gt;
</pre>
<p>Now <strong>that&#8217;s</strong> more like it!</p>
<p>So&#8230; I&#8217;m in the process of writing an Apollo-based tool that analyzes SwfxPrinter dumps, along with the linkage dependency information found in a SWCs, and allows developers to analyze both code size, linkage dependencies and associated source code/documentation in a single environment.  Granted, it would probably make more ultimate sense to do this as an Eclipse plugin alongside Flex Builder, but which would you rather do to read in swfx dumps: deal with the Java XML APIs or hack some E4X?  Also a lot of the analyzed information is easy to display in HTML, and Apollo has that nice built-in web browser.</p>
<p>Here&#8217;s a screen shot of some work in progress:</p>
<p><img src="/projects/sizing/screenshots/SizeAnalyzerShot.png" alt="screenshot" /></p>
<p>One can use a tool like this to find out exactly how much space each individual class or package in the application takes up, and use that to tune its space requirements, Module loading strategy, and so on &#8212; this takes a lot of work, of course, but it&#8217;s a lot easier with the right information at one&#8217;s fingertips.</p>
<p>I&#8217;m thinking about the dependency-analysis angle.  My current thought is to support two complementary approaches: 1) discover what other classes a given class/package depends on (and thus drags into the SWF), and 2) discover which dependencies caused the inclusion of a given class/package in the SWF.  The first approach is useful when one has a good heuristic notion about what should be separated out (like a complex but rarely displayed view).  The second is useful when you can see a large bunch of code and you&#8217;d like to understand what other stuff is using it, so you can separate out <strong>that</strong> stuff and avoid dragging the expensive code into the SWF up front.  Either way, you identify candidate classes for modification, removal, or placement in a loadable module, in the name of a smaller download size.</p>
<p>Note: A somewhat more convenient way to run SwfxPrinter is to just copy this <a href="/projects/sizing/swfxprinter.jar">swfxprinter.jar</a> file into <tt>FLEX_HOME/lib</tt>; then you can run it in any directory as follows:</p>
<p><code><br />
java -jar %FLEX_HOME%/lib/swfxprinter.jar [options] swfFilename<br />
</code></p>
<p>(I&#8217;m not redistributing any Adobe code here of course; the JAR file just contains a manifest with references to class and library names.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2007/04/08/secret-life-of-swfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Abrupt YouTube security policy change</title>
		<link>http://www.joeberkovitz.com/blog/2006/12/14/abrupt-youtube-security-policy-change/</link>
		<comments>http://www.joeberkovitz.com/blog/2006/12/14/abrupt-youtube-security-policy-change/#comments</comments>
		<pubDate>Thu, 14 Dec 2006 21:15:31 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=36</guid>
		<description><![CDATA[There was a brief glitch in ReviewTube operation this last week, as the fallout from an unexpected YouTube security policy change.
Some links:

CSRF exploits and crossdomain.xml
Death of open crossdomain.xml’s?

YouTube, crossdomain


Possibly due to an exploit, they abruptly changed their crossdomain.xml file to only allow access from the youtube.com domain.  As a result, YouTube developer API calls [...]]]></description>
			<content:encoded><![CDATA[<p>There was a brief glitch in ReviewTube operation this last week, as the fallout from an unexpected YouTube security policy change.</p>
<p>Some links:</p>
<ul>
<li><a href="http://blog.monstuff.com/archives/000302.html#more">CSRF exploits and crossdomain.xml</a></li>
<li><a href="http://renaun.com/blog/2006/12/13/167/">Death of open crossdomain.xml’s?</a>
</li>
<li><a href="http://weblogs.macromedia.com/jd/archives/2006/12/youtube_crossdo.cfm">YouTube, crossdomain</a>
</li>
</ul>
<p>Possibly due to an exploit, they abruptly changed their <tt>crossdomain.xml</tt> file to only allow access from the youtube.com domain.  As a result, YouTube developer API calls from Flash no longer work if the SWF was downloaded from a non-youtube.com domain.  This broke a few aspects of ReviewTube that used that API.</p>
<p>I quickly got around the problem by proxying the YouTube requests through my own web server.  Recall that ReviewTube was created to demonstrate an architecture for remote Flex applications.  Well, in a validation of that architecture, it took changes to about 3 lines in 3 source files to make this change.  Two changes were to code in the Service layer, and one change was to the component configuration file.  (Full disclosure: also about 10 new lines of Rails code on the server side to do the proxying.)</p>
<p>So&#8230; we&#8217;re back live.</p>
<p>YouTube, if you want to be safe and not screw up Flash/Flex developers, please move your API to a different domain and put a liberal crossdomain.xml on <em>that</em> host.  Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2006/12/14/abrupt-youtube-security-policy-change/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Day 2: Lizard Head Pass to Bolam Pass</title>
		<link>http://www.joeberkovitz.com/blog/2006/07/11/day-2-lizard-head-pass-to-bolam-pass/</link>
		<comments>http://www.joeberkovitz.com/blog/2006/07/11/day-2-lizard-head-pass-to-bolam-pass/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 12:29:45 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Bicycling]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=21</guid>
		<description><![CDATA[This morning it was crystal-clear, with no hint of the previous day&#8217;s nasty weather.  We could clearly see the dramatic surroundings of our campground: the 14,000+ peaks of El Diente and Mt. Wilson stared across the valley, with the eccentric volcanic plug of Lizard Head itself rising nearby.  (Lizard Head, by the way, [...]]]></description>
			<content:encoded><![CDATA[<p>This morning it was crystal-clear, with no hint of the previous day&#8217;s nasty weather.  We could clearly see the <a href="http://www.flickr.com/photos/84703588@N00/190870144/in/set-72157594201014729/">dramatic surroundings</a> of our campground: the 14,000+ peaks of El Diente and Mt. Wilson stared across the valley, with the eccentric volcanic plug of Lizard Head itself rising nearby.  (Lizard Head, by the way, was considered the hardest climb in Colorado for much of the first part of the 20th century, because it&#8217;s made out of crumbly, unreliable garbage rock.  Climbing guides of the period advised taking a photo of Lizard Head and turning around to head home.  The lizard-head-looking part apparently decayed and fell off some time ago, leaving everyone to wonder what was the idea behind the name.)   <a href="http://www.joeberkovitz.com/blog/2006/07/11/day-2-lizard-head-pass-to-bolam-pass/#more-21" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2006/07/11/day-2-lizard-head-pass-to-bolam-pass/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Day 1: From Telluride to &#8220;A Night At The Y&#8221;</title>
		<link>http://www.joeberkovitz.com/blog/2006/07/10/day-1-from-telluride-to-a-night-at-the-y/</link>
		<comments>http://www.joeberkovitz.com/blog/2006/07/10/day-1-from-telluride-to-a-night-at-the-y/#comments</comments>
		<pubDate>Mon, 10 Jul 2006 23:06:10 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Bicycling]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=20</guid>
		<description><![CDATA[(Note: photos of the entire trip can be viewed here.)
This morning broke with a crystal-clear blue sky: my prayers for good weather had been finally answered, or so I thought.  I dropped off the rental car in Durango and rode to the rendezvous in back of Mountain Bike Specialists on Main Street to meet [...]]]></description>
			<content:encoded><![CDATA[<p>(Note: photos of the entire trip can be viewed <a href="http://www.flickr.com/photos/84703588@N00/sets/72157594201014729/">here</a>.)</p>
<p>This morning broke with a crystal-clear blue sky: my prayers for good weather had been finally answered, or so I thought.  I dropped off the rental car in Durango and rode to the rendezvous in back of Mountain Bike Specialists on Main Street to meet the Western Spirit truck, the guides, and the other folks with whom I&#8217;d be riding the next 5 days.  Our guides were Rachel, Scott and Jason; Rachel and Scott were a married couple looking to be in their 40s and were veteran guides for Western Spirit, while Jason was in his 20s and guiding the route for the first time.   <a href="http://www.joeberkovitz.com/blog/2006/07/10/day-1-from-telluride-to-a-night-at-the-y/#more-20" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2006/07/10/day-1-from-telluride-to-a-night-at-the-y/feed/</wfw:commentRss>
		</item>
		<item>
		<title>An Arboreal Addendum, or, More About Flex Trees</title>
		<link>http://www.joeberkovitz.com/blog/2006/06/23/an-arboreal-addendum-or-more-about-flex-trees/</link>
		<comments>http://www.joeberkovitz.com/blog/2006/06/23/an-arboreal-addendum-or-more-about-flex-trees/#comments</comments>
		<pubDate>Fri, 23 Jun 2006 20:56:56 +0000</pubDate>
		<dc:creator>joe</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/?p=17</guid>
		<description><![CDATA[Yesterday I discovered one more detail that can potentially fry one&#8217;s ITreeDataDescriptor implementation: in the public release of Flex 2, the ICollectionView instance returned from ITreeDataDescriptor.getChildren() will have to implement the [] operator, with integer arguments.  In other words, it has to be indexable like an Array.  This is not part of the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I discovered one more detail that can potentially fry one&#8217;s <tt>ITreeDataDescriptor</tt> implementation: in the public release of Flex 2, the <tt>ICollectionView</tt> instance returned from <tt>ITreeDataDescriptor.getChildren()</tt> will have to implement the [] operator, with integer arguments.  In other words, it has to be indexable like an Array.  This is not part of the <tt>ICollectionView</tt> contract; it&#8217;s an extra, undocumented requirement imposed by the Tree code.  If you use ArrayCollection or ListCollectionView as your concrete type, you&#8217;ll be OK, since they do support indexing via []; likewise, FDS collections are probably also OK (though I haven&#8217;t tested this).</p>
<p>If you are rolling your own ICollectionView implementations like we are, this means you&#8217;d better extend <tt>flash.util.Proxy</tt> so you can implement [].  Fortunately we already had, for other reasons.</p>
<p>Furthermore, data paging is not respected for these child node collection views.  Whatever you return from <tt>getChildren()</tt> will be scanned in its entirety, and any ItemPendingErrors thrown during the process will be ignored.  So you&#8217;d better not return some huge collection there that you hope will be paged in gradually as the user scrolls through the expanded node&#8217;s children.  Ain&#8217;t gonna happen that way.  This probably does affect FDS remote collections, so if you return one of those from <tt>getChildren()</tt> it might not page in the way you&#8217;d hope for.</p>
<p>Suggestive patterns in my tea leaves have led me to retain hope that this will be fixed in some reasonable timeframe.  I&#8217;m working around the problem for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joeberkovitz.com/blog/2006/06/23/an-arboreal-addendum-or-more-about-flex-trees/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
