<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rich Internet Applications (RIA) &#187; Jazoon</title>
	<atom:link href="http://canoo.com/blog/category/jazoon/feed/" rel="self" type="application/rss+xml" />
	<link>http://canoo.com/blog</link>
	<description>Web 2.0 Technology Blog on Java RIA, AJAX and Flex</description>
	<lastBuildDate>Fri, 19 Mar 2010 08:05:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Jazoon &#8216;09: Some final thoughts</title>
		<link>http://canoo.com/blog/2009/06/26/jazoon-09-some-final-thoughts/</link>
		<comments>http://canoo.com/blog/2009/06/26/jazoon-09-some-final-thoughts/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 11:05:02 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=634</guid>
		<description><![CDATA[A day after the fact and I feel that my time spent at Jazoon &#8216;09 was definitely worth while. I attended some genuinely top-quality talks, had some great discussions with peers and potential clients; plus I got to meet the man who started it all: James Gosling.
Conference host Christian Frei finished last the conference night [...]]]></description>
			<content:encoded><![CDATA[<p>A day after the fact and I feel that my time spent at Jazoon &#8216;09 was definitely worth while. I attended some genuinely top-quality talks, had some great discussions with peers and potential clients; plus I got to meet the man who started it all: James Gosling.</p>
<p>Conference host Christian Frei finished last the conference night with some thanks to everyone who doodled on the James Gosling campaign and for the Java Rookies. He noted that Jazoon &#8216;09 had 20% more visitors than 2008, which is not what one might expect under the current financial climate&#8230; but is certainly encouraging.</p>
<p>So three cheers for Jazoon &#8216;09! Three more cheers for Jazoon 2010!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/26/jazoon-09-some-final-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Deploying Java apps from a website</title>
		<link>http://canoo.com/blog/2009/06/26/jazoon-09-deploying-java-apps-from-a-website/</link>
		<comments>http://canoo.com/blog/2009/06/26/jazoon-09-deploying-java-apps-from-a-website/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 11:03:19 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java RIA]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=586</guid>
		<description><![CDATA[ 
Session title: Wuala Webstart &#8211; Launching a Java Application directly from a Website
Speakers: Luzius Meisser – Caleido AG / Wuala
 

 
Luzius describes Wuala (which I&#8217;ve never heard of until now) as an all for offline file-storage. The goal was to make this available in as many contexts as possible, and to get the app up and [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p><strong>Session title</strong>: Wuala Webstart &#8211; Launching a Java Application directly from a Website<br />
<strong>Speakers</strong>: Luzius Meisser – Caleido AG / Wuala</p>
<p> </p>
<p><img class="alignnone size-medium wp-image-591" title="Luzius Meisser" src="http://canoo.com/blog/wp-content/uploads/2009/06/LuziusMeisser-300x225.jpg" alt="LuziusMeisser" width="300" height="225" /></p>
<p> </p>
<p>Luzius describes <a href="http://www.wuala.com/">Wuala</a> (which I&#8217;ve never heard of until now) as an all for offline file-storage. The goal was to make this available in as many contexts as possible, and to get the app up and running as fast as possible, which resulted in them creating their own webstart implementation.</p>
<p>In the speaker&#8217;s implementation of webstart he demonstrates how the app starts before the complete app is loaded&#8230; which if I&#8217;m not mistaken is also possible in Java webstart.</p>
<p>The strategy: Load a trusted applet, copy loader.jar into a temp folder and run it. Now RCP exists as it&#8217;s own process and consequently survives browser closure&#8230;</p>
<p>On the server-side the apparently smart webstart server (the server counterpart to loader.jar) &#8220;learns&#8221; which classes are needed first and subsequently delivers the app faster and faster with time.</p>
<p>Some extremely wordy slides are shown which are impossible to read because Luzius is talking. To read or to listen? That is the question.</p>
<p>What I&#8217;m extracting from this mix of written and spoken words is that their webstart solution enables quicker downloads and updates than conventional Java webstart.</p>
<p><strong>Summary</strong>: This short talk was a little confusing to follow until I realised that I was hearing about two technologies: (a) Wuala &#8211; the offline file storage solution; (b) The unique webstart implementation &#8211; which was developed in order to improve Wuala&#8217;s quality. Nevertheless, I found it quite interesting to learn of the existence of Wuala&#8230; 20 minutes well spent.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/26/jazoon-09-deploying-java-apps-from-a-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Addressing security in the agile process</title>
		<link>http://canoo.com/blog/2009/06/25/jazoon-09-addressing-security-in-the-agile-process/</link>
		<comments>http://canoo.com/blog/2009/06/25/jazoon-09-addressing-security-in-the-agile-process/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 13:25:51 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=571</guid>
		<description><![CDATA[ 
Session title: Agile and Secure; Can we do Both?
 Speakers: Jason Li &#38; Jerry Hoff, Aspect Security

 Goal: To try to get developers to think about security early on in the development process.
Jason begins with a brief description of a common security flaw (in AJAX apps at least) XSS, which typically involves replacing regular text with [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p><strong>Session title</strong>: Agile and Secure; Can we do Both?<br />
<strong> Speakers</strong>: Jason Li &amp; Jerry Hoff, Aspect Security</p>
<p><img class="alignnone size-medium wp-image-573" title="Jerry Hoff and Jason Li of Aspect Security" src="http://canoo.com/blog/wp-content/uploads/2009/06/JasonLiJerryHoff-300x225.jpg" alt="Jerry Hoff and Jason Li of Aspect Security" width="300" height="225" /></p>
<p> <strong>Goal</strong>: To try to get developers to think about security early on in the development process.</p>
<p>Jason begins with a brief description of a common security flaw (in AJAX apps at least) XSS, which typically involves replacing regular text with a malicious piece of JavaScript. Example attack: The JS steals the end-user&#8217;s cookie by querying the DOM. A cross-site request forgery might subsequently be mounted by using the stolen cookie from within a new application context such as mail in order to delete all the users mail.</p>
<p>Another example &#8211; SQL injection &#8211; is when part of a SQL statement is replaced with a semi-colon followed by another statement e.g. DROP TABLE&#8230; which is obviously bad news.</p>
<p>With that whirlwind tour of web security&#8230; how to fix the process which results in such errors?</p>
<p>Speakers refer to the waterfall and explain how in each of the chunky phases activities include (or should include) security; security requirements, security design etc&#8230;</p>
<p>Speakers then argue that embellishing the highly iterative agile process in the same way as was done for waterfall is not practical. Blogger agrees&#8230; the granularity of the activities is too fine to permit the kinds of security analyses which are required. So what&#8217;s the solution?</p>
<p>They recommend&#8230;</p>
<p><strong>Leveraging user stories</strong></p>
<p>Prerequisite step: Ensure that all developers have received adequate security training</p>
<p>Another prerequisite step: Get management to fund this (gets a laugh!)<br />
Alternatively: The OWASP Open Web Application Security Project is an organization providing resources which provides heaps of information on attacks points and solutions for these.</p>
<p><strong>Leverage unit testing&#8230;</strong> and include security tests in the unit tests. This is obviously particularly effective in a continuous integration environment.</p>
<p>To speed up this process, use common security components such as those at <a href="http://www.owasp.org/index.php/ESAPI">Open Enterprise Security</a>. Organizationally, this needs to be communicated across the development team(s).</p>
<p><strong>Leverage and consolidate sprints&#8230;</strong> and ensure that all security stories are included in each sprint. For dealing with security stories which don&#8217;t fit into any particular sprint, run sprints that are focussed solely on security.</p>
<p>Great line (paraphrased): <em>Web apps are a kind of &#8220;perfect storm&#8221; comprising a complex mixture of technologies, which results both in a large attack surface area as well as numerous subtle edge cases which make us more vulnerable.</em></p>
<p>Couldn&#8217;t agree more!!!</p>
<p>I found this talk excellent both stylistically and, more importantly, in terms of content. There are <em>still</em> voices out there which claim that agile in some way incompatible with quality. Talks like this should go some way to quell those remaining voices. Although the pair used AJAX&#8217;s inherent security vulnerabilities to highlight the necessity for a systematic approach to security in agile environments, much of what they recommend applies to any agile environment, whether it is creating AJAX applications or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/25/jazoon-09-addressing-security-in-the-agile-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Activity Based Costing and the Cloud</title>
		<link>http://canoo.com/blog/2009/06/25/jazoon-09-activity-based-costing-and-the-cloud/</link>
		<comments>http://canoo.com/blog/2009/06/25/jazoon-09-activity-based-costing-and-the-cloud/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 10:45:56 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=535</guid>
		<description><![CDATA[Session title: Metering the Cloud, applying ABC from code profiling up to performance cost management of cloud computing
Speaker: William Louth, JINSPIRED
To quote Monty Python: And now for something complete different.

William correctly notes that ABC is an accepted accounting practice.
Novel: A movie excerpt (THX1138). In the portrayed world every activity has a budget. (The chase ends [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session title</strong>: Metering the Cloud, applying ABC from code profiling up to performance cost management of cloud computing<br />
<strong>Speaker</strong>: William Louth, JINSPIRED</p>
<p>To quote Monty Python: <em>And now for something complete different.</em></p>
<p><img class="alignnone size-thumbnail wp-image-536" title="WilliamLouth" src="http://canoo.com/blog/wp-content/uploads/2009/06/WilliamLouth-150x150.jpg" alt="WilliamLouth" width="150" height="150" /></p>
<p>William correctly notes that ABC is an accepted accounting practice.</p>
<p>Novel: A movie excerpt (<a href="http://www.imdb.com/title/tt0066434/">THX1138</a>). In the portrayed world every activity has a budget. (The chase ends when the chaser&#8217;s budget runs out.) William claims that the cloud will operate in an analogous manner to this world. Business will demand a breakdown of the activities which result in a given total cost. They will do this so they can subsequently optimize their resource usage and reduce costs.</p>
<p>The speaker describes (and seemingly accepts) the assumption that the lower the cost, the higher the efficiency. For example, if I can identify that my persistence costs are high I may choose an alternative persistence provider.</p>
<p>Blogger thinks: What a horrible world this would be, where cost becomes the sole consideration at the expense of all other quality attributes. What about uptime, response time, <em>throughput</em>? But come to think of it: Isn&#8217;t this how companies have been thinking ever since the bubble burst!? For that matter maybe this is how businesses have been thinking since the invention of <a href="http://en.wikipedia.org/wiki/Taylorism">Taylorism</a>.</p>
<p>Continues&#8230; billing will be required on various levels: Across groups and aggregated services.</p>
<p>The Jinspired product &#8220;Probes&#8221; enables the monitoring of high-level entities e.g. user, house, washing machine etc. as opposed to simply methods, which is what most probing software focusses on. AspectJ is used to inject probes into code.</p>
<p>The Probes API is attempting to become a JSR. It&#8217;s certainly an incredibly powerful idea. It permits metering at various levels, groups and aggregated entities.</p>
<p><strong>Summary</strong><br />
This whole business of costing everything and billing accordingly will likely appeal to today&#8217;s business mindset.<br />
However, I (and I&#8217;m not alone) view ABC as a disastrous approach to improving the efficiency of the organization. This is not just because quality comprises a multitude of attributes (cost being just one of them), but &#8211; more fundamentally &#8211; because it turns out that organizational efficiency (the cloud, which forms part of the organization) is not in fact maximized by maximizing the efficiency of each individual element involved.</p>
<p>Counter-intuitive though it is, the quality and quantity of what your organization produces (products, services) is actually determined by a handful of constraints (<em>bottlenecks</em>.) ABC does not only not recognize this fact, it <em>guarantees</em> that quality and quantity will be less than their potential for a given set of resources. For more information read <a href="http://en.wikipedia.org/wiki/Theory_of_Constraints">this</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/25/jazoon-09-activity-based-costing-and-the-cloud/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Semantic Web</title>
		<link>http://canoo.com/blog/2009/06/25/jazoon-09-semantic-web/</link>
		<comments>http://canoo.com/blog/2009/06/25/jazoon-09-semantic-web/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 09:43:48 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Jazoon]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=525</guid>
		<description><![CDATA[Session title: Programming the Semantic Web with Java
 Speaker: Taylor Cowan, Travelocity

Taylor claims to quote Niel Ford (prior keynote): &#8220;The best way to predict the future is to create it&#8221;&#8230; and doesn&#8217;t appear aware that he&#8217;s actually quoting Abraham Lincoln.
Taylor shows a couple of sites which exhibit the semantic web, one of which is Yahoo.
Then [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session title</strong>: Programming the Semantic Web with Java<br />
<strong> Speaker</strong>: Taylor Cowan, Travelocity</p>
<p><img class="alignnone size-medium wp-image-526" title="Taylor Cowen of Travelocity" src="http://canoo.com/blog/wp-content/uploads/2009/06/TaylorCowen-225x300.jpg" alt="TaylorCowen" width="225" height="300" /></p>
<p>Taylor claims to quote Niel Ford (prior keynote): &#8220;The best way to predict the future is to create it&#8221;&#8230; and doesn&#8217;t appear aware that he&#8217;s actually quoting Abraham Lincoln.</p>
<p>Taylor shows a couple of sites which exhibit the semantic web, one of which is Yahoo.</p>
<p>Then demo&#8217;s <a href="http://geosparql.appspot.com/">GeoSPARQl</a> which enables semantic-style queries.</p>
<p>Then contrasts RDFa (a way of embedding RDF in XHTML) with Microformats, the latter being more complex to parse. With RDFa you can use a single format and hence require a single parser. With Microformats you a parser for each format.</p>
<p>Technically, everything identified by UDI, all data as canonical RDF, RDFS provides a schema, OWL provides additional meaning, SPARQL queries semantic web data, RDFa encodes RDF within XHTML.</p>
<p>Speaker then contrasts the RDF Triple Store vs. the Relational DB approaches to persisting semantic web data and notes that RDF is not XML but rather a way of structuring data as a directed graph. In this graph nodes are nouns; axes are verbs.</p>
<p>For the record: Triple = Subject, Verb, Object</p>
<p>The concepts in a semantic declaration can be represented sequentially using N3.</p>
<p>Similarly, the Java API JENA can also be used to model semantic relationships.</p>
<p>Using an inferencing engine new relationships can be derived automatically e.g. the explicitly declared relationship &#8220;Java is the primary topic of Jazoon&#8221; (after interence) automatically results in a new relationship &#8220;Jazoon has Java as the primary topic&#8221;. Pretty neat!</p>
<p>One of the major pain points with JENA: Having to create unique URL&#8217;s for every entity.</p>
<p>Taylor then describes a bean helper mechanism &#8220;JenaBean&#8221; (which I understand he created and is hosted at <a href="http://jenabean.googlecode.com">jenabean.googlecode.com</a>) which (he claims) makes working with JENA somewhat easier.</p>
<p>Finally some words on tooling:<br />
Triple stores: JENA, Sesame OpenRDF and Mulgara are all Java-based.<br />
Java binding tools: JenaBean, Jastor, Owl2Java, Elmo.</p>
<p>During Q&amp;A Taylor notes that triple store scalability is often a big issue; thinks that commercial solutions such as Oracle&#8217;s will not suffer from this problem.</p>
<p>From the perspective of a non-expert in Semantic web (i.e. myself), this was a valuable, quick introduction to a deep subject. Good stuff!</p>
<p>Links:<br />
<a href="http://thesemanticweb.com">http://thesemanticweb.com</a><br />
<a href="http://twitter.com/tcowan">http://twitter.com/tcowan</a></p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/25/jazoon-09-semantic-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Keynote with SpringSource&#8217;s Adrian Colyer</title>
		<link>http://canoo.com/blog/2009/06/25/jazoon-09-keynote-with-springsources-adrian-colyer/</link>
		<comments>http://canoo.com/blog/2009/06/25/jazoon-09-keynote-with-springsources-adrian-colyer/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:20:43 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=499</guid>
		<description><![CDATA[Keynote title: The Changing Nature of Enterprise Java Application Development
 Speaker: Adrian Colyer CTO SpringSource

Adrian &#8211; perhaps principally of AspectJ fame &#8211; begins by stating that we live interesting times and that &#8220;seeds of change&#8221; are present&#8230; which leads naturally enough to a rain-forest metaphor.
To cut a long story short: New stuff starts out as [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Keynote title</strong>: The Changing Nature of Enterprise Java Application Development<br />
<strong> Speaker</strong>: Adrian Colyer CTO SpringSource</p>
<p style="text-align: center;"><img class="size-medium wp-image-502 aligncenter" title="Adrian Colyer of SpringSource" src="http://canoo.com/blog/wp-content/uploads/2009/06/AdrianC-236x300.jpg" alt="Adrian Coyler of SpringSource" width="236" height="300" /></p>
<p>Adrian &#8211; perhaps principally of AspectJ fame &#8211; begins by stating that we live interesting times and that &#8220;seeds of change&#8221; are present&#8230; which leads naturally enough to a rain-forest metaphor.</p>
<p>To cut a long story short: New stuff starts out as a seed, some of this stuff rises and becomes well established&#8230; whereas much of it dies out at some point on the way up. Assuming my interpretation of the symbolism is on the mark.</p>
<p>A picture of the sun setting over the rainforest&#8230; represents Sun &#8220;moving on&#8221;. And the metaphor continues&#8230; but strangely I find my interest in it is waning&#8230;</p>
<p>Adrian cites Java 7&#8217;s improved for support new languages, plus the proliferation of new languages (Groovy, Scala, Erlang, JRuby, Clojure, Jython, Ruby) as one of the significant new developments. And questions which one of the new languages will dominate over the coming years&#8230;</p>
<p>And initially picks Groovy, Clojure, JRuby and Scala because they are designed to work on a JVM.</p>
<p>A comparison of Java versus Groovy ensues, with emphasis on Groovy conciseness.</p>
<p>The challenges posed by concurrency are mentioned, and Clojure&#8217;s &#8220;immutability by default&#8221; and Scala&#8217;s built-in actor model are cited as a ways of addressing them.</p>
<p>The speaker drops Clojure from his list of candidates because he feels the Lisp-inspired syntax of Clojure too radical a leap from Java&#8217;s syntax and the C-legacy/culture.</p>
<p>Eventually he gives Groovy the edge because of its super-tight two-way integration with Java&#8230; and then is kind enough to admit his (or his company&#8217;s) bias in this matter.</p>
<p>Next up: A monolog on the various application frameworks, and acknowledges both the power and the complexity of the new programming environment. He recalls the classic terminal application to reinforce the point that times have changed radically. Can&#8217;t disagree with that!</p>
<p>The final message: &#8220;The future is coming!&#8221; which for me definitely means a very strong coffee.</p>
<p>Conclusion: A well delivered presentation, rather too drawn out and too long on metaphors. Nevertheless, an opportunity to reflect a bit about the strange, changing ocean in which we IT geeks are immersed. Hey&#8230; I wonder if I can develop this metaphor and use it in my next presentation?</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/25/jazoon-09-keynote-with-springsources-adrian-colyer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Meeting The Man</title>
		<link>http://canoo.com/blog/2009/06/24/jazoon09-meeting-the-man/</link>
		<comments>http://canoo.com/blog/2009/06/24/jazoon09-meeting-the-man/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 21:18:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=487</guid>
		<description><![CDATA[Now I&#8217;ll be the first to admit that I&#8217;ve had my issues with Java-the-language over the years. When it came to the lack of support for Design by Contract, for example, I recall thinking to myself back in the late 90s &#8220;if I ever meet James Gosling personally, I&#8217;m gonna give him a piece of [...]]]></description>
			<content:encoded><![CDATA[<p>Now I&#8217;ll be the first to admit that I&#8217;ve had my issues with Java-the-language over the years. When it came to the lack of support for Design by Contract, for example, I recall thinking to myself back in the late 90s &#8220;if I ever meet James Gosling personally, I&#8217;m gonna give him a piece of my mind!&#8221;</p>
<p>Well, at long last I did finally get a chance to meet James &#8220;the father of Java&#8221; Gosling (which I guess makes him the grandfather of Groovy, Scale, JRuby and subsequently the great grandfather of myriad other life-changing innovations.) And guess what&#8230; I <strong>did not</strong> give him a piece of my mind.</p>
<p>This was because immediately following the Java Rookie event JG was simply too forthcoming, too attentive and too downright <em>chilled</em> when I approached him with a view to chatting about matters more constructive than simply what Java lacks or cannot do.</p>
<p>Here I am in chat mode with The Man:</p>
<p> </p>
<p><img class="alignnone size-medium wp-image-491" title="P1010220" src="http://canoo.com/blog/wp-content/uploads/2009/06/P1010220-300x200.jpg" alt="P1010220" width="300" height="200" />  <img class="alignnone size-medium wp-image-492" title="P1010221" src="http://canoo.com/blog/wp-content/uploads/2009/06/P1010221-300x200.jpg" alt="P1010221" width="300" height="200" /></p>
<p> </p>
<p>Here are some other members of the Canoo/Jazoon&#8217;09 team in completely natural poses:</p>
<p> </p>
<p><img class="alignnone size-medium wp-image-493" title="P1010218" src="http://canoo.com/blog/wp-content/uploads/2009/06/P1010218-300x200.jpg" alt="P1010218" width="300" height="200" />  <img class="alignnone size-medium wp-image-494" title="P1010219" src="http://canoo.com/blog/wp-content/uploads/2009/06/P1010219-300x200.jpg" alt="P1010219" width="300" height="200" /></p>
<p> </p>
<p>So thanks James for gracing Jazoon&#8217;09 with your presence. You made a great conference even greater. We wish you a pleasant journey home!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/24/jazoon09-meeting-the-man/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon 2009: JavaFX vs. Android</title>
		<link>http://canoo.com/blog/2009/06/24/jazoon-2009-javafx-vs-android/</link>
		<comments>http://canoo.com/blog/2009/06/24/jazoon-2009-javafx-vs-android/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:45:38 +0000</pubDate>
		<dc:creator>Felix Schrape</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=473</guid>
		<description><![CDATA[Session title: JavaFX/Android: Competing technologies or ideal partnership?
Speakers: Andreas Hölzl (Canoo), Mike Mannion (Canoo)
Two geeks discussed Mobile/RIA stuff over coffee and while Mike played the part the JavaFX-guy, Andreas was the Android-man in this short talk. 

 
Mike first talks about the JavaFX Mobile architecture, which builds on JavaME. The JavaFX API available to tje JavaFX Mobile [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session title</strong>: JavaFX/Android: Competing technologies or ideal partnership?<br />
<strong>Speakers</strong>: Andreas Hölzl (Canoo), Mike Mannion (Canoo)</p>
<p>Two geeks discussed Mobile/RIA stuff over coffee and while Mike played the part the JavaFX-guy, Andreas was the Android-man in this short talk. </p>
<p><img class="alignnone size-medium wp-image-480" title="P1010126" src="http://canoo.com/blog/wp-content/uploads/2009/06/P1010126-300x200.jpg" alt="P1010126" width="300" height="200" /><br />
 <br />
Mike first talks about the JavaFX Mobile architecture, which builds on JavaME. The JavaFX API available to tje JavaFX Mobile developer is a subset of the whole JavaFX API available on the desktop. </p>
<p><img class="alignnone size-full wp-image-481" title="Bild 1" src="http://canoo.com/blog/wp-content/uploads/2009/06/Bild-1.png" alt="Bild 1" width="649" height="463" /></p>
<p>Andreas goes on to present the more sophisticated Android architecture, which first of all has an applicaton framework while we see a big hole at this level on the JavaFX side (see slide).</p>
<p><img class="alignnone size-full wp-image-483" title="Bild 2" src="http://canoo.com/blog/wp-content/uploads/2009/06/Bild-2.png" alt="Bild 2" width="460" height="442" /></p>
<p>Mike agrees that the application framework is missing on JavaFX. He mentions that both he and Andreas have done iPhone development in which the the importance of the iPhone&#8217;s app framework plays a significant role in achieving look and feel consistency across applications. </p>
<p>On the other hand, Mike notes, JavaFX has a very impressive designer-developer workflow, which enables you to transfer static Photoshop or Illustrator design to the netbeans environment. JavaFX can subsequently be used to add functionality to the design. Andreas points out Android&#8217;s architecture also permits one person to work on the UI design (working with an XML document) whilst another person works on the functionality (Java code).</p>
<p>The two would-be actors raise the question of how one might possibly get a JavaFX program running onthe Android platform. Two technical scenarios are described, one involving a cross-compiler (cross-compiling JavaFX Script to the Android-compatible Java code), the second involving a port of the JavaFX runtime. The moral of this story is that no matter how you look at it, getting JavaFX to run on Android would be technically challenging. Android was designed from the ground up with its own intentions and philosophy. It would be miraculous if JavaFX would simply work on top of this.  </p>
<p>A poll of the audience at the end of the talk reveals that most of the audience thinks that Android will win over JavaFX mobile (in the market place) because of it&#8217;s mature and already commercially established architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/24/jazoon-2009-javafx-vs-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Offline Hibernate</title>
		<link>http://canoo.com/blog/2009/06/24/jazoon-09-offline-hibernate/</link>
		<comments>http://canoo.com/blog/2009/06/24/jazoon-09-offline-hibernate/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 13:42:23 +0000</pubDate>
		<dc:creator>Sibylle</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java RIA]]></category>
		<category><![CDATA[Jazoon]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=469</guid>
		<description><![CDATA[Session title: Convenient Disconnected Mode for your Rich Java Application
 Speakers: David Bernhard und Philipp Oser, ELCA
Szenario: Rich Java Client and app on app server -&#62; work offline without the app on the server. Offline with part of data and syncronize
Working offline is wished for in a lot of client &#8211; server applications. This talk [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session title</strong>: Convenient Disconnected Mode for your Rich Java Application<br />
<strong> Speakers</strong>: David Bernhard und Philipp Oser, ELCA</p>
<p><strong>Szenario</strong>: Rich Java Client and app on app server -&gt; work offline without the app on the server. Offline with part of data and syncronize</p>
<p>Working offline is wished for in a lot of client &#8211; server applications. This talk presents a possilbe solution for this problem.</p>
<p>The hibernate offliner needs a local database and a local persistence framework (here hibernate, but not necessarily) on the client. On the server side two additional db tables are needed to store the mapping information for the remote and local objects.</p>
<p>Basically the hibernate offliner works as follows:<br />
To start working offline, the user extracts some part of the data from the database and transfers it to the local database on the client.</p>
<p>In this process the mapping information is stored on the remote database. It consists of the remote key and the local key.<br />
After working offline and going online again this data needs to be synchronized. That&#8217;s done by fetching the original remote key with the local key and then insert the data remotely. So for the remote db it&#8217;s the same thing as working without offliner.</p>
<p>Object graphs are a bit more complicated they use a graphwalker to make sure that a parent can only be offlined if all of its children are correctly processed.</p>
<p>Offliner does this by first checking the changes on the client side and insert them into the real database. Then it checks for changes on the server database. What happens to conflicts?</p>
<p>To identify conflicts version info and optimistic locking is used. When conflicts occur all conflicts are returned. Object graphs can only be processed if no child has a conflict. Conflicts need to be resolved manually by the user. Similar to well known version controls. Force operations exist.</p>
<p><strong>Limitation</strong>:</p>
<ul>
<li>works only with fat clients -&gt; application logic needs to be on the client</li>
<li>only a prototype not ripe</li>
<li>two set of keys (e.g. positive and negative)</li>
<li>not all of hibernate features are available</li>
<li>Offliner cannot guess pointers to the offlined objects</li>
</ul>
<p>Conclusion: Interesting approach but the restriction to fat clients is kind of disappointing.</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/24/jazoon-09-offline-hibernate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jazoon &#8216;09: Securing AJAX Applications</title>
		<link>http://canoo.com/blog/2009/06/24/jazoon-09-securing-ajax-applications/</link>
		<comments>http://canoo.com/blog/2009/06/24/jazoon-09-securing-ajax-applications/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:32:27 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jazoon]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://canoo.com/blog/?p=460</guid>
		<description><![CDATA[Session title: Securing AJAX Applications
Speakers: Moritz Kuhn, Philipp Färber – AdNovum Informatik AG
The subtitle of this talk is: &#8220;New threats and defenses?&#8221; Does the question mark imply that they will question the existence of new threats?
Speaker Moritz begins by citing some interesting attacks which took place recently, one of which took down myspace for a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session title</strong>: Securing AJAX Applications<br />
<strong>Speakers</strong>: Moritz Kuhn, Philipp Färber – AdNovum Informatik AG</p>
<p>The subtitle of this talk is: &#8220;New threats and defenses?&#8221; Does the question mark imply that they will question the existence of new threats?</p>
<p>Speaker Moritz begins by citing some interesting attacks which took place recently, one of which took down myspace for a period of time &#8211; apparently using a simple JavaScript payload.</p>
<p>Proceeds to explain the &#8220;Same Origin&#8221; policy, which is designed to prevent a JS script in one frame from accessing the DOM in another frame. Note that this is enforced at the Window&#8217;s border. However, the rules are very complex and apply to cookies, XHR&#8230; and several other areas.</p>
<p>XMLHttpRequest has a stricter security model, which is often a pain for developers because it is inflexible, yet it is too loose for engineers because it is ambiguous.</p>
<p>Cross-Site Scripting (XSS) is an attack which exploits ambiguity in Same Origin rules.</p>
<p>Cross-Site Request Forgery (CSRF) when the victim is logged into an authenticated web application and his browser stores a session cookie for the app. The attackers web page makes the victim&#8217;s browser send a request to the vulnerable web app. The victim&#8217;s browser appends the cookie to the end of his request.</p>
<p>Speaker demos these attacks by showing how an attacking app can insert JavaScript code into a calendar; points out that the code could contain anything&#8230; reading email for example. Scary stuff!</p>
<p><a href="http://canoo.com/blog/wp-content/uploads/2009/06/p1010117.jpg"><img class="alignnone size-medium wp-image-461" title="p1010117" src="http://canoo.com/blog/wp-content/uploads/2009/06/p1010117-300x200.jpg" alt="" width="300" height="200" /></a></p>
<p>How to combat these threats? Philipp takes to the stage&#8230;</p>
<p>Begins by contrasting classic and AJAX architectures, which increases awareness of the technical interactions involved between the parties.</p>
<p>Looking from the server-side, need to consider that the attack-surface is increased in an AJAX architecture e.g. via exposed services, protocols, sessions, domains. Also: code contains call params and service URLs. Finally, there are concurrency issues.</p>
<p>From the client side, new attacks are around like JSON hijacking and DOM-based XSS with URl fragments.</p>
<p>A final observation from the speaker is that one of the consequences of all this is that testing is getting harder. Exhaustive testing is obviously out of the question.</p>
<p><strong>Counter-measures</strong>:</p>
<p>Input validation, output encoding, service hardening. Retain awareness of the technologies you are using. Defensive design involves avoiding mashup-like services, KISS and using separate domains for public and private data. Points out the fact that the Google domain strategy is open to XSS attacks.</p>
<p>Some AJAX-specific counter-measures: Know the output&#8217;s insertion context (don&#8217;t allow angled brackets in the output, for example!); Ensure no sensitive data is sent to the client (be aware what your frameworks are sending!); Prefix all JSON replies e.g. &#8216;while(1); {&#8221;x&#8221;:&#8221;y&#8221;}&#8217;; Add a random number to a response and match it up when the next request comes in. This can&#8217;t be predicted in advance by an attacker (I like this!); Validate services responses &#8211; also in the client; Understand and use a secure framework e.g. GWT, prototype, jQuery&#8230;</p>
<p>Rigorous testing is obviously a must; Designing for security/testing upfront is a must; Test individual AJAX features individually; Simulate malicious requests&#8230;</p>
<p><strong>Conclusion</strong>: AJAX means: Old threats + new threats + higher complexity = bad news.</p>
<p>Summary: I never cease to be shocked by the degree of details and complexity which the developer has to be acquainted with in order to make an AJAX-based app secure. The reality of AJAX development is that in most projects the developer will be focussed on delivering the the core business requirements and getting the look and feel right. With this focus security holes are virtually inevitably.</p>
<p>A very worthwhile presentation!</p>
]]></content:encoded>
			<wfw:commentRss>http://canoo.com/blog/2009/06/24/jazoon-09-securing-ajax-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
