<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Performance: improving insertion times</title>
	<atom:link href="http://fxexperience.com/2009/09/performance-improving-insertion-times/feed/" rel="self" type="application/rss+xml" />
	<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/</link>
	<description>Sharing the Experience of JavaFX</description>
	<lastBuildDate>Tue, 15 May 2012 08:11:19 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Pedro Duque Vieira</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-979</link>
		<dc:creator>Pedro Duque Vieira</dc:creator>
		<pubDate>Tue, 22 Sep 2009 16:48:46 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-979</guid>
		<description>Richard,

Can you tell us when will the embedding of javafx in java be available? Will it be on the next release?

Why doesn&#039;t the JavaFX team simply make JXScene (blogged on Josh Marinnaci blog) an official API? 

Having some decisions to make and some openness on JavaFX would be greatly appreciated.

Thanks a lot!</description>
		<content:encoded><![CDATA[<p>Richard,</p>
<p>Can you tell us when will the embedding of javafx in java be available? Will it be on the next release?</p>
<p>Why doesn&#8217;t the JavaFX team simply make JXScene (blogged on Josh Marinnaci blog) an official API? </p>
<p>Having some decisions to make and some openness on JavaFX would be greatly appreciated.</p>
<p>Thanks a lot!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel Grandin</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-977</link>
		<dc:creator>Noel Grandin</dc:creator>
		<pubDate>Tue, 22 Sep 2009 14:39:02 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-977</guid>
		<description>Surely you can supply an API for batch inserts - then the checks can be done once per batch instead of for every object.

That does push the responsibility to the client programmer, but sometimes that is the easiest answer :-)</description>
		<content:encoded><![CDATA[<p>Surely you can supply an API for batch inserts &#8211; then the checks can be done once per batch instead of for every object.</p>
<p>That does push the responsibility to the client programmer, but sometimes that is the easiest answer <img src='http://fxexperience.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-915</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Fri, 18 Sep 2009 15:26:04 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-915</guid>
		<description>Yes, nearly. A childless/leaf node might also be used as a clip on some node, so you have to make sure that it also doesn&#039;t have a clip parent. For example, I could do:

&lt;code&gt;
var r:Rectangle = Rectangle {
    clip: r
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Yes, nearly. A childless/leaf node might also be used as a clip on some node, so you have to make sure that it also doesn&#8217;t have a clip parent. For example, I could do:</p>
<p><code><br />
var r:Rectangle = Rectangle {<br />
    clip: r<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-893</link>
		<dc:creator>Hans</dc:creator>
		<pubDate>Fri, 18 Sep 2009 11:16:02 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-893</guid>
		<description>One remark on the circularity check: if child has no children there can be no circularity, can there? So you could use that to speed it up?

Cheers, Hans</description>
		<content:encoded><![CDATA[<p>One remark on the circularity check: if child has no children there can be no circularity, can there? So you could use that to speed it up?</p>
<p>Cheers, Hans</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pedro Duque Vieira</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-870</link>
		<dc:creator>Pedro Duque Vieira</dc:creator>
		<pubDate>Thu, 17 Sep 2009 11:11:29 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-870</guid>
		<description>That&#039;s nice Richard!

I&#039;m really looking forward for that to become available.

I think javafx is awesome, it would be a tremendous waste not to make it available to existing swing developers who want to spice up their apps. :-)

Thanks.</description>
		<content:encoded><![CDATA[<p>That&#8217;s nice Richard!</p>
<p>I&#8217;m really looking forward for that to become available.</p>
<p>I think javafx is awesome, it would be a tremendous waste not to make it available to existing swing developers who want to spice up their apps. <img src='http://fxexperience.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-857</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Wed, 16 Sep 2009 14:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-857</guid>
		<description>The main reason we&#039;ve not released a supported method for embedding fx into an existing swing app is that there is not &lt;b&gt;yet&lt;/b&gt; a nice way to call from java directly to javafx. Emphasis on the word &quot;yet&quot;.

Cheers!</description>
		<content:encoded><![CDATA[<p>The main reason we&#8217;ve not released a supported method for embedding fx into an existing swing app is that there is not <b>yet</b> a nice way to call from java directly to javafx. Emphasis on the word &#8220;yet&#8221;.</p>
<p>Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pedro Duque Vieira</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-853</link>
		<dc:creator>Pedro Duque Vieira</dc:creator>
		<pubDate>Wed, 16 Sep 2009 11:22:06 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-853</guid>
		<description>Sadly, I&#039;m in the middle of giving up javafx, after some months of commitment and working hours.
There are still no news of an official way to embed javafx on java which is a main killer point for me and I expect a lot other developers. But on the contrary there are some guesses that the next release will make it even more difficult/impossible for that to happen.
All those improvements are good but they are not targeting the main issues.
Sorry for being so negative, just my view on things.</description>
		<content:encoded><![CDATA[<p>Sadly, I&#8217;m in the middle of giving up javafx, after some months of commitment and working hours.<br />
There are still no news of an official way to embed javafx on java which is a main killer point for me and I expect a lot other developers. But on the contrary there are some guesses that the next release will make it even more difficult/impossible for that to happen.<br />
All those improvements are good but they are not targeting the main issues.<br />
Sorry for being so negative, just my view on things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tbee</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-851</link>
		<dc:creator>Tbee</dc:creator>
		<pubDate>Wed, 16 Sep 2009 07:06:41 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-851</guid>
		<description>Another option, since you are working closely with the compiler guys, is splitting up the insert and the check in special methods. 

So there is the &quot;official insert&quot; that does &quot;insert&quot; + &quot;check&quot;.
And there is the &quot;dangerous insert&quot; that only does &quot;insert&quot;.

Since insert is a special keyword, the compiler guys could route that keyword to &quot;dangerous insert&quot; and call &quot;check&quot; just before the next time the group is used inside the block (directly or as a parameter) or when exiting the block. This way you keep the check close to where the magic is happening instead of getting an error completely else.

An challenge is how to deal with non local groups (instance variables). 

We could also do both approaches: insert does not check, check at the block boundary or first usage AND check when reading. A boolean &quot;dirty&quot; could be used to mark if checking is required.</description>
		<content:encoded><![CDATA[<p>Another option, since you are working closely with the compiler guys, is splitting up the insert and the check in special methods. </p>
<p>So there is the &#8220;official insert&#8221; that does &#8220;insert&#8221; + &#8220;check&#8221;.<br />
And there is the &#8220;dangerous insert&#8221; that only does &#8220;insert&#8221;.</p>
<p>Since insert is a special keyword, the compiler guys could route that keyword to &#8220;dangerous insert&#8221; and call &#8220;check&#8221; just before the next time the group is used inside the block (directly or as a parameter) or when exiting the block. This way you keep the check close to where the magic is happening instead of getting an error completely else.</p>
<p>An challenge is how to deal with non local groups (instance variables). </p>
<p>We could also do both approaches: insert does not check, check at the block boundary or first usage AND check when reading. A boolean &#8220;dirty&#8221; could be used to mark if checking is required.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-847</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Wed, 16 Sep 2009 03:50:06 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-847</guid>
		<description>Hey Osvaldo, thanks for the comments (and voting is always allowed and appreciated!). There isn&#039;t any gain by cutting out the circularity check in terms of download or loading time -- its one function:

&lt;pre&gt;
    package function wouldCreateCycle(parent:Node, child:Node): Boolean {
        var n: Node = parent;
        while (n != child) {
            if (n.parent != null) {
                n = n.parent;
            } else if (n.clipParent != null) {
                n = n.clipParent;
            } else {
                return false;
            }
        }
        true
    }
&lt;/pre&gt;
&lt;p&gt;</description>
		<content:encoded><![CDATA[<p>Hey Osvaldo, thanks for the comments (and voting is always allowed and appreciated!). There isn&#8217;t any gain by cutting out the circularity check in terms of download or loading time &#8212; its one function:</p>
<pre>
    package function wouldCreateCycle(parent:Node, child:Node): Boolean {
        var n: Node = parent;
        while (n != child) {
            if (n.parent != null) {
                n = n.parent;
            } else if (n.clipParent != null) {
                n = n.clipParent;
            } else {
                return false;
            }
        }
        true
    }
</pre></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Osvaldo Pinali Doederlein</title>
		<link>http://fxexperience.com/2009/09/performance-improving-insertion-times/comment-page-1/#comment-844</link>
		<dc:creator>Osvaldo Pinali Doederlein</dc:creator>
		<pubDate>Wed, 16 Sep 2009 01:28:48 +0000</pubDate>
		<guid isPermaLink="false">http://fxexperience.com/?p=128#comment-844</guid>
		<description>Great stuff. But if I could vote, I&#039;d raise both hands for &quot;giving developers / designers all kinds of rope&quot; - I can use this rope to hang myself, but I can also use a strong, simple, cheap piece of rope to do lift pretty heavy stuff, without paying the cost of a high-tech hydraulic elevator. And perhaps that&#039;s just my lack of experience programming scene graphs (JavaFX is my first), but circularity seems the kind of Awesome Stupidity bug that I&#039;d never expect the average developer to do with any significant frequency. (As for designers, they are supposed to use visual tools like CS4 or the upcoming Designer Tool, so many structural errors can be made impossible, or validated, by the tool.)

Idea: have such high-level validations conditionally compiled (or enabled through the assertion mechanism), so they are only active in the SDK for debugging/testing purpose (and even there with a option to disable), but absent in the end-user runtimes. Cutting this stuff out of the runtime would also remove some download and loading-time overhead. Right now JavaFX has worse deployment story than competing RIA toolkits, it&#039;s perhaps the Achilles heel of all Java-based desktop technologies, so the last thing we need is extra bloat that serves only to prevent people from shooting their own feet.</description>
		<content:encoded><![CDATA[<p>Great stuff. But if I could vote, I&#8217;d raise both hands for &#8220;giving developers / designers all kinds of rope&#8221; &#8211; I can use this rope to hang myself, but I can also use a strong, simple, cheap piece of rope to do lift pretty heavy stuff, without paying the cost of a high-tech hydraulic elevator. And perhaps that&#8217;s just my lack of experience programming scene graphs (JavaFX is my first), but circularity seems the kind of Awesome Stupidity bug that I&#8217;d never expect the average developer to do with any significant frequency. (As for designers, they are supposed to use visual tools like CS4 or the upcoming Designer Tool, so many structural errors can be made impossible, or validated, by the tool.)</p>
<p>Idea: have such high-level validations conditionally compiled (or enabled through the assertion mechanism), so they are only active in the SDK for debugging/testing purpose (and even there with a option to disable), but absent in the end-user runtimes. Cutting this stuff out of the runtime would also remove some download and loading-time overhead. Right now JavaFX has worse deployment story than competing RIA toolkits, it&#8217;s perhaps the Achilles heel of all Java-based desktop technologies, so the last thing we need is extra bloat that serves only to prevent people from shooting their own feet.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

