<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Pathfinder Development » TechDev</title>
	
	<link>http://www.pathf.com/blogs</link>
	<description>Running commentary about agile development, user experience design and Ajax.</description>
	<pubDate>Wed, 15 Oct 2008 19:12:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Techdev" type="application/rss+xml" /><item>
		<title>jQuery goodness with ASP .NET</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/420726475/</link>
		<comments>http://www.pathf.com/blogs/2008/10/jquery-goodness-with-asp-net/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 17:29:28 +0000</pubDate>
		<dc:creator>Karthik Muthupalaniappan</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1197</guid>
		<description><![CDATA[http://www.eweek.com/c/a/Application-Development/Microsoft-Adopts-OpenSource-jQuery-JavaScript-Library/
This piece of news has brought about great cheer in the Web Developers community. jQuery has been fast gaining reputation in the world of web-development as a light-weight, flexible and easy-to-use Javascript library. Integration of jQuery with Microsoft's development platform should provide web developers with new capabilities and opportunities.
This is very smart move by Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eweek.com/c/a/Application-Development/Microsoft-Adopts-OpenSource-jQuery-JavaScript-Library/">http://www.eweek.com/c/a/Application-Development/Microsoft-Adopts-OpenSource-jQuery-JavaScript-Library/</a></p>
<p>This piece of news has brought about great cheer in the Web Developers community. jQuery has been fast gaining reputation in the world of web-development as a light-weight, flexible and easy-to-use Javascript library. Integration of jQuery with Microsoft's development platform should provide web developers with new capabilities and opportunities.</p>
<p>This is very smart move by Microsoft given the fact they have always hesitated to incorporate open-source technologies into their products. It is planning to ship jQuery with the ASP .NET MVC very soon. Integration with Visual Studio is something that is going to happen later. There are plans to enable intellisense support for jQuery in Visual Studio which would be really cool I think.</p>
<p>Some of the high-points of jQuery integration with ASP .NET could be :</p>
<ul>
<li>JQuery provides an attractive alternative to conventional Javascript making client-side DOM and HTML manipulation much easier and quicker.</li>
<li>It could complement ASP .NET Ajax and play with it really well</li>
<li>The original jQuery libraries are going to be ported into ASP .NET without any change which would enable developers to leverage jQuery's true potential</li>
</ul>
<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/10/jquery-aspnet.png"><img class="alignnone size-medium wp-image-1198" src="http://www.pathf.com/blogs/wp-content/uploads/2008/10/jquery-aspnet.png" alt="" width="407" height="166" /></a> </p>
<p> image-source : <a href="http://www.webmonkey.com">www.webmonkey.com</a></p>
<p>I have posted a few links below that discuss more about what the MS-jQuery marriage means for the web development community and how it can make life easier for developers out there.</p>
<p><a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx">http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx</a></p>
<p><a href="http://weblogs.asp.net/bleroy/archive/2008/09/28/jquery-now-officially-part-of-the-net-developer-s-toolbox.aspx">http://weblogs.asp.net/bleroy/archive/2008/09/28/jquery-now-officially-part-of-the-net-developer-s-toolbox.aspx</a></p>
<p><a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/">http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/</a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/420726475" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/10/jquery-goodness-with-asp-net/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/10/jquery-goodness-with-asp-net/</feedburner:origLink></item>
		<item>
		<title>Flash Player on iPhone gossip</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/410223039/</link>
		<comments>http://www.pathf.com/blogs/2008/10/flash-player-on-iphone-gossip/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 12:59:56 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[flash player]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1181</guid>
		<description><![CDATA[
First thing that came to my mind when I initially heard about the iPhone was the multi-touch possibilities that would start changing the way we create Flash/Flex interfaces (hopefully through SDK extension supporting multi-touch on Adobe's side triggered by iPhone release).
It looked very promising and natural to me in the beginning that this will be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/10/iphone-flash.jpg"><img class="alignnone size-full wp-image-1182" src="http://www.pathf.com/blogs/wp-content/uploads/2008/10/iphone-flash.jpg" alt="" width="300" height="200" /></a></p>
<p>First thing that came to my mind when I initially heard about the iPhone was the multi-touch possibilities that would start changing the way we create Flash/Flex interfaces (hopefully through SDK extension supporting multi-touch on Adobe's side triggered by iPhone release).</p>
<p>It looked very promising and natural to me in the beginning that this will be the route. Flash is a great part of the Internet experience and iPhone is a great mobile device for, among other things, Internet access.</p>
<p><span id="more-1181"></span></p>
<p>Long time passed, and still all I can find on this topic is gossip.</p>
<p>Ranging from initial optimism:</p>
<p><a href="http://gizmodo.com/gadgets/iphone/iphone-adobe-flash-support-coming-275317.php" target="_blank">iPhone Adobe Flash Support Coming</a><br />
<a href="http://gizmodo.com/gadgets/iphone/iphone-adobe-flash-support-coming-275317.php" target="_blank"></a><a href="http://www.appleinsider.com/articles/07/07/05/mossberg_apple_working_on_adobe_flash_support_for_iphone.html" target="_blank">Mossberg: Apple working on Adobe Flash support for iPhone</a><br />
<a href="http://www.gearlive.com/news/article/q108-flash-on-iphone-is-just-around-the-corner/" target="_blank">Flash on iPhone is just around the corner</a><br />
<a href="http://www.engadget.com/2008/03/19/adobe-says-flash-is-coming-to-the-iphone/" target="_blank"><span>Adobe says Flash is coming to the iPhone</span></a></p>
<p>...to some doubts about the timeline:<br />
<a href="http://www.alleyinsider.com/2008/6/adobe_flash_apple_iphone_maybe_someday" target="_blank">Adobe Flash Coming To Apple's iPhone -- Maybe, Someday</a><br />
<a href="http://www.eribium.org/blog/?p=139" target="_blank">Flash iPhone project stumbles: SDK insufficient</a></p>
<p>...to some doubts about the outcome:<br />
<a href="http://news.cnet.com/8301-10787_3-9886265-60.html" target="_blank">Adobe bites its tongue after iPhone Flash jab</a><br />
<a href="http://www.alleyinsider.com/2008/3/steve_jobs_flash_not_good_enough_for_iphone_is_microsofts_silverlight" target="_blank">Steve Jobs: Flash Not Good Enough For iPhone. Is Microsoft's Silverlight?</a></p>
<p>...to advanced angles on the topic:<br />
<a href="http://daringfireball.net/2008/02/flash_iphone_calculus" target="_blank">Flash on iPhone Political Calculus</a></p>
<p>After all this (and much more) gossip, I came up with the following conclusion: It has never been a better time to learn <span><a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html" target="_blank">Objective-C</a>. </span></p>
<p>If the Flash support ever pans out, I will be waiting and ready. In the meantime, it seams like a waiste not to apply all the interface development techniques learned through Flash/Flex development on iPhone and learn something new.</p>
<p>I dare to say that Flash/Flex developers should have an edge on at least the interface logic, and learning a new language should be on everybody's agenda from time to time.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/410223039" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/10/flash-player-on-iphone-gossip/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/10/flash-player-on-iphone-gossip/</feedburner:origLink></item>
		<item>
		<title>Symphony of Ruby on Rails and Flex through RubyAMF</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/403000639/</link>
		<comments>http://www.pathf.com/blogs/2008/09/simphony-of-ruby-on-rails-and-flex-through-rubyamf/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:27:30 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[amf]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[rubyamf]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1163</guid>
		<description><![CDATA[
In a project that I am currently a part of, we inherited Ruby on Rails from our client's system and project front-end was designated to be developed in Flex. RubyAMF came naturally.
I have been working with two other AMF frameworks prior to this: AMFPHP and WebOrb. My experience with both was that they are fairly [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1164" src="http://www.pathf.com/blogs/wp-content/uploads/2008/09/ror-ramf-fx.jpg" alt="" width="288" height="200" /></p>
<p>In a project that I am currently a part of, we inherited Ruby on Rails from our client's system and project front-end was designated to be developed in Flex. <a href="http://code.google.com/p/rubyamf/" target="_blank">RubyAMF</a> came naturally.</p>
<p>I have been working with two other AMF frameworks prior to this: <a href="http://www.amfphp.org/" target="_blank">AMFPHP</a> and <a href="http://www.themidnightcoders.com/weborb/" target="_blank">WebOrb</a>. My experience with both was that they are fairly hard to set up and once you go through that minefield, everything works excellent. No need to say that I am a great advocate of AMF in general. <a href="http://code.google.com/p/rubyamf/" target="_blank">RubyAMF</a> brings the same good old AMF but with a stunning ease and speed of development!</p>
<p>My colleague working on the Ruby side, Justin Ficke, introduced me to code and architecture of Ruby on Rails  and I was impressed to see with what ease, precision and speed can one develop it.</p>
<p>Justin and I put a little test together of this architecture and here is a screen cast of it.</p>
<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/09/ror-ramf-fx-test.mov" target="_blank"><img class="alignnone size-full wp-image-1166" src="http://www.pathf.com/blogs/wp-content/uploads/2008/09/test.jpg" alt="" width="500" height="226" /></a></p>
<p>All the lovely custom typed objects and speed of data transfer are there. Beauty of it, appart from obvious benefits from AMF, is that the development process couldn't have been better and faster.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/403000639" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/09/simphony-of-ruby-on-rails-and-flex-through-rubyamf/feed/</wfw:commentRss>

		<feedburner:origLink>http://www.pathf.com/blogs/2008/09/simphony-of-ruby-on-rails-and-flex-through-rubyamf/</feedburner:origLink><enclosure url="http://feeds.feedburner.com/~r/Techdev/~5/403000640/ror-ramf-fx-test.mov" length="2885960" type="video/quicktime" /><feedburner:origEnclosureLink>http://www.pathf.com/blogs/wp-content/uploads/2008/09/ror-ramf-fx-test.mov</feedburner:origEnclosureLink></item>
		<item>
		<title>“Build half a product, not a half-assed product” - tips on clarity and focus from Jason Fried of 37Signals</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/402127568/</link>
		<comments>http://www.pathf.com/blogs/2008/09/build-half-a-product-not-a-half-assed-product-tips-on-clarity-and-focus-from-jason-fried-of-37signals/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 20:31:04 +0000</pubDate>
		<dc:creator>John McCaffrey</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[Disruption]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[37signals]]></category>

		<category><![CDATA[agile]]></category>

		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1160</guid>
		<description><![CDATA[
Jason Fried from 37Signals spoke yesterday at the ITA "Speaking of Success" event, about the history of 37Signals, their philosophy and culture, and the critical business decisions they've made to get them where they are today.
The software biz is fundamentally broken. Too many products fail because of the obsession of adding more and more, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/09/hammer.jpg"><img src="http://www.pathf.com/blogs/wp-content/uploads/2008/09/hammer.jpg" alt="" class="right" height="214" width="284" /></a></p>
<p><strong>Jason Fried</strong> from <a href="http://www.37signals.com" target="_blank">37Signals</a> spoke yesterday at the ITA "<a title="Speaking of Success" href="https://www.illinoistech.org/calendar.aspx/1024" target="_blank">Speaking of Success</a>" event, about the history of 37Signals, their philosophy and culture, and the critical business decisions they've made to get them where they are today.</p>
<blockquote><p>The software biz is fundamentally broken. Too many products fail because of the obsession of adding more and more, and trying to do too much.</p></blockquote>
<p>Jason went on to say that the approach of adding more and more only works for companies that have lots of money and lots of time, but that for the average company the main goal should be to build something that is "good enough," get it out to the users, and improve the design based on their feedback. The challenge of which features to include, and which to say "No" to, is covered well in the "<a href="http://books.google.com/books?id=SIexi_qgq2gC&amp;dq=innovator%27s+dilemma&amp;pg=PP1&amp;ots=AhtNdGH8Kl&amp;sig=nfxVSDAyu_zmT8W7tHbmgbJoU5c&amp;hl=en&amp;sa=X&amp;oi=book_result&amp;resnum=1&amp;ct=result" target="_blank">The Innovator's Dilemma</a>," which he said "everyone in this room should have read." The book resonates the core philosophy of 37Signals, which is evident from their <a href="http://www.37signals.com/svn/" target="_blank">blogs</a>, their book "Getting Real," and the design of the Rails framework. As an example of the "Good Enough" philosophy, Jason used his laptop and its basic webcam to stream the Q&amp;A session out over <a href="http://www.justin.tv/search?sort-by=newest&amp;q=37signals&amp;section=all" target="_blank">justin.tv</a> and send out a text to the 37signals Twitter group. "The quality probably isn't that great, but its good enough," and with that quick setup he had now broadened the audience by 1,000 users or so. (I searched for the video archive at justin.tv, but didn't find it yet.)</p>
<p><span id="more-1160"></span></p>
<blockquote><p>"Our products do less than the competition"</p></blockquote>
<p>While this quote isn't new, I still find that its worth digesting, particularly as it relates to product planning and product design. I'm a big fan of Agile and iterative development, and the idea that we don't have to have the full product requirements solidified before we can get started. I like to take a product vision to market quickly, improve on the design, and add features as their necessity becomes more clear.</p>
<p> I found that the things that Jason mentioned that resonated with me the most were closely in line with what I liked about <a href="http://www.pathf.com/blogs/2008/09/tips-tricks-from-windy-city-rails/" target="_blank">DHH's Q&amp;A session</a> at last week's <a href="http://www.windycityrails.org" target="_blank">WindyCityRails</a> conference in Chicago. I think a big part of 37Signals success is due to the fact that its two primary partners are totally on the same page.</p>
<p>Working at a consulting company like Pathfinder presents two major challenges in this area. First, the customer most likely doesn't know anything about Agile, nor do they really care about it. They want to see results and the details of how those results come about may not be something they care to explore. Secondly, our customer cares deeply about the design of the product, and the features that absolutely HAVE to be in for the release. The idea of going to market with "less" is a difficult concept to swallow. I've found that the more the design process explicitly involves the actual end user, the easier it is to investigate the importance of a given feature, ask them about it, prototype it, and figure out if its going to make things better for them. Conversely, if the end-user isn't closely involved in the design process, feature priority is more of a guess, and out of fear and lack of certainty features are included because "yeah, we might need that too". So when the question is raised, "Which is a higher priority, feature A, or feature B?", the answer is often an unequivocal "BOTH!"</p>
<p>On this point Jason had two elegant explanations that I hope to draw from. First, doing "less" really means covering the "essentials" of what is needed, and doing those "fewer" things better. He mentioned their products as being like a tool, with a specific, focused purpose.</p>
<blockquote><p>"A hammer is a tool, its very focused, and has a clean, simple interface."</p></blockquote>
<p>It strikes me as a perfect example of clarity and focus, because no one is screaming for a hammer that measures distance, cuts wood, or tightens nuts &amp; bolts. Its intended use is clear, it doesn't need to do more than that.</p>
<p>"We like to think of ourselves as curator's of the product. A curator at a museum chooses which pieces of Art should be included in the collection. They say "No" to many things. A building full of lots of Art that isn't carefully selected isn't a museum, its a warehouse"</p>
<p>I've certainly seen applications that were a "warehouse" of features in need of greater focus and "tasteful selection" for what should be included. My mission now is to find a better way to deliver the message that "less is more," and that in most cases, its better to get the application out to the users quickly, and leave room to iterate and improve on the design, than it is to try to build and release the perfect product all in one shot.</p>
<p>How do you deal with this issue in your day to day work? What effective techniques have you found for bringing clarity to the design of a product?</p>
<p><strong>Photo Credit</strong>:<br /><a href="http://www.flickr.com/photos/ppdigital/2054989998/">Darren Hester</a><br />under a Creative Commons Attribution License</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/402127568" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/09/build-half-a-product-not-a-half-assed-product-tips-on-clarity-and-focus-from-jason-fried-of-37signals/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/09/build-half-a-product-not-a-half-assed-product-tips-on-clarity-and-focus-from-jason-fried-of-37signals/</feedburner:origLink></item>
		<item>
		<title>Mouse wheel (scroll) Event in Flash Player running on a Mac</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/396423451/</link>
		<comments>http://www.pathf.com/blogs/2008/09/mouse-wheel-scroll-event-in-flash-player-running-on-a-mac/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 18:04:45 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[externalinterface]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[mouse scroll]]></category>

		<category><![CDATA[mouse wheel]]></category>

		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1147</guid>
		<description><![CDATA[One of the great advantages of Flash technology is cross-browser and cross-platform compatibility. That is almost entirely true but a few things did slip Adobe.
A big issue that was overlooked is support for mouse wheel event on Mac OSX. A pretty basic functionality you would think. If your interface is heavily relying on mouse scrolling, [...]]]></description>
			<content:encoded><![CDATA[<p>One of the great advantages of Flash technology is cross-browser and cross-platform compatibility. That is almost entirely true but a few things did slip Adobe.</p>
<p>A big issue that was overlooked is support for mouse wheel event on Mac OSX. A pretty basic functionality you would think. If your interface is heavily relying on mouse scrolling, your audience on Mac's will probably have a "so how does this work" blank stare.</p>
<p><span id="more-1147"></span></p>
<p>Google didn't overlook this in their implementation of Maps, but most apps I've seen online did.</p>
<p>There is a very nice and simple solution to this issue coming from <a href="http://hasseg.org" target="_blank">hasseg.org</a> and I find it very important to put this little effort in to maintain same look and feel of application interface across platforms.</p>
<p>Solution is executed with help from JavaScript. Mouse wheel events get passed to Flash player and parsed to simulate regular functionality.</p>
<p>A lot of praise to <a href="http://hasseg.org" target="_blank">hasseg.org</a> for coming up with and publishing <a href="http://hasseg.org/stuff/FlexOSXMouseWheel/OSXMouseWheelSupportForFlex2.zip">working source code</a> of this solution.</p>
<p>You can find the full explenation on this <a href="http://hasseg.org/blog/?p=3" target="_blank">blog post</a>.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/396423451" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/09/mouse-wheel-scroll-event-in-flash-player-running-on-a-mac/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/09/mouse-wheel-scroll-event-in-flash-player-running-on-a-mac/</feedburner:origLink></item>
		<item>
		<title>Flash/Flex physics engines and examples</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/383363877/</link>
		<comments>http://www.pathf.com/blogs/2008/09/flash-flex-physics-engines-and-examples/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 15:25:48 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[2d physics]]></category>

		<category><![CDATA[3D physics]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[physics]]></category>

		<category><![CDATA[physics engines]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1129</guid>
		<description><![CDATA[Flash technology has gone a long way from simple vector animations. Today it has support for video and audio, 3d rendering and interaction, all kinds of advanced data visualization libraries, great components of all shapes, sizes and purposes.

What caught my eye lately is that there is a lot of 2D and 3D Physics engines being added to the list.]]></description>
			<content:encoded><![CDATA[<p><a href="http://files.slembcke.net/chipmunk/movies/smash.mov" target="_blank"><img class="alignleft size-medium wp-image-1133" src="http://www.pathf.com/blogs/wp-content/uploads/2008/09/physicspiramide1.jpg" alt="physics pyramid" width="300" height="221" /></a></p>
<p>Flash technology has gone a long way from simple vector animations. Today it has support for video and audio, 3d rendering and interaction, all kinds of advanced data visualization libraries, great components of all shapes, sizes and purposes.</p>
<p>What caught my eye lately is that there is a lot of 2D and 3D Physics engines being added to the list.<br />
<span id="more-1129"></span>Physics beyond the obvious add a whole new level to user experience, in which I'm particularly interested.<br />
Physics allow developers to create interfaces that are replicating laws of nature that a user can easily understand and has experience with.</p>
<p>Of course, from step one there is a danger of these tools being misused and thrown on top of interfaces for some make-up effects. That is not what I'm talking about. I'm talking about using physics to help the user understand the software interface and it's process by guiding him/her using these principles.</p>
<p>There are some basic and insightful guidelines and examples in an excellent article by Rob Adams called "<a href="http://www.adobe.com/devnet/flex/articles/fig_pt6.html"><strong>Guiding with motion</strong></a>".</p>
<p>Here are some engines and examples that deal with 2D/3D physics in Flex/Flash:</p>
<p><a href="http://temp.roxik.com/datas/perform/index.html" target="_blank"><strong>ROXIK</strong></a><strong> </strong>-<br />
<a href="http://temp.roxik.com/datas/bone/index.html" target="_blank">Bone example</a><br />
<a href="http://temp.roxik.com/datas/physics/index.html" target="_blank">Gravity boot</a><br />
<a href="http://temp.roxik.com/datas/cloth/index.html" target="_blank">Interactive cloth</a></p>
<p><strong><a href="http://box2dflash.sourceforge.net/" target="_blank">Box2DFlashAS3</a> </strong><strong><a href="http://box2dflash.sourceforge.net/" target="_blank"><br />
</a></strong></p>
<p><strong><a href="http://code.google.com/p/glaze/" target="_blank">Glaze</a></strong><br />
<a href="http://home.planet.nl/~borst595/glaze.html" target="_blank">Example</a></p>
<p><strong><a href="http://wiki.slembcke.net/main/published/Chipmunk" target="_blank">Chipmunk</a></strong><br />
<a href="http://files.slembcke.net/chipmunk/movies/smash.mov">Domino smash </a><br />
<a href="http://files.slembcke.net/chipmunk/movies/sketches.mov">Sketches</a><br />
<a href="http://files.slembcke.net/chipmunk/movies/machine.mov">The Machine</a><br />
<a href="http://files.slembcke.net/chipmunk/movies/pyramid.mov">Domino pyramid</a></p>
<p><a href="http://files.slembcke.net/chipmunk/movies"> </a></p>
<p><strong><a href="http://blog.generalrelativity.org/?p=17" target="_blank">Foam</a></strong><br />
<a href="http://lab.generalrelativity.org/foam/demos/perpetualFall/" target="_blank">Example 1</a><br />
<a href="http://lab.generalrelativity.org/foam/demos/zeroGToyChest/" target="_blank">Example 2</a></p>
<p><strong><a href="http://www.cove.org/ape/index.htm" target="_blank">Ape</a></strong><br />
<a href="http://www.cove.org/ape/demo1.htm" target="_blank">Example 1</a><br />
<a href="http://www.cove.org/ape/demo2.htm" target="_blank">Example 2</a></p>
<p><strong><a href="http://lab.polygonal.de/motor_physics/" target="_blank">Motor2</a></strong></p>
<p><strong><a href="http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/" target="_blank">Wow</a></strong><br />
<a href="http://seraf.mediabox.fr/wow-engine/wow-engine-technical-advanced-demo-picture/">3D picture</a><br />
<a href="http://seraf.mediabox.fr/wow-engine/wow-engine-technical-demo-rope-and-box/">rope, box</a><br />
<a href="http://seraf.mediabox.fr/wow-engine/wow-engine-technical-advanced-demo-cloth-demo-01/">cloth 01</a><br />
<a href="http://seraf.mediabox.fr/wow-engine/wow-engine-technical-advanced-demo-cloth-demo-02/">cloth 02</a><br />
<a href="http://seraf.mediabox.fr/wow-engine/wow-engine-technical-advanced-demo-cloth-demo-03/">cloth 03</a></p>
<p><strong><a href="http://mark-shepherd.com/blog/springgraph-flex-component/" target="_blank">SpringGraph</a></strong><a href="http://mark-shepherd.com/blog/springgraph-flex-component/" target="_blank"><br />
</a></p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/383363877" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/09/flash-flex-physics-engines-and-examples/feed/</wfw:commentRss>

<enclosure url="http://files.slembcke.net/chipmunk/movies/sketches.mov" length="3934204" type="video/quicktime" />
<enclosure url="http://files.slembcke.net/chipmunk/movies/machine.mov" length="2984918" type="video/quicktime" />
<enclosure url="http://files.slembcke.net/chipmunk/movies/pyramid.mov" length="1613774" type="video/quicktime" />
		<feedburner:origLink>http://www.pathf.com/blogs/2008/09/flash-flex-physics-engines-and-examples/</feedburner:origLink><enclosure url="http://feeds.feedburner.com/~r/Techdev/~5/383363878/smash.mov" length="1630448" type="video/quicktime" /><feedburner:origEnclosureLink>http://files.slembcke.net/chipmunk/movies/smash.mov</feedburner:origEnclosureLink></item>
		<item>
		<title>Data visualization and the art of conveying information</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/381120614/</link>
		<comments>http://www.pathf.com/blogs/2008/09/data-visualization-and-the-art-of-conveying-information/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 06:42:43 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[code art]]></category>

		<category><![CDATA[data visualization]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1124</guid>
		<description><![CDATA[

As a coder, I go over tremendous amount of information on daily basis. My case is no different than anybody's else living in the world today. Regardless of where we live and how we spend our time we are saturated with all kinds of information, a lot of it that we don't care about and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flare.prefuse.org/launch/apps/dependency_graph" target="_blank"><img class="size-medium wp-image-1127 alignright" src="http://www.pathf.com/blogs/wp-content/uploads/2008/09/flaremap.png" alt="" width="295" height="300" /></a></p>
<p><a href="http://flare.prefuse.org/launch/apps/dependency_graph"></a></p>
<p>As a coder, I go over tremendous amount of information on daily basis. My case is no different than anybody's else living in the world today. Regardless of where we live and how we spend our time we are saturated with all kinds of information, a lot of it that we don't care about and a lot of it that we wish we had fast access to, if at all.</p>
<p>Ironically,  computer technology adds to the problem more often than not. All that computational power is often just creating more data that we will never experience because there's just too much of it everywhere and all the time. Traditional techniques of consuming information are becoming too slow and narrow to handle this kind of pace.</p>
<p>We have all heard that a "picture speaks a thousand words". Doesn't that sound like an efficient way to consume information? Now, there are pictures and there are pictures.</p>
<p>There are pictures that strike a cord with you and there are pictures that leave you bland. Which one are you more likely to remember and allot the time of your mind?</p>
<p>Here are some libraries for data visualization in Flex/Flash as well as some artful experiments that I found to be good tools/examples of data visualization.<br />
<span id="more-1124"></span><br />
<a href="http://flare.prefuse.org" target="_blank">Flare</a><br />
Flare is a very comprehensive library ranging from graph and charts to timelines and treemaps and then some.<br />
<a href="http://flare.prefuse.org/launch/apps/dependency_graph" target="_blank">Example 1</a><br />
<a href="http://flare.prefuse.org/demo" target="_blank">Example 2</a>:</p>
<p><a href="http://www.yworks.com/en/index.html" target="_blank">yFiles</a><br />
yWorks offers the same graphing solution for Flex, Ajax, .NET<br />
Solutions include DOM Tree, Graph Canvas, Drag and Drop, Collapsible Tree, GraphWikiand they are all very well documented.<br />
<a href="http://www.yworks.com/en/products_yfilesflex_about.html" target="_blank">Flex Examples</a></p>
<p><a href="http://www.ilog.com/products/ilogelixir/" target="_blank">ILOG Elixir</a><br />
ILOG Elixir offers 3D Charts, Gauges and Dials, Map Displays, Gantt Charts, Organization Charts, Treemap Charts and Radar Charts.<br />
All demos can be found <a href="http://www.ilog.com/products/ilogelixir/demos/" target="_blank">here</a>.</p>
<p><a href="http://mark-shepherd.com/blog/springgraph-flex-component/" target="_blank">SpringGraph</a><br />
SpringGraph is a lovely Flex component that deals as its name says - a Spring Graph, which is a self arranging graph.<br />
Example 1: <a href="http://mark-shepherd.com/SpringGraph/RoamerDemo/bin/RoamerDemo.html" target="_blank">Roamer Demo</a><br />
Example 2: <a href="http://mark-shepherd.com/SpringGraph/MoleculeViewer/bin/MoleculeViewer.html" target="_blank">Molecule Viewer</a></p>
<p><a href="http://www.levitated.net" target="_blank">Levitated.net</a><br />
<a href="http://www.levitated.net" target="_blank"></a>Levitated.net  shows beautiful visual experiments with algorithms. Their business application is yet to be discovered.<br />
<a href="http://www.levitated.net/gravityIndex.html" target="_blank">Examples</a></p>
<p><a href="http://blog.zupko.info/" target="_blank">Andy Zupkos blog</a><br />
Andy is blowing the lid of Papervision3D, a 3D engine written in AS2 and AS3.<br />
You can see his masterful explorations <a href="http://blog.zupko.info/" target="_blank">here</a>.</p>
<p><a href="http://lab.mathieu-badimon.com/" target="_blank">Mathieu Badimon Lab</a><br />
Mathieu has published a few eye catching experiments.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/381120614" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/09/data-visualization-and-the-art-of-conveying-information/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/09/data-visualization-and-the-art-of-conveying-information/</feedburner:origLink></item>
		<item>
		<title>Custom Flex 3 Lightweight Preloader with source code</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/365026317/</link>
		<comments>http://www.pathf.com/blogs/2008/08/custom-flex-3-lightweight-preloader-with-source-code/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 19:25:49 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[lightweight]]></category>

		<category><![CDATA[preloader]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1101</guid>
		<description><![CDATA[Here we will have a demonstration to an age old problem in Flash (and inherited in Flex), the preloader. I think that the Flex community has long ago grown bored with the default preloader, which I am very thankful to Adobe engineers for providing it in the first place. It's just that we keep seeing it over and over and over...]]></description>
			<content:encoded><![CDATA[<p style="center;"><a href="http://www.pathf.com/sites/pfd/flash/blog/08142008/PreloaderComponent.html"><img class="alignnone size-medium wp-image-1102 aligncenter" src="http://www.pathf.com/blogs/wp-content/uploads/2008/08/preloader.png" alt="Preloader" width="300" height="144" /></a></p>
<p>Here we have a demonstration to an age old problem in Flash (inherited in Flex) - the Preloader. I think that the Flex community has long ago grown bored with the default preloader, which I am very thankful to Adobe engineers for providing us in the first place. It's just that we keep seeing it over and over and over...</p>
<p><span id="more-1101"></span></p>
<p>Another important thing that the default preloader naturally doesn't provide is some branding while the user is waiting for the loading to complete.</p>
<p>There are some great examples out there like <a href="http://www.onflex.org/ted/2006/07/flex-2-preloaders-swf-png-gif-examples.php" target="_blank">Ted's</a> and the one that I'm using as a base for this demonstration from <a href="https://defiantmouse.com/yetanotherforum.net/Default.aspx?g=posts&amp;t=82" target="_blank">Andrew</a>.</p>
<p>Andrew's example allows us to have a lightweight preloader base that we can extend and <strong>solve the following problems</strong> that I think every preloader should:</p>
<p>- What is the status of loading - both numerically and graphically</p>
<p>- Some branding to show what are we waiting for that would involve some imagery, like a logo</p>
<p>- Possibility of actually making the preloader entertaining enough to keep the users attention</p>
<p>Problem in Flex more so than in Flash is keeping the preloader lightweight. So we have to achieve the visual appeal, animation, some basic text rendering without all the convenient native Flex components that would make the delay before seeing the preloader too long. So we have to keep it simple. Kudos to Andrew for publishing a great way to do this.</p>
<p><strong>I would like to point out a couple things:</strong></p>
<p><strong>1.</strong> So we want to show the percentage loaded, right? Well, the Label component just won't work out. Label comes with following inheritance:</p>
<p>Label -&gt; UIComponent -&gt; FlexSprite -&gt; Sprite -&gt; DisplayObjectContainer -&gt; InteractiveObject  DisplayObject -&gt; EventDispatcher -&gt; Object</p>
<p>That is a good part of the Flex framework that we want to avoid for the preloader. Instead, because we just want to render the text, we can use the TextField object which comes with following inheritance:</p>
<p>TextField -&gt; InteractiveObject -&gt; DisplayObject -&gt; EventDispatcher -&gt; Object</p>
<p>And another thing is that we want to avoid any custom fonts in the preloader because that will surely blow it up.</p>
<p><strong>2.</strong> Any imagery that we want to show up should naturally be in the single digit kilobytes to begin with. Photoshop offers a lot of ways to optimize the size of the image.</p>
<p>Than again, we don't want to use the convenient Image component because it comes with the following inheritance:</p>
<p>Image -&gt; SWFLoader -&gt; UIComponent -&gt; FlexSprite -&gt; Sprite -&gt; DisplayObjectContainer -&gt; InteractiveObject -&gt; DisplayObject -&gt; EventDispatcher -&gt; Object</p>
<p>Instead, we can fill up a DisplayObject that comes with following inheritance:</p>
<p>DisplayObject -&gt; EventDispatcher -&gt; Object</p>
<p>To do this you:</p>
<p>- embed your small image in the preloder like so:</p>
<pre>[Embed("Assets/Pathfinder_Logo_Blue.png") ]
[Bindable] public var Logo:Class;</pre>
<p>- pass the Logo class to DisplayObject and add it to stage, like so:</p>
<pre>var b:DisplayObject=new Logo();
addChild(b);</pre>
<p>and then set it's size and position parameters.</p>
<p>We only want to show the image pixel, so this will do. We can still make our logo DisplayObject available throughout the whole preloader class so we can play with it a little, like making it follow the progress bar by changing it's X parameter.</p>
<p>The rest you can pick up from the<strong> source code</strong>, available <a href="http://www.pathf.com/sites/pfd/flash/blog/08142008/srcview" target="_blank">here</a>.</p>
<p>You can see the <strong>example</strong> <a href="http://www.pathf.com/sites/pfd/flash/blog/08142008/PreloaderComponent.html" target="_blank">here</a>.</p>
<p>Again, thanks to Andrew, Ted and Adobe Flex Team.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/365026317" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/08/custom-flex-3-lightweight-preloader-with-source-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/08/custom-flex-3-lightweight-preloader-with-source-code/</feedburner:origLink></item>
		<item>
		<title>Ruby on Rails with Windows - How I made it work</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/359622918/</link>
		<comments>http://www.pathf.com/blogs/2008/08/ruby-on-rails-with-windows-how-i-made-it-work/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 18:09:51 +0000</pubDate>
		<dc:creator>Karthik Muthupalaniappan</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[MySql]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1087</guid>
		<description><![CDATA[I have been developing with Ruby on Rails over the last few weeks. Coming from the ASP .NET/C#/VB world, I am a total stranger to a programming language like Ruby. Any new programming language is fun to learn! Ruby was even more exciting cause it was a new kinda language to me. Though I think [...]]]></description>
			<content:encoded><![CDATA[<p>I have been developing with Ruby on Rails over the last few weeks. Coming from the ASP .NET/C#/VB world, I am a total stranger to a programming language like Ruby. Any new programming language is fun to learn! Ruby was even more exciting cause it was a new kinda language to me. Though I think Ruby is not as user-friendly as C# or Java, it is as powerful and flexible if not better. Combined with Rails, Ruby becomes a platform that facilitates quick and efficient development of database-driven web applications.</p>
<p><span id="more-1087"></span></p>
<p>Ruby has been known work to well with Mac OS, Linux and Cygwin traditionally. I came to understand that it doesnt work very well with Windows. There are a number of pitfalls that are associated with Ruby or Rails running on Windows. Here, I going to talk about a couple that I hit when I was trying to get RoR to work on Windows :</p>
<ul>
<li>Most of the unit tests in my RoR project were failing throwing some weird database errors. I had done everything right from installing Ruby to installing the various gems needed for the project. After a quite a bit of googling, we learnt we could resolved these issues by making a simple change to the MySQL settings. The "Enable Strict mode" option had to be disabled using the MySQL interface config wizard. I ran the tests after this was done and voila!</li>
</ul>
<p> </p>
<ul>
<li>This problem was even more perplexing than the above one. A bunch of unit tests were still failing with a dreadful "Segmentation fault" error (I m sure "ROR on Windows" folks might have seen this before). Some research on this error led to the finding that MySQL versions greater than 5.0.18 might cause this problem. So I downgraded my version of MySQL to 5.0.18 to see if that fixed my problem. No luck as yet! This was followed by trying out a number of other potential fixes like using different versions of libmysql.dll (the MySQL library used in Ruby), making changes to database configuration in the project etc. None of these helped me. After a few days of frustration, I uninstalled the MySQL gem and reinstalled it upon the advice of my colleague. That finally did the trick!</li>
</ul>
<p>I m still puzzled how these fixes worked but glad they did :).</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/359622918" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/08/ruby-on-rails-with-windows-how-i-made-it-work/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/08/ruby-on-rails-with-windows-how-i-made-it-work/</feedburner:origLink></item>
		<item>
		<title>Papervision3D 2.0 (Great White) in Flex 3 (Part II &amp; III combined) with source code</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/358839393/</link>
		<comments>http://www.pathf.com/blogs/2008/08/papervision3d-20-great-white-in-flex-3-part-ii-iii-combined-with-source-code/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:47:36 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[3D GPS]]></category>

		<category><![CDATA[AIR]]></category>

		<category><![CDATA[BitmapData.draw]]></category>

		<category><![CDATA[Custom Flex Component]]></category>

		<category><![CDATA[Degrafa]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Gauge Component]]></category>

		<category><![CDATA[papervision3d]]></category>

		<category><![CDATA[PV3D]]></category>

		<category><![CDATA[Tilt Component]]></category>

		<category><![CDATA[Yahoo Map AS3 API]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1088</guid>
		<description><![CDATA[The purpose of this demonstration is to use Yahoo Map and Papervision3D as a base for creating/importing 3D Objects with reference to actual locations on planet Earth using the Adobe Flex framework.
Demonstration is packed in an air application for which you can also see and download fully functioning source code. ]]></description>
			<content:encoded><![CDATA[<p style="center;"><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/08/yahoo-map-in-pv3d.png"><img class="alignnone size-medium wp-image-1089 aligncenter" src="http://www.pathf.com/blogs/wp-content/uploads/2008/08/yahoo-map-in-pv3d-thumb.jpg" alt="YahooMap in PV3D" width="500" height="291" /></a></p>
<p>The purpose of this demonstration is to use Yahoo Map and Papervision3D as a base for creating/importing 3D Objects with reference to actual locations on planet Earth using the Adobe Flex framework.</p>
<p>In this post I will be covering how to integrate Yahoo Maps AS3 API as an Interactive Material in PV3D 2.0 and solutions to the following problems:</p>
<p>- Security sandbox violation when using Yahoo Map as MovieMaterial (i.e. BitmapData.draw problem)<br />
- Mapping Longitude and Latitude values to X and Y coordinates of a PV3D material<br />
- Dragging Yahoo Map in PV3D (avoiding the map panning collision with PV3D)<br />
- Simple gauge component from the ground up using basic trigonometry<br />
- Simple tilt component again using basic trigonometry<br />
- Making a visual component using Degrafa</p>
<p>Demonstrations of  these solutions are packed in <a href="http://www.pathf.com/sites/pfd/flash/blog/08072008/srcview/source/YahooMapInPV3D.air" target="_blank">this air application</a> for which you can also see and download <a href="http://www.pathf.com/sites/pfd/flash/blog/08072008/srcview/" target="_blank">fully functioning source code</a>.</p>
<p><span id="more-1088"></span></p>
<p>The application was built in Flex 3 using following API's:</p>
<p><strong>Yahoo Maps AS3</strong><br />
You can download it <a href="http://developer.yahoo.com/flash/maps/" target="_blank">here</a>.<br />
Also don't forget to acquire a free API key to run your app online. It is not necessary for local testing in debugger through Flex.</p>
<p><strong>Papervision3D 2.0 (Great White)</strong><br />
You can find excellent tutorials <a href="http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite/src" target="_blank">here</a>.<br />
Source is available as a SVN repository <a href="http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite/src" target="_blank">here</a>.</p>
<p><strong>Degrafa</strong><br />
Official site: <a href="http://degrafa.com/" target="_blank">http://degrafa.com/</a><br />
SWC is available <a href="http://code.google.com/p/degrafa/" target="_blank">here</a>.</p>
<p><strong>Security sandbox violation when using Yahoo Map as MovieMaterial i.e. BitmapData.draw() problem</strong></p>
<p>When processing a MovieMaterial, PV3D uses the infamous BitmapData.draw method in MovieMaterial/bitmapDraw. This is a problem because the method will not yield a result if the origin of BitmapData is not in the same domain.<br />
In case you have access to the server that you are loading the image data from, you can solve this problem by adding an appropriate crossdomain.xml file to that server.</p>
<p><a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html" target="_blank">This article from Adobe’s Deneb Meketa</a> covers security updates in Flash Player 9 including very important changes to the crossdomain.xml structure. Whenever you have a Flash security based headache, this is a good starting point.</p>
<p>In case you can’t put crossdomain.xml on the image origin server, as is the case with Yahoo severs, you are supposed to use the checkPolicyFile property of the LoaderContext class, but that works only if we are directly loading the image data ourselves.</p>
<p>In our case image (map tiles) loading is being handled by YahooMap.swc and we don't have access to the aforementioned process. We could do an override, if we knew where the darn thing was, which I don't.</p>
<p>Sadly, the only solution for this problem that I could implement was by using Air, which is why I'm sharing this as an Air app rather than via a browser version - Air is much easier to deal with when it comes to security. As far as I'm concerned, problem solved for now.</p>
<p>I did hear some gossip that this will be sorted out in Flash Player 10, but who's going to wait for that?</p>
<p>I still haven't quite given up on this issue, as it is highly annoying roadblock to some cool browser based projects.</p>
<p><strong>Mapping Longitude and Latitude values to X and Y coordinates of a PV3D material</strong></p>
<p>This is done very straightforwardly by capturing the YahooMapEvent. It goes something like this:</p>
<pre>private function getAllCoordinates(e:YahooMapEvent):void
{
clickedLong=Number(e.data.latlon.lon);
clickedLat=Number(e.data.latlon.lat);

clickedX=Number(e.data.point.x);
clickedY=Number(e.data.point.y);
}</pre>
<p>You add a listener with this line:</p>
<pre>yahooMap.addEventListener(YahooMapEvent.MAP_MOUSE_CLICK, handleMapClick);</pre>
<p>Although this is a very simple thing, it allows you to convert Latitude and Longitude to the X and Y coordinates of the referring Material and you can play with it from then on. For instance, I used it to map flight trajectories based on GPS data (including GPS altitude) in 3D space. Fun stuff!<br />
<strong>Dragging Yahoo Map in PV3D (avoiding the map panning collision with PV3D)</strong></p>
<p>Dragging a YahooMap is super simple using the Yahoo Map API. It’s a convenient single line:</p>
<p>yahooMap.addPanControl();</p>
<p>When the map is processed by PV3D and you try to drag it, it starts jumping all over the screen, probably because of some event collision with PV3D. Luckily, we can get around this one by making our own custom dragging method as follows (note that this only describes the concept, the working version is in <a href="http://www.pathf.com/sites/pfd/flash/blog/08072008/srcview/" target="_blank">source</a>):</p>
<pre>private function mMove( e:InteractiveScene3DEvent ):void
{
// This code is run when the mouse is moved on the plane.
movieParent.x = mouseX -e.x;
movieParent.y = mouseY -e.y;

if(Application.application.stopMovingMap==false)
{
Application.application.yahooMap.panControl.panEnabled=false;
f=true;
}
else if(Application.application.stopMovingMap==true &amp;&amp; Application.application.isAnythingBeingDragged==false)
{
if(f)
{
oldX = e.x;
oldY = e.y;
f=false;
}
Application.application.yahooMap.panControl.panEnabled=true;

newX=e.x
newY=e.y

xDiff= newX-oldX;
yDiff= newY-oldY;

Application.application.yahooMap.setCenterByPixels(new Point(xDiff,yDiff));

flightsContainer.x = flightsContainer.x-xDiff;
flightsContainer.y = flightsContainer.y-yDiff;

oldX=newX;
oldY=newY;
}
}</pre>
<p>You can look at the missing variables and event listeners in the <a href="http://www.pathf.com/sites/pfd/flash/blog/08072008/srcview/" target="_blank">source</a>.</p>
<p><strong>Simple gauge component from ground up using basic trigonometry</strong></p>
<p>What I wanted to achieve was to rotate the 3D cube on which the map rests around the Z axis. Simple, right? So I used a VSlider component and gave it a range from 0 to 360 to capture the angle of rotation. And that’s where problems started. When the 3D map is under VSlider, both start acting up and jumping across the screen. All the issues in this app smell of the same thing - something to do with Mouse Down and Mouse Move events in PV3D. I’m still looking.</p>
<p>Being annoyed by the problem I started thinking about other approaches and a gauge component came to mind as the best visual representation of the functionality I was trying to achieve.</p>
<p>I naturally tried using some of the ready made gauge components available online, but with all of them I had some kind of issue. Either it was the inability to skin them properly, or to set the scope to full 360 degrees.</p>
<p>In the end I decided to refresh my trigonometry knowledge and made the component myself.</p>
<p>At the same time, this solved the VSlider going crazy issue. Why? I’ll post it when I find out.<br />
<strong></strong></p>
<p><strong>Simple tilt component again using basic trigonometry</strong></p>
<p>When in Rome... I used the same principle as in simple gauge component to add to user experience and visually show the angle that the 3D map is tilted by.</p>
<p><strong>Making a visual component using Degrafa</strong></p>
<p>Degrafa is such a priceless framework. Just in case you don’t know, it’s used for manipulating SVG’s (vector based graphics) in Flex 3, giving you a lot of power in customizing your visual components. It is the best solution for mapping in Flex that I have ever seen!</p>
<p>In this particular app it wasn’t absolutely necessary but it’s there to visually enhance the arrow button. I really wanted the arrow to look like it does in the example. Look at the <a href="http://www.pathf.com/sites/pfd/flash/blog/08072008/srcview/" target="_blank">source</a> to see the details. Actual SVG data was created in Illustrator.</p>
<p>All in all, combining API’s is certainly going to get you into trouble. But combining ideas can amount to a <a href="http://en.wikipedia.org/wiki/Synergy" target="_blank">sum greater than it’s parts</a>. I love it.</p>
<p>If anything is not clear to you, look at the code to see all the in’s and out’s. If it’s still not clear, shoot me a message.<!--more--></p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/358839393" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/08/papervision3d-20-great-white-in-flex-3-part-ii-iii-combined-with-source-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/08/papervision3d-20-great-white-in-flex-3-part-ii-iii-combined-with-source-code/</feedburner:origLink></item>
		<item>
		<title>LINQ to My Domain</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/352131049/</link>
		<comments>http://www.pathf.com/blogs/2008/07/linq-to-my-domain/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 02:04:08 +0000</pubDate>
		<dc:creator>Jason Pearl</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[.NET]]></category>

		<category><![CDATA[LINQ]]></category>

		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1073</guid>
		<description><![CDATA[I've begun my foray into the world of LINQ, and in my investigation I've seen a lot of work based on the LINQ to SQL "design surface" available in Visual Studio 2008.  It's a neat tool.  I point it to my database, drag some tables over, and it infers my domain structure and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/07/linq_designer2.jpg"><img class="alignright size-thumbnail wp-image-1076" src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/linq_designer2.jpg" alt="Design Surface" width="150" height="125" style="float:right; padding: 10px" /></a>I've begun my foray into the world of LINQ, and in my investigation I've seen a lot of work based on the LINQ to SQL "design surface" available in Visual Studio 2008.  It's a neat tool.  I point it to my database, drag some tables over, and it infers my domain structure and relationships from the databases fields and keys.  That's all well and good for a simple domain model that is <strong>directly</strong> related to the database schema.  I could see using this for a quick prototype, or a really small application.  I see three files created by the designer:</p>
<p><strong>MyClasses.dbml</strong> - This looks like any ORM frameworks mapping file.  It associates classes with tables, maps fields to object properties, and defines relationships.</p>
<pre class="xml">&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Table</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;dbo.Balloons&quot;</span> <span style="color: #000066;">Member</span>=<span style="color: #ff0000;">&quot;Balloons&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Type</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;Balloon&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Column</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;BalloonId&quot;</span> <span style="color: #000066;">Type</span>=<span style="color: #ff0000;">&quot;System.Int32&quot;</span> <span style="color: #000066;">DbType</span>=<span style="color: #ff0000;">&quot;Int NOT NULL IDENTITY&quot;</span> <span style="color: #000066;">IsPrimaryKey</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">IsDbGenerated</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">CanBeNull</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Column</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;Color&quot;</span> <span style="color: #000066;">Type</span>=<span style="color: #ff0000;">&quot;System.String&quot;</span> <span style="color: #000066;">DbType</span>=<span style="color: #ff0000;">&quot;NChar(20)&quot;</span> <span style="color: #000066;">CanBeNull</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Association</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;Balloon_Kid&quot;</span> <span style="color: #000066;">Member</span>=<span style="color: #ff0000;">&quot;Kid&quot;</span> <span style="color: #000066;">OtherKey</span>=<span style="color: #ff0000;">&quot;KidId&quot;</span> <span style="color: #000066;">Type</span>=<span style="color: #ff0000;">&quot;Kid&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Type<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Table<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;</pre>
<p><strong> MyClasses.dbml.layout</strong> - This looks to be specific to the layout of the design surface and appears to serve no purpose outside of this design.</p>
<p><strong> MyClasses.designer.cs</strong> - This is the beast that I'm looking to replace.  It contains the class definitions and attribute based mappings to bring my database schema into my application, and ready it for use by LINQ.</p>
<p>So this leaves me with a couple questions.  One,  why are attributes used to specify mappings?  Can this be done strictly via XML?  More importantly two, can I use my own domain model, and if so how do I map it to the database?</p>
<p>My goal would be to design a layered system, separating the underlying data store from the repositories required to push and pull my domain objects from these data stores.  This would allow in memory implementations of the data store, and would make unit testing (and developing) a whole lot easier.  I will be digging into this in the coming days and will report back soon.  Stay tuned!</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/352131049" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/linq-to-my-domain/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/linq-to-my-domain/</feedburner:origLink></item>
		<item>
		<title>ADO.NET Entity Framework</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/349511776/</link>
		<comments>http://www.pathf.com/blogs/2008/07/adonet-entity-framework/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 15:10:20 +0000</pubDate>
		<dc:creator>Karega Scott</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[ADO.NET Entity Framework]]></category>

		<category><![CDATA[Logical Model and Conceptual Model]]></category>

		<category><![CDATA[Object Relation Mapping (ORM)]]></category>

		<category><![CDATA[Object-Oriented]]></category>

		<category><![CDATA[References]]></category>

		<category><![CDATA[XML Metadata]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1060</guid>
		<description><![CDATA[ADO.NET Entity Framework is an object relationship mapping (ORM) tool. It was designed to provide a layer of abstraction between the logical schema and concept schema of an application, and to decrease the amount code need for a data centric application.
Some benefits of the Entity framework:

Data storage engine and schema independence: Due to the layer [...]]]></description>
			<content:encoded><![CDATA[<p>ADO.NET Entity Framework is an object relationship mapping (ORM) tool. It was designed to provide a layer of abstraction between the logical schema and concept schema of an application, and to decrease the amount code need for a data centric application.</p>
<p>Some benefits of the Entity framework:</p>
<ul>
<li><strong>Data storage engine and schema independence: </strong>Due to the layer of abstraction between the logical and conceptual schema of your application, you no-longer need to know and hard cord the application to a specific data storage engine or schema.</li>
<li><strong>More expressive conceptual model: </strong>Entity types can inherit from other entity types and allows the creation of more complex types  in addition  to the standard scalar types support by  the database.</li>
<li><strong>Access to multiple database system: </strong>Because the application is free from hard code data storage dependencies, the developer has the ability to access data from multiple storages using a consistent application object model</li>
<li><strong>LINQ: </strong>Language Integrated query support that offers compile time syntax checking for queries against the conceptual model.</li>
</ul>
<p>The Entity Framework works by allow the developers to hand code or use code generation tools to create the XML metadata for the conceptual entity data model, a storage entity model, and a mapping specification between the two. The XML file created for the conceptual entity data model is then stored in the <a href="http://msdn.microsoft.com/en-us/library/bb399292.aspx">conceptual schema definition file (.csdl)</a>, the storage entity model is stored in the <a href="http://msdn.microsoft.com/en-us/library/bb399559.aspx">storage schema definition file (.ssdl)</a>, and mapping between the two in the <a href="http://msdn.microsoft.com/en-us/library/bb399202.aspx">mapping specification language file (.msl)</a>. These XML file are then loaded into the metadata workspace of the entity framework, and a set of classes are generated to allow the developer to work directly with the conceptual model and indirectly with the logical model.</p>
<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/07/articleimage.gif"><img class="alignnone size-medium wp-image-1061" src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/articleimage.gif" alt="ADO.NET Entity Framework Architecture" width="696" height="580" /></a><br />
<a href="http://www.code-magazine.com/Article.aspx?quickid=0712042"><strong>Figure: ADO.NET Entity Framework Architecture</strong></a></p>
<p>So with these benefits design and built directly into the the framework and the logical approach used by framework to interact with various data providers, some experts in entity-based applications and software architectures on the .NET  platform still feel that the framework has some pretty large deficiencies.</p>
<p>They are concerned that the framework is...</p>
<ul>
<li>Inordinate focus on the data aspect of entities leads to degraded entity  architectures</li>
<li>Excess code needed to deal with lack of lazy loading</li>
<li>Share, canonical model contradicts software best practices</li>
<li>Lack of persistence ignorance causes business logic to be harder to read,  write, and modify, causing development and maintenance costs to increase at an  exaggerated rate.</li>
<li>Excessive merge conflicts with source control in team environments.</li>
</ul>
<p>Are these claim valid concerns to consider?</p>
<p>Sure, only if the framework is mature with several versions under its belt and its prohibits the productivity, maintainability and scalability of the application.</p>
<p>Isn't the right approach to software development to deliver a subset of the full feature set right the first time than try to deliver everything at once with massive issues that prevent the usability of the tool?</p>
<p>You decide...</p>
<p>Below are some useful references to get you going with Entity Framework.</p>
<p><a href="http://msdn.microsoft.com/en-us/magazine/cc700331.aspx">Achieve Flexible Data Modeling With the Entity Framework</a><br />
<a href="http://msdn.microsoft.com/en-us/library/bb399572.aspx">ADO.NET Entity Framework Pre-release documents</a><br />
<a href="http://www.codeplex.com/adonetsamples/Wiki/View.aspx?title=RunningEFBeta3Samples&amp;referringTitle=Home">Microsoft ADO.NET Entity Framework Overview</a><br />
<a href="http://www.infoq.com/news/2008/06/entity-framework-heat">ADO.NET Entity Framework Taking Some Heat</a><br />
<a href="http://www.code-magazine.com/Article.aspx?quickid=0712042">Programming Against the ADO.NET Entity Framework</a><br />
<a href="http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/">ADO .NET Entity Framework Vote of No Confidence</a></p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/349511776" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/adonet-entity-framework/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/adonet-entity-framework/</feedburner:origLink></item>
		<item>
		<title>Multiple Column Sorting with Drag and Drop using Scriptaculous</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/343929773/</link>
		<comments>http://www.pathf.com/blogs/2008/07/multiple-column-drag-and-drop-with-scriptaculous/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 21:14:39 +0000</pubDate>
		<dc:creator>Anthony Caliendo</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<category><![CDATA[Scriptaculous]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1051</guid>
		<description><![CDATA[

The other day I wanted to do drag and drop between multiple columns using scriptaculous.  Allowing this behavior is extremely simple, but out of the box the interaction feels clunky.  Here, we'll be going through an example of how to do multi-column drag and drop with scriptaculous.
Enabling multi-column drag and drop just involves [...]]]></description>
			<content:encoded><![CDATA[<p class="right"><a href='http://www.pathf.com/blogs/wp-content/uploads/2008/07/scriptaculous_logo.jpg'><img src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/scriptaculous_logo.jpg" alt="" width="91" height="75"></a>
</p>
<p>The other day I wanted to do drag and drop between multiple columns using scriptaculous.  Allowing this behavior is extremely simple, but out of the box the interaction feels clunky.  Here, we'll be going through an example of how to do multi-column drag and drop with scriptaculous.</p>
<p>Enabling multi-column drag and drop just involves setting a single option, but without setting a few other options the dragging will feel jittery and won't allow us to drop on empty areas.  Also, interaction with the server will require a small bit of consideration to support persistence of any changes.</p>
<p><span id="more-1051"></span></p>
<p>For this example, we'll be using divs for the items and areas but the javascript will be the same if we used lists or any other HTML element to define your items and targets (we'll, of course, need to make sure that the correct <code>tag</code> option is specified in <code><a href="http://github.com/madrobby/scriptaculous/wikis/sortable-create">Sortable.create</a></code>).</p>
<p>On the page, we'll have three areas styled to float next to each other (extra details left out for clarity). </p>
<pre>
    &lt;div class="drop_target"&gt;
      &lt;div&gt;item one&lt;/div&gt;
      &lt;div&gt;item two&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="drop_target"&gt;
      &lt;div&gt;item three&lt;/div&gt;
      &lt;div&gt;item four&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="drop_target"&gt;
      &lt;div&gt;item five&lt;/div&gt;
      &lt;div&gt;item six&lt;/div&gt;
    &lt;/div&gt;
</pre>
<p>Please note that in order for Sortable to work correctly the drop targets will need an ID, and each item element will also need a properly formatted ID for <code><a href="http://github.com/madrobby/scriptaculous/wikis/sortable-serialize">Sortable.serialize</a></code> to work correctly.  If we so desired, we could put in a few extra lines of code in the following javascript examples which will automatically add a unique ID to each drop target and item which doesn't already have one.</p>
<p>Now, to enable the basic drag and drop between the columns we just need to create a <code>Sortable</code> for each drop target. This is all we need for dragging to work between columns, but it won't be as slick as we want.</p>
<pre>
document.observe('dom:loaded', function() {
  targets = $$('.drop_target');
  targets.each(function(target) {
    Sortable.create(target.id, {tag:'div', containment: targets});
  });
});
</pre>
<p>The magic option here is <code>containment</code>.  This specifies which elements on the page are valid drop targets when dragging an item.  Since this requires that all the elements are already available when creating the Sortable, we used an event listener that fires when the DOM is finished loading in the browser.  We're also using CSS selectors to grab the drop targets to make it easier to add/remove drop targets later down the line.</p>
<p>There are just two more options to specify.  The <code>constraint</code> option removes a horizontal/vertical dragging constraint which makes drag and drop not smooth when using different drop targets, and <code>dropOnEmpty</code> will enable dropping items onto an empty drop target.</p>
<pre>
Sortable.create(target.id, {
  tag: 'div',
  containment: targets,
  constraint: false,
  dropOnEmpty: true
});
</pre>
<p>We can now drag and drop freely between the different drop targets, and lay them out any way we want.  When we drag from one container to another, <code>onUpdate</code> will be called for <strong>both</strong> drop targets (since they both changed).</p>
<p>Since we are hitting a server to update order, we'll need to do one of two things. <code>Sortable.serialize</code> will include the HTML ID of the drop target in the parameters passed to the server as the key for the key-value pair.  We could then use this on the server to determine which drop target is being updated (and update it appropriately).  However, I don't like this because it isn't explicit and you end up parsing the request parameters looking for a certain pattern (plus, the coupling feels wrong).<br />
Instead, we'll pass a known id for the drop target being updated as an explicit parameter.  In straight javascript, it would look something like this (assume that <code>known_drop_target_id</code> is set to the appropriate value somewhere) :</p>
<pre>
Sortable.create(target.id, {
  tag: 'div',
  containment: targets,
  constraint: false,
  dropOnEmpty: true,
  onUpdate: function() {
    new Ajax.Request('http://foo.bar/baz', {
      parameters: Sortable.serialize(target.id) + '&amp;drop_target=' + known_drop_target_id
    })
  }
});
</pre>
<p>In rails, you can use/generate a known value which your controller will look for (details left out for clarity):</p>
<pre>
&lt;%= sortable_element_js(drop_target.id, :url =&gt; order_path(:id =&gt; drop_target) %&gt;
</pre>
<p>And then in the controller (again, simplified for clarity):</p>
<pre>
@drop_target = DropTarget.find params[:id]
params[dom_id(@drop_target)].each_with_index do |item, index|
  // make sure the item is "in" the drop target in the correct order
end
</pre>
<p>In the end, drag and drop between multiple columns is only trivially more complex than a single column but provides a very cool and intuitive (in certain circumstances) interaction.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/343929773" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/multiple-column-drag-and-drop-with-scriptaculous/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/multiple-column-drag-and-drop-with-scriptaculous/</feedburner:origLink></item>
		<item>
		<title>Flash 10 - FileReference Runtime Access</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/339104318/</link>
		<comments>http://www.pathf.com/blogs/2008/07/flash-10-filereference-runtime-access/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 16:06:31 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[FileReference]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[flash player 10]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1044</guid>
		<description><![CDATA[This is what I was waiting for! To quote the original blog post:

"This greatly lowers the bar to using Flash as a photo editor, document manager, customized application experiences, marking up content and saving locally, all without the need for server side script."

And then: "It is only beta (Flash 10) but there are great market opportunities to prepare for when this launches."]]></description>
			<content:encoded><![CDATA[<p>This is what I was waiting for - FileReference Runtime Access! To quote the <a href="http://drawlogic.com/2008/05/17/amazing-new-feature-for-flash-10/">original blog post</a>:</p>
<p>"This greatly lowers the bar to using Flash as a photo editor, document manager, customized application experiences, marking up content and saving locally, all without the need for server side script."</p>
<p>And then: "It is only beta (Flash 10) but there are great market opportunities to prepare for when this launches."</p>
<p>Flash is just getting better.</p>
<p>Also, do check out the other great posts from <a href="http://drawlogic.com">http://drawlogic.com</a></p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/339104318" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/flash-10-filereference-runtime-access/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/flash-10-filereference-runtime-access/</feedburner:origLink></item>
		<item>
		<title>Papervision3d 2.0 (Great White) in Flex 3 (Part I)</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/338513337/</link>
		<comments>http://www.pathf.com/blogs/2008/07/papervision3d-20-great-white-in-flex-3-part-i/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 00:22:02 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[3d]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[papervision3d]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1043</guid>
		<description><![CDATA[I'm developing a prototype that loads GPS coordinates/time of flights from an external file into Flash player in a browser and renders them at runtime using PV3D over an interactive Yahoo Maps API.

This prototype is in part being used to test performance of Flash Player running the excellent PV3D. So far it holds pretty good. ]]></description>
			<content:encoded><![CDATA[<p>I'm developing a prototype that loads GPS coordinates/time of flights from an external file into Flash player in a browser and renders them at runtime using <a href="http://blog.papervision3d.org/">PV3D</a> over an interactive <a href="http://developer.yahoo.com/flash/maps/">Yahoo Maps API</a>.</p>
<p style="center;"><a href="http://www.pathf.com/sites/pfd/flash/blog/07172008/pv3d.png"><img src="http://www.pathf.com/sites/pfd/flash/blog/07172008/pv3d-thumb.png" alt="papervision3d 2.0 flight data prototype screenshot" width="400" height="210" /></a></p>
<p>This prototype is in part being used to test performance of Flash Player running the excellent PV3D. So far it holds pretty good.</p>
<p><span id="more-1043"></span></p>
<p>PV3D has amazing capabilities. That said, it's also a work in progress so the API is not super clear, but it's well worth the hassle. It's open source so you can always look at the source code to figure out something troublesome. It doesn't take long to get started either because of the well documented common steps.</p>
<p>Of particular help was <a href="http://papervision2.com/">http://papervision2.com/</a> where you can find all the necessary first steps to take like:</p>
<p>- <a href="http://papervision2.com/2-getting-the-source/">Getting the PV3D 2.0 source</a></p>
<p>- Extremely helpful <a href="http://papervision2.com/3-creating-a-papervision-base-template/">base template</a> that sets up all the basic elements that you can easily build on</p>
<p>- And the priceless tutorial that sets you off on <a href="http://papervision2.com/advanced-interactivity-2/">3d interaction</a> path (i.e. the fun part).</p>
<p>On this prototype I was primarily working with LineMaterial and MovieMaterial (for interaction), then Line3D / Lines3D which proved very easy to build but not so easy to manipulate.</p>
<p>For such purpose it is a good idea to get to see DisplayObject3D class and understand how containers work in PV3D. More about that in Part II.</p>
<p>Performance can be fine tuned but it's necessary to keep in mind at every line of code that there is a ton of processing going on all the time and you want to build and manipulate your objects sparingly because otherwise you will see your browser locking in a millisecond.</p>
<p>Part III will cover collisions between Yahoo Maps AS3 API and PV3D. In one sentence, there is nothing you can not solve through a well arranged series of Events and this is applicable to any AS3 situation.</p>
<p>Part II next week.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/338513337" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/papervision3d-20-great-white-in-flex-3-part-i/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/papervision3d-20-great-white-in-flex-3-part-i/</feedburner:origLink></item>
		<item>
		<title>Where is Flash at?</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/335218691/</link>
		<comments>http://www.pathf.com/blogs/2008/07/where-is-flash-at/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 15:49:24 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[flash awards]]></category>

		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1034</guid>
		<description><![CDATA[For a few years now, I've been using the same site to see how much has Flash content advanced - www.thefwa.com .

]]></description>
			<content:encoded><![CDATA[<p>For some time now, I've been using the same site to see how much has Flash content advanced - <a href="http://www.thefwa.com" target="_blank">www.thefwa.com</a><a href="http://" target="_blank"> </a></p>
<p style="center;"><a href="http://thefwa.com" target="_blank"><img class="aligncenter" src="http://www.one-last-word.com/design/thefwa-favorite-website-awards.jpg" alt="" width="250" height="156" /></a></p>
<p><span id="more-1034"></span></p>
<p>Although there are many sources on the internet on this topic and FWA doesn't represent Flex apps like <a href="http://flex.org/showcase/" target="_blank">http://flex.org/showcase/</a> does or the fantastic <a href="http://blog.papervision3d.org/" target="_blank">Papervision3D</a>, it still gives an excellent overview of the latest achievements using Flash technology.</p>
<p>At FWA I saw some of the most innovative user experiences ever, something I dare to label cutting edge. To add to that, best Flash material doesn't necessarily have to use the latest classes to be fabulous. There are sites listed there that use some basic Flash techniques and have a far better user experience than the latest ones with all the bells and whistles.</p>
<p>Now, nobody is perfect and FWA does misfire every now and then with their reward, but in general, I'd say that it's the best single spot on the internet to see where's Flash at.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/335218691" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/where-is-flash-at/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/where-is-flash-at/</feedburner:origLink></item>
		<item>
		<title>Progressive Enhancement with Prototype and Custom HTML Attributes</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/335277053/</link>
		<comments>http://www.pathf.com/blogs/2008/07/progressive-enhancement-with-prototype-and-custom-html-attributes/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 23:19:40 +0000</pubDate>
		<dc:creator>Anthony Caliendo</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Progressive Enhancement]]></category>

		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1032</guid>
		<description><![CDATA[One of the nifty things progressive enhancement can be used for is to allow you to markup your document in a way which allows behaviors to be added to it automatically.  Most commonly, this is done by specifying a class name on those elements that you want to enhance.  However, this approach does [...]]]></description>
			<content:encoded><![CDATA[<p>One of the nifty things progressive enhancement can be used for is to allow you to markup your document in a way which allows behaviors to be added to it automatically.  Most commonly, this is done by specifying a class name on those elements that you want to enhance.  However, this approach does not let you easily pass additional information such as parameters to your enhancement code.</p>
<p>An approach to this problem is to use HTML attributes to mark elements, and Prototype makes this technique easy to implement and work across browsers.</p>
<p><a href="http://www.pathf.com/blogs/wp-content/uploads/2008/07/progressive_enhancement_spam.jpg"><img class="aligncenter size-medium wp-image-1035" src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/progressive_enhancement_spam.jpg" alt="" width="300" height="24" /></a></p>
<p><span id="more-1032"></span><br />
Let's consider a hypothetical use case and solve it using progressive enhancement with HTML attributes.</p>
<p>You have some input fields on your page that you want to spruce up by adding hints/default values inside the field (you know that cool behavior where the text vanishes when you click the field).  Not all the fields on the page should have this behavior, so we will need some way to mark the ones we want.  Also, the default text is different for each field so we need to specify that in some way.</p>
<p>We could mark the fields we want by using a CSS class, but this doesn't accomplish having unique default text for each field.  HTML attributes to the rescue:</p>
<pre>   &lt;input type="text" default="foo"/&gt;</pre>
<p>Here, we are specifying that this text field has the default text of "foo".</p>
<p>Now, let's look at the javascript to utilize this:</p>
<pre>document.observe('dom:loaded', function() {
  $A(document.getElementsByTagName('input')).each(function (input) {
    if (input.getAttribute('default')) {
      // use value in input.getAttribute('default')
    }
  });
});</pre>
<p>This works, but we can leverage the CSS selectors in prototype to grab the fields we want:</p>
<pre>document.observe('dom:loaded', function() {
  $$('input[default]').each(function (input) {
      // use value in input.getAttribute('default')
  });
});</pre>
<p>I prefer the second one myself, as it is easier to read and maintain (however, I haven't tested any performance differences between the two).  Regardless of which path you take, you will now have all the fields and can grab the value in the attribute to add your behavior.  This approach can work for a variety of different tasks, and is extremely easy to maintain and develop with (especially when combined with OOP).</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/335277053" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/progressive-enhancement-with-prototype-and-custom-html-attributes/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/progressive-enhancement-with-prototype-and-custom-html-attributes/</feedburner:origLink></item>
		<item>
		<title>Combine Multiple CSS/JS Files Into a Single File in Rails</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/333031576/</link>
		<comments>http://www.pathf.com/blogs/2008/07/combine-multiple-cssjs-files-into-a-single-file-in-rails/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 21:54:49 +0000</pubDate>
		<dc:creator>Anthony Caliendo</dc:creator>
		
		<category><![CDATA[Agile Ajax]]></category>

		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1021</guid>
		<description><![CDATA[
One of the nice features in rails that many people overlook is the ability to combine multiple CSS or javascript files into a single file.  Why would you want to do this?  Well, it results in fewer HTTP requests being made by a client.  The end result is that the page will load faster in [...]]]></description>
			<content:encoded><![CDATA[<p class="right"><a href="http://www.pathf.com/blogs/?attachment_id=1031"><img src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/file_cabinet1.jpg" alt="File Cabinet (by juan23for)" width="278" height="180" /></a></p>
<p>One of the nice features in rails that many people overlook is the ability to combine multiple CSS or javascript files into a single file.  Why would you want to do this?  Well, it results in fewer HTTP requests being made by a client.  The end result is that the page will load faster in most browsers, and your <a href="http://developer.yahoo.com/yslow/">YSlow</a> score will be bumped up a bit.</p>
<p>How do you turn this feature on?  It is simple really; it just involves setting a single option in two rails helper calls which you're most likely already using.</p>
<p><span id="more-1021"></span></p>
<p>If you ever took a look at the documentation for <a href="http://api.rubyonrails.com/classes/ActionView/Helpers/AssetTagHelper.html#M001680">stylesheet_link_tag</a> and <a href="http://api.rubyonrails.com/classes/ActionView/Helpers/AssetTagHelper.html#M001674">javascript_include_tag</a>, you may have noticed that there is a <code>:cache</code> option.  This option will basically tell rails to, instead of including all the files individually, combine them into a single file and include that in the HTML.  If you set <code>:cache</code> to true, it will set the name of the file to <em>all.css</em> or <em>all.js</em>.  If you set <code>:cache</code> to a string value (e.g. "foo"), then the file created will be that name (<em>foo.js</em>).</p>
<p>In order for this to work, <code>ActionController::Base.perform_caching</code> needs to be set to true in the appropriate environment's config file (by default, it is enabled for production but disabled for development).</p>
<p>Why the rails team decided to call the option "cache" instead of something like "combine_files" is beyond me, but I have a feeling that it is probably the biggest reason many people seem to not even know this feature is there.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/333031576" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/combine-multiple-cssjs-files-into-a-single-file-in-rails/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/combine-multiple-cssjs-files-into-a-single-file-in-rails/</feedburner:origLink></item>
		<item>
		<title>Using Adobe Flex Builder 3 on a Mac</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/333025607/</link>
		<comments>http://www.pathf.com/blogs/2008/07/using-adobe-flex-builder-3-on-a-mac/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 21:44:08 +0000</pubDate>
		<dc:creator>Sasha Dzeletovic</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1022</guid>
		<description><![CDATA[I've made a recent switch from Windows (Vista) to Mac (OS X 10.5.4). In these two months I had enough time to evaluate all biases that I was carrying with me for the past decade.]]></description>
			<content:encoded><![CDATA[<p>I've made a recent switch from Windows (Vista) to Mac (OS X 10.5.4). In these two months I had enough time to evaluate all biases that I was carrying with me for the past decade, including the one about coding on a Mac.</p>
<p><img src="http://farm1.static.flickr.com/158/418635708_02510c745f.jpg?v=0" alt="" width="188" height="215" /> +   <img src="http://blogs.adobe.com/penguin.swf/flex-icon.png" alt="" width="200" height="200" /> =   <img src='http://www.pathf.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<span id="more-1022"></span></p>
<p>I was very wrong about Mac. And I was very wrong about coding on a Mac. In a nutshell, my productivity went up considerably since the switch. On a day to day basis, I use primarily Flex Builder, then Dreamweaver, Flash, Photoshop, Illustrator, an FTP client and as of today <a href="http://www.snackr.net/">Snackr</a>.</p>
<p>Flex Builder 3 acts exactly like it does on a Windows machine, with all the blessings and bugs included. No difference at all (I've been using Flex since 2.0 was released on Windows). Productivity boost comes from OS's fantastic interface which allows me to switch windows, not get bothered by focus steeling, run multiple screens with ease, find stuff easily (spotlight), organize files easier and more.</p>
<p>I use Firefox 2 as my primary testing browser, although Safari works just as well. I used to say: "I don't test for Mac, who cares, it's a small market anyhow..." but now I get to test on a Mac "for free".</p>
<p>I initially wanted to install a Windows VM, but so far I don't see the need.</p>
<p>So if anybody wants to code AS3, Mac is the way to go.</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/333025607" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/using-adobe-flex-builder-3-on-a-mac/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/using-adobe-flex-builder-3-on-a-mac/</feedburner:origLink></item>
		<item>
		<title>Getting Started with Silverlight</title>
		<link>http://feeds.feedburner.com/~r/Techdev/~3/332864429/</link>
		<comments>http://www.pathf.com/blogs/2008/07/getting-started-with-silverlight/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 17:37:10 +0000</pubDate>
		<dc:creator>Karthik Muthupalaniappan</dc:creator>
		
		<category><![CDATA[TechDev]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=1018</guid>
		<description><![CDATA[For people who are not aware what Silverlight is, Silverlight is Microsoft's cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.
Silverlight was designed to address these properties:

Lightweight browser plug-in—Silverlight has Windows and Macintosh modules that are designed to enhance Internet Explorer (versions 6.0 [...]]]></description>
			<content:encoded><![CDATA[<p>For people who are not aware what Silverlight is, Silverlight is Microsoft's cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.</p>
<p>Silverlight was designed to address these properties:</p>
<ul type="disc">
<li><strong>Lightweight browser plug-in</strong>—Silverlight has Windows and Macintosh modules that are designed to enhance Internet Explorer (versions 6.0 and 7.0), Firefox 2.0, and Safari browsers.</li>
<li><strong>Native presentation runtime</strong>— Software-based browser enhancement that allows rendering of XAML-based interactive 2-D graphics, text, and media, in addition to the browser native rendering of HTML. XAML can be used inline, in a file, or in a package.</li>
<li><strong>Interactive video and audio</strong>—Cross-platform independent media runtime that can render Windows Media content (WMV and WMA) in addition to MP3. Video and audio are handled as a media element in XAML, enabling flexibility in their presentation. Furthermore, the media support leverages the huge infrastructure and ecosystem around Windows Media, enabling cost-effective delivery of top-quality media.</li>
<li><strong>Programming layer</strong>—In consistency with the Web architecture, Silverlight XAML is exposed using a DOM model to JavaScript. That way, AJAX programs can utilize the extended markup rendering capability using the same programming paradigms and practices (on the client and on the server).</li>
</ul>
<p><span id="more-1018"></span></p>
<p>The image below outlines Silverlight's architecture.</p>
<p><img class="aligncenter size-medium wp-image-1020" src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/250px-microsoft_silverlight_stack_svg.png" alt="Silverlight Architecture" width="227" height="300" /></p>
<p>Silverlight applications can be written in any .NET programming language. As such, any development tools which can be used with .NET languages can work with Silverlight, provided they can target the Silverlight CoreCLR for hosting the application, instead of the .NET Framework CLR. Microsoft has positioned Microsoft Expression Blend versions 2.0 and 2.5 for designing the UI of Silverlight 1.0 and 2 applications respectively. Visual Studio 2008 can be used to develop and debug Silverlight applications. To create Silverlight projects and let the compiler target CoreCLR, Visual Studio 2008 requires the <em>Silverlight Tools for Visual Studio</em> which is available as a beta release.</p>
<p>A Silverlight project contains the <em>Silverlight.js</em> and <em>CreateSilverlight.js</em> files which initializes the Silverlight plugin for use in HTML pages, a XAML file for the UI, and code-behind files for the application code. Silverlight applications are debugged in a manner similar to ASP.NET applications. Visual Studio's <em>CLR Remote Cross Platform Debugging</em> feature can be used to debug Silverlight applications running on a different platform as well.</p>
<p>I have listed below a bunch of links that can help one get started on Silverlight :</p>
<p><a href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx">This tutorial starts you off on the customary "Hello World" application using vs-2008 and Silverlight 2</a></p>
<p><a href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-4-using-style-elements-to-better-encapsulate-look-and-feel.aspx">This tutorial talks about using Style Elements to better encapsulate look and feel</a></p>
<p><a href="http://silverlight.net/learn/learnvideo.aspx?video=47178">This video discusses binding a sample Silverlight control to n-tier application's business layer</a></p>
<p><a href="http://silverlight.net/learn/learnvideo.aspx?video=47177">This one's about how to consume WCF and ASP .NET web services in Silverlight</a></p>
<p><a href="http://quickstarts.asp.net/3-5-extensions/silverlight/default.aspx">This provides information about different ASP .NET controls for Silverlight</a></p>
<p>I ll try to take a deeper dive into some of the specifics of Silverlight Implementation using the .NET framework in the coming weeks. Stay tuned!</p>
<img src="http://feeds.feedburner.com/~r/Techdev/~4/332864429" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pathf.com/blogs/2008/07/getting-started-with-silverlight/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.pathf.com/blogs/2008/07/getting-started-with-silverlight/</feedburner:origLink></item>
	</channel>
</rss>
