<?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>Phil Wallach</title>
	<atom:link href="http://philwallach.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://philwallach.com</link>
	<description>I follow where my mind leads ...</description>
	<lastBuildDate>Wed, 17 Jun 2009 03:39:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP profiling: comparisons</title>
		<link>http://philwallach.com/2009/06/17/php-profiling-comparisons/</link>
		<comments>http://philwallach.com/2009/06/17/php-profiling-comparisons/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 03:11:39 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://philwallach.com/?p=97</guid>
		<description><![CDATA[An application I created used a lot of MySQL ENUMS.  They are kind of useful, in that the value of an ENUM column does not need a lookup.  The downside is that it lead to a lot of string comparisons in the code, and this became a prime suspect when performance degraded.
However a colleague of [...]]]></description>
			<content:encoded><![CDATA[<p>An application I created used a lot of MySQL ENUMS.  They are kind of useful, in that the value of an ENUM column does not need a lookup.  The downside is that it lead to a lot of string comparisons in the code, and this became a prime suspect when performance degraded.</p>
<p>However a colleague of mine suggested that it may be due to the cost of pass-by-value as opposed to pass-by reference.</p>
<p>So I wanted to sort it out and this simple test is the result.  After all, the first rule of profiling is &#8220;measure, measure, measure&#8221; (OK, the first three rules).  The following code compares string comparisons as pass-by-value, pass-by-reference and inline, as well as an integer (constant) comparison.</p>
<p>The profiling code:<br />
<pre><code>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function compare_value($str)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($str == &#039;MekTek&#039;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function compare_ref(&amp;$str)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($str == &#039;MekTek&#039;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string = &quot;MekTek&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$integer = 0;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$now = microtime(true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 0; $i &lt; 10000000; $i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compare_value($string);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo(&quot;value: &quot; . (microtime(true) - $now) . &quot;\n&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$now = microtime(true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 0; $i &lt; 10000000; $i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compare_ref($string);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo(&quot;ref: &quot; . (microtime(true) - $now) . &quot;\n&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$now = microtime(true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 0; $i &lt; 10000000; $i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($str == &#039;MekTek&#039;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo(&quot;str: &quot; . (microtime(true) - $now) . &quot;\n&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$now = microtime(true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 0; $i &lt; 10000000; $i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($integer == 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo(&quot;int: &quot; . (microtime(true) - $now) . &quot;\n&quot;);
</code></pre></p>
<p>The result:<br />
<pre><code>&nbsp;&nbsp;&nbsp;&nbsp;value: 5.2698040008545
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref: 5.4901170730591
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str: 5.3154430389404
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int: 1.0382018089294</code></pre></p>
<p>Isn&#8217;t that fascinating.  I love it when profiling returns obvious results.  The time taken to compare a string depends on the length of the string, regardless of other factors.</p>
<p>The message is clear.  Do not compare strings in performance-critical code.  Use constants instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2009/06/17/php-profiling-comparisons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Worlds News » Former Outback Online Head Announces Imperial Galaxy for Facebook</title>
		<link>http://philwallach.com/2007/12/20/virtual-worlds-news-%c2%bb-former-outback-online-head-announces-imperial-galaxy-for-facebook/</link>
		<comments>http://philwallach.com/2007/12/20/virtual-worlds-news-%c2%bb-former-outback-online-head-announces-imperial-galaxy-for-facebook/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 05:23:57 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://philwallach.com/2007/12/20/virtual-worlds-news-%c2%bb-former-outback-online-head-announces-imperial-galaxy-for-facebook/</guid>
		<description><![CDATA[Former Outback Online Head Announces Imperial Galaxy for Facebook
]]></description>
			<content:encoded><![CDATA[<h3 class="entry-header"><a href="http://www.virtualworldsnews.com/2007/12/former-outback.html">Former Outback Online Head Announces Imperial Galaxy for Facebook</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/12/20/virtual-worlds-news-%c2%bb-former-outback-online-head-announces-imperial-galaxy-for-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Australians launch MMOG on Facebook : The Metaverse Journal &#8211; Australia’s Virtual World News Service</title>
		<link>http://philwallach.com/2007/12/18/australians-launch-mmog-on-facebook-the-metaverse-journal-australia%e2%80%99s-virtual-world-news-service/</link>
		<comments>http://philwallach.com/2007/12/18/australians-launch-mmog-on-facebook-the-metaverse-journal-australia%e2%80%99s-virtual-world-news-service/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 23:39:31 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://philwallach.com/2007/12/18/australians-launch-mmog-on-facebook-the-metaverse-journal-australia%e2%80%99s-virtual-world-news-service/</guid>
		<description><![CDATA[Australians launch MMOG on Facebook : The Metaverse Journal &#8211; Australia’s Virtual World News Service
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.metaversejournal.com/2007/12/18/australians-launch-mmog-on-facebook/">Australians launch MMOG on Facebook : The Metaverse Journal &#8211; Australia’s Virtual World News Service</a></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/12/18/australians-launch-mmog-on-facebook-the-metaverse-journal-australia%e2%80%99s-virtual-world-news-service/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Talking Squid » Imperial Galaxy, the first MMORG for Facebook</title>
		<link>http://philwallach.com/2007/12/18/imperial-galaxy-the-first-mmorg-for-facebook/</link>
		<comments>http://philwallach.com/2007/12/18/imperial-galaxy-the-first-mmorg-for-facebook/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 23:27:57 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://philwallach.com/2007/12/18/imperial-galaxy-the-first-mmorg-for-facebook/</guid>
		<description><![CDATA[On Talking Squid:
Imperial Galaxy, the first MMORG for Facebook
]]></description>
			<content:encoded><![CDATA[<p>On Talking Squid:</p>
<p><a href="http://www.talkingsquid.net/archives/294" class="post_title" rel="bookmark" title="Permanent Link to Imperial Galaxy, the first MMORG for Facebook">Imperial Galaxy, the first MMORG for Facebook</a></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/12/18/imperial-galaxy-the-first-mmorg-for-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>metarand » Creative Enclave announces Imperial Galaxy: the social networking MMOG</title>
		<link>http://philwallach.com/2007/12/18/metarand-%c2%bb-creative-enclave-announces-imperial-galaxy-the-social-networking-mmog/</link>
		<comments>http://philwallach.com/2007/12/18/metarand-%c2%bb-creative-enclave-announces-imperial-galaxy-the-social-networking-mmog/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 23:21:16 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://philwallach.com/2007/12/18/metarand-%c2%bb-creative-enclave-announces-imperial-galaxy-the-social-networking-mmog/</guid>
		<description><![CDATA[Rand blogs the launch of Imperial Galaxy.
metarand » Creative Enclave announces Imperial Galaxy: the social networking MMOG
]]></description>
			<content:encoded><![CDATA[<p>Rand blogs the launch of Imperial Galaxy.</p>
<p><a href="http://metarand.com/2007/12/17/creative-enclave-announces-imperial-galaxy-the-social-networking-mmog/">metarand » Creative Enclave announces Imperial Galaxy: the social networking MMOG</a></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/12/18/metarand-%c2%bb-creative-enclave-announces-imperial-galaxy-the-social-networking-mmog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMPERIAL GALAXY</title>
		<link>http://philwallach.com/2007/12/10/imperial-galaxy/</link>
		<comments>http://philwallach.com/2007/12/10/imperial-galaxy/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 07:03:59 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://philwallach.com/2007/12/10/imperial-galaxy/</guid>
		<description><![CDATA[We&#8217;ll be launching the open beta test of IMPERIAL GALAXY, the science fiction massively multiplayer online game on Facebook, on Monday 17 December at 12:01am US Eastern time, which is 4:01pm AEDT. The www.imperialgalaxy.com website will also be live at that time.
I&#8217;ll be sending invitations to all my friends as soon as the Beta goes [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ll be launching the open beta test of IMPERIAL GALAXY, the science fiction massively multiplayer online game on Facebook, on Monday 17 December at 12:01am US Eastern time, which is 4:01pm AEDT. The www.imperialgalaxy.com website will also be live at that time.</p>
<p>I&#8217;ll be sending invitations to all my friends as soon as the Beta goes live, and it will be in the Applications directory and so on.</p>
<p>We&#8217;re very excited about IMPERIAL GALAXY. The background of the game is based on Garth Nix&#8217;s forthcoming novel A CONFUSION OF PRINCES (due out in 2009) and we&#8217;ve been playtesting it for the last three months. The game itself has been under development in its pre-Facebook incarnation for more than three years.</p>
<p>So a week from now, you can join the Imperial Navy and with your friends go forth to reclaim the lost Rozaxra Domain from Sad-Eye and Deader aliens, Mrouzh Rebels, Naknuk Secessionists, pirates, rebels and other star-scum. To your ships, my friends!</p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/12/10/imperial-galaxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenLaszlo: how you get there is more important than where you are going</title>
		<link>http://philwallach.com/2007/08/29/openlaszlo-how-you-get-there-is-more-important-than-where-you-are-going/</link>
		<comments>http://philwallach.com/2007/08/29/openlaszlo-how-you-get-there-is-more-important-than-where-you-are-going/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 11:10:41 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://philwallach.com/?p=87</guid>
		<description><![CDATA[WHAT BROKE
This is the old version of the method.  It finds some specific views and scans their datapaths, to see if any entries match.  This version mostly worked fine, but occassionally it would fail, and finding the cause of the failure was proving difficult.

    &#38;lt;method name=&#34;check_ok&#34; args=&#34;from, to&#34;&#38;gt;
        &#38;lt;![CDATA[
        for (var i = 1; true; [...]]]></description>
			<content:encoded><![CDATA[<h3>WHAT BROKE</h3>
<p>This is the old version of the method.  It finds some specific views and scans their datapaths, to see if any entries match.  This version mostly worked fine, but occassionally it would fail, and finding the cause of the failure was proving difficult.<br />
<pre><code>
    &amp;lt;method name=&quot;check_ok&quot; args=&quot;from, to&quot;&amp;gt;
        &amp;lt;![CDATA[
        for (var i = 1; true; i++)
        {
            var match = to.classroot.datapath.xpathQuery(
                &#039;matches/match[&#039; + i + &#039;]/text()&#039;);
            if (match == null) break;
</code></pre><pre><code>            for (var j = 1; true; j++)
            {
                var type = from.datapath.xpathQuery(
                    &#039;types/type[&#039; + j + &#039;]/text()&#039;);
                if (type == null) break;
</code></pre><code></code><pre><code>                if (match == type)
                    return true;
            }
        }
        return false;
        ]]&amp;gt;
    &amp;lt;/method&amp;gt;</code></pre></p>
<h3>WHAT WORKED</h3>
<p>I finally tracked down the problem; it occured whenever &#8220;to&#8221; was not replicated (i.e. there was only one).  So I assume that the replication manager was confusing my view navigation, as the number and type of views to navigate changed.</p>
<p>The solution is shown in the code below.  Basically I navigate the dataset directly, and avoid any view navigation.  Nothing can go wrong, right?<br />
<pre><code>
    &amp;lt;method name=&quot;check_ok&quot; args=&quot;from, to&quot;&amp;gt;
        &amp;lt;![CDATA[
        var e  = to.datapath.dupePointer();
        e.selectParent(2);
        e.setXPath(&#039;matches&#039;);
        if (e.selectChild())
        {
            do
            {
                if (e.getNodeName() == &#039;match&#039;)
                {
                    var c  = from.datapath.dupePointer();
                    c.setXpath(&#039;types&#039;);
                    if (c.selectChild())
                    {
                        do
                        {
                            if (c.getNodeName() == &#039;type&#039;)
                            if (e.getNodeText() == c.getNodeText())
                                return true;
                        }
                            while (c.selectNext());
                    }
                }
            }
                while (e.selectNext());
        }
        return false;
        ]]&amp;gt;
    &amp;lt;/method&amp;gt;
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/08/29/openlaszlo-how-you-get-there-is-more-important-than-where-you-are-going/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenLaszlo: saving LzLoader</title>
		<link>http://philwallach.com/2007/08/22/openlaszlo-saving-lzloader/</link>
		<comments>http://philwallach.com/2007/08/22/openlaszlo-saving-lzloader/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 10:31:49 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://philwallach.com/?p=86</guid>
		<description><![CDATA[One thing that tripped me up early on is a know bug in the OpenLaszlo loader.  Basically, if a view is destroyed before the resource completes loading, then the loader chokes and nothing more is heard from it. 
Unsurprisingly, this is very very bad.
The bug is documented here:
    bug: destroy before resource is loaded leads to [...]]]></description>
			<content:encoded><![CDATA[<p>One thing that tripped me up early on is a know bug in the OpenLaszlo loader.  Basically, if a view is destroyed before the resource completes loading, then the loader chokes and nothing more is heard from it. </p>
<p>Unsurprisingly, this is very very bad.</p>
<p>The bug is documented here:<br />
    <a href="http://www.openlaszlo.org/jira/browse/LPP-1952">bug: destroy before resource is loaded leads to full load queue and hang</a></p>
<p>The fix is noted in the bug report.  Basically the following code is added to the application.</p>
<p><pre><code>    &amp;lt;script&amp;gt;
        LzMakeLoad.unload = function ()
        {
            this.loader.unload( this.loader.mc );
        }
        LzMakeLoad.destroy = function (recur)
        {
            this.loader.unload( this.loader.mc );
            super.destroy( recur );
        }
    &amp;lt;/script&amp;gt;
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/08/22/openlaszlo-saving-lzloader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenLaszlo: who&#8217;s watching the loader?</title>
		<link>http://philwallach.com/2007/08/21/openlaszlo-whos-watching-the-loader/</link>
		<comments>http://philwallach.com/2007/08/21/openlaszlo-whos-watching-the-loader/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 01:02:02 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://philwallach.com/?p=88</guid>
		<description><![CDATA[Being able to see when LzLoader is active is very useful when an application is under development.  The following code displays &#8220;Loading&#8221; whenever the loader is active.
The display is text.  The text has an &#8216;id&#8217; of &#8216;loading&#8217; and &#8216;visibility&#8217; set to false.
&#38;lt;text id=&#34;loading&#34; x=&#34;10&#34; y=&#34;10&#34; visible=&#34;false&#34;
&#38;nbsp;&#38;nbsp;&#38;nbsp;&#38;nbsp;fontsize=&#34;12&#34; fgcolor=&#34;white&#34; fontstyle=&#34;bold&#34;&#38;gt;
&#38;nbsp;&#38;nbsp;Loading
&#38;lt;/text&#38;gt;
The display is controlled in an [...]]]></description>
			<content:encoded><![CDATA[<p>Being able to see when LzLoader is active is very useful when an application is under development.  The following code displays &#8220;Loading&#8221; whenever the loader is active.</p>
<p>The display is text.  The text has an &#8216;id&#8217; of &#8216;loading&#8217; and &#8216;visibility&#8217; set to false.</p>
<p><pre><code>&amp;lt;text id=&quot;loading&quot; x=&quot;10&quot; y=&quot;10&quot; visible=&quot;false&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fontsize=&quot;12&quot; fgcolor=&quot;white&quot; fontstyle=&quot;bold&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;Loading
&amp;lt;/text&amp;gt;</code></pre></p>
<p>The display is controlled in an idle handler.  The visible property of the display is set depending on the number of open connections in the loader.</p>
<p><pre><code>&amp;lt;handler name=&quot;onidle&quot; reference=&quot;LzIdle&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;![CDATA[
&amp;nbsp;&amp;nbsp;loading.setVisible(LzLoadQueue.openConx &amp;gt; 0);
&amp;nbsp;&amp;nbsp;]]&amp;gt;
&amp;lt;/handler&amp;gt;</code></pre></p>
<p>The display shows you when the loader, and therefore the application, is busy.  You can see how well load-spreading strategies like <a href="http://philwallach.com/?p=82">OpenLaszlo: background loading of images</a> are working.  It is a window into a part of your application that is normally hidden.</p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/08/21/openlaszlo-whos-watching-the-loader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenLaszlo: source code examples</title>
		<link>http://philwallach.com/2007/08/15/openlaszlo-source-code-examples/</link>
		<comments>http://philwallach.com/2007/08/15/openlaszlo-source-code-examples/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 12:39:54 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[OpenLaszlo]]></category>

		<guid isPermaLink="false">http://philwallach.com/?p=83</guid>
		<description><![CDATA[This is a short by-no-means-exhaustive list of freely available OpenLaszlo source code, for all those out there who like to steal learn from other people&#8217;s work.
OpenLaszlo &#8220;official&#8221; demos
Here you will find a range of interactive demos showing some of what OpenLaszlo makes possible.
www
OpenLaszlo Incubator Project
The Incubator directory contains components and other code that have been [...]]]></description>
			<content:encoded><![CDATA[<p>This is a short by-no-means-exhaustive list of freely available OpenLaszlo source code, for all those out there who like to <strike>steal</strike> learn from other people&#8217;s work.</p>
<h3>OpenLaszlo &#8220;official&#8221; demos</h3>
<p>Here you will find a range of interactive demos showing some of what OpenLaszlo makes possible.<br />
<a href="http://www.openlaszlo.org/demos">www</a></p>
<h3>OpenLaszlo Incubator Project</h3>
<p>The Incubator directory contains components and other code that have been contributed to the OpenLaszlo project, but have not yet been fully integrated into the product.<br />
<a href="http://svn.openlaszlo.org/openlaszlo/trunk/lps/components/incubator/">src</a></p>
<h3>Applejuice</h3>
<p>Applejuice is a free web-based photo gallery. Its user interface is simple and uncluttered, to give your photos center stage.<br />
<a href="http://www.antisleep.com/applejuice/">www</a></p>
<h3>Our First iPhone App</h3>
<p><a href="http://weblog.openlaszlo.org/archives/2007/07/our-first-iphone-app/">www</a> - <a href="http://svn.openlaszlo.org/sandbox/ben/smush/">src</a></p>
<h3>OpenLaszlo YouTube Player Demo and Source Code</h3>
<p><a href="http://www.donhopkins.com/drupal/node/126">www</a></p>
<h3>Open Source SimFaux OpenLaszlo Code Now Available via Subversion</h3>
<p>SimFaux is an interactive TV station simulator written in OpenLaszlo, by Don Hopkins, for the HuffingtonPost Contagious Festival.<br />
<a href="http://www.donhopkins.com/drupal/node/123">www</a></p>
<h3>Source code for Zoom Maps project (Openlaszlo)</h3>
<p><a href="http://www.saumande.net/index.php/2007/03/13/source-code-for-zoom-maps-project-openlaszlo/">www</a> - <a href="http://www.saumande.net/echange/tiler.rar">src</a></p>
<h3>Laszlo: An Open Source Framework for Rich Internet Applications</h3>
<p><a href="http://today.java.net/pub/a/today/2005/03/22/laszlo.html">www</a></p>
<h3>blogbox</h3>
<p>Blogboxes provide exciting, instantly deployed functionality for your blog or Web site.<br />
<a href="http://www.blogbox.com/">www</a></p>
<h3>Glancer: Friend finder and Scheduler application</h3>
<p><a href="http://www.glancer.net/">www</a> - <a href="http://www.glancer.net/source/glancer_0.1b.tgz">src</a></p>
]]></content:encoded>
			<wfw:commentRss>http://philwallach.com/2007/08/15/openlaszlo-source-code-examples/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
