<?xml version="1.0" encoding="UTF-8"?>
<!-- name="generator" content="SnipSnap/1.0b1-uttoxeter" -->
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >

  <channel>
    <title>PeerBox</title>
    
    <link>http://www.peerbox.com:8668/space/start</link>
    <description>Kevin Greer&#039;s Stuff</description>
    <dc:title>start</dc:title>
<dc:language>en</dc:language>
<dc:copyright>Copyright 2007</dc:copyright>
<dc:type>Text</dc:type>
<dc:date>2007-02-01T11:34:57GMT-05:00</dc:date>
<dc:identifier>http://www.peerbox.com:8668/space/start</dc:identifier>
<dc:creator>kgr</dc:creator>

    <!-- <blogChannel:changes>http://www.weblogs.com/rssUpdates/changes.xml</changes> -->
    <admin:generatorAgent rdf:resource="http://www.snipsnap.org/space/version-1.0b1-uttoxeter"/>
    
       <item>
        <title>More Journal of Object Technology</title>
        <link>http://www.peerbox.com:8668/space/start/2008-05-09/1#More_Journal_of_Object_Technology</link>
        <description>More Journal of Object Technology articles that I found interesting.  This is an update to my list from two years ago.

Programming with Models - Modeling with Code, The Role of Models in Software Development
ClassSheets - model-based, object-oriented design of spreadsheet applications
The Message-Oriented Mobility Model
Programming the World in a Browser, Real Men Don't Do JavaScript Do They? !
A change propagating model transformation language
Concepts and Concept-Oriented Programming
An enhanced form of dynamic untyped object-based inheritance
Overview of the Panda Programming System
 Enabling Application Agility - Software as A Service, Cloud Computing and Dynamic Languages
</description>
        <guid isPermaLink="true">http://www.peerbox.com:8668/space/start/2008-05-09/1#More_Journal_of_Object_Technology</guid>
        <content:encoded>More &lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_05/"&gt;Journal of Object Technology&lt;/a&gt;&lt;/span&gt; articles that I found interesting.  This is an update to my &lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="/space/start/2006-03-03/1"&gt;list from two years ago&lt;/a&gt;&lt;/span&gt;.
&lt;ul class="star"&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2006_11/column2/"&gt;Programming with Models - Modeling with Code, The Role of Models in Software Development&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2007_10/paper19/index.html"&gt;ClassSheets - model-based, object-oriented design of spreadsheet applications&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2007_10/paper18/index.html"&gt;The Message-Oriented Mobility Model&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2007_11/column3/index.html"&gt;Programming the World in a Browser, Real Men Don't Do JavaScript Do They? !&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_03/article3/index.html"&gt;A change propagating model transformation language&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_03/article2/index.html"&gt;Concepts and Concept-Oriented Programming&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_05/article2/index.html"&gt;An enhanced form of dynamic untyped object-based inheritance&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_05/article1/index.html"&gt;Overview of the Panda Programming System&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.jot.fm/issues/issue_2008_05/column3/index.html"&gt; Enabling Application Agility - Software as A Service, Cloud Computing and Dynamic Languages&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
        <dc:title>More Journal of Object Technology</dc:title>
<dc:language>en</dc:language>
<dc:copyright>Copyright 2008</dc:copyright>
<dc:type>Text</dc:type>
<dc:date>2008-05-09T08:22:00GMT-05:00</dc:date>
<dc:identifier>http://www.peerbox.com:8668/space/start/2008-05-09/1#More_Journal_of_Object_Technology</dc:identifier>
<dc:creator>kgr</dc:creator>

        <comments>comments/start/2008-05-09/1#post</comments>
      </item>
    
       <item>
        <title>Javascript &#039;with&#039; Statement *NOT* Considered Harmful</title>
        <link>http://www.peerbox.com:8668/space/start/2008-05-06/1#Javascript_&#039;with&#039;_Statement_*NOT*_Considered_Harmful</link>
        <description>JavaScript guru Douglas Crockford considers the ‘with’ statement harmful.His reasoning is that if you do something like this:with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) &amp;#123;
    bing = true;
    bang = true;
&amp;#125;Then “there is no way that you can tell by looking at the code which bing and bang will get modified”.He instead suggests doing something like this:var o = ooo.eee.oo.ah_ah.ting.tang.walla.walla;
o.bing = true;
o.bang = true;But this doesn’t limit the scope of the ‘o’ variable and doesn’t have a satisfying block-structure (well, if that’s the sort of thing that brings you satisfaction).You might think that you could do something like this:&amp;#123;
   var o = ooo.eee.oo.ah_ah.ting.tang.walla.walla;   o.bing = true;
   o.bang = true;
&amp;#125;
// ‘o’ is still defined here, to limit the scope and introduce a block-structure. But in the Firefox JS implementation at least, this doesn’t actually do what you would expect.  The ‘o’ variable is still defined after the end of the block.So here’s my solution:
with (&amp;#123;o:ooo.eee.oo.ah_ah.ting.tang.walla.walla&amp;#125;) &amp;#123;
    o.bing = true;
    o.bang = true;
&amp;#125;Or if you’re feeling a little more Smalltalk-ish:with (&amp;#123;self:ooo.eee.oo.ah_ah.ting.tang.walla.walla&amp;#125;) &amp;#123;
    self.bing = true;
    self.bang = true;
&amp;#125;Notice that rather than using the object directly, I've put it into a map so that I can give it an explicit name.You can also use the same trick to define multiple variables; essentially using ‘with’ like you would use Lisp or Scheme’s ‘let’ statement.with (&amp;#123;
   walla : ooo.eee.oo.ah_ah.ting.tang.walla.walla,
   wanka : ooo.eee.oo.ah_ah.ting.tank.walla.wanka
     &amp;#125;)
&amp;#123;
    walla.bing = true;
    wanka.bang = true;
&amp;#125;You’ve gotta love JS’s Object/Map duality.</description>
        <guid isPermaLink="true">http://www.peerbox.com:8668/space/start/2008-05-06/1#Javascript_&#039;with&#039;_Statement_*NOT*_Considered_Harmful</guid>
        <content:encoded>JavaScript guru Douglas Crockford &lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/"&gt;considers the ‘with’ statement harmful&lt;/a&gt;&lt;/span&gt;.&lt;p class="paragraph"/&gt;His reasoning is that if you do something like this:&lt;p class="paragraph"/&gt;&lt;div class="code"&gt;&lt;pre&gt;with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) &amp;#123;
    bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
    bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
&amp;#125;&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;Then “there is no way that you can tell by looking at the code which bing and bang will get modified”.&lt;p class="paragraph"/&gt;He instead suggests doing something like this:&lt;p class="paragraph"/&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span class="java&amp;#45;keyword"&gt;var&lt;/span&gt; o = ooo.eee.oo.ah_ah.ting.tang.walla.walla;
o.bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
o.bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;But this doesn’t limit the scope of the ‘o’ variable and doesn’t have a satisfying block-structure (well, if that’s the sort of thing that brings you satisfaction).&lt;p class="paragraph"/&gt;You might think that you could do something like this:&lt;p class="paragraph"/&gt;&lt;div class="code"&gt;&lt;pre&gt;&amp;#123;
   &lt;span class="java&amp;#45;keyword"&gt;var&lt;/span&gt; o = ooo.eee.oo.ah_ah.ting.tang.walla.walla;&lt;p class="paragraph"/&gt;   o.bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
   o.bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
&amp;#125;
// ‘o’ is still defined here&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;, to limit the scope and introduce a block-structure. But in the Firefox JS implementation at least, this doesn’t actually do what you would expect.  The ‘o’ variable is still defined after the end of the block.&lt;p class="paragraph"/&gt;So here’s my solution:
&lt;div class="code"&gt;&lt;pre&gt;with (&amp;#123;o:ooo.eee.oo.ah_ah.ting.tang.walla.walla&amp;#125;) &amp;#123;
    o.bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
    o.bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
&amp;#125;&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;Or if you’re feeling a little more Smalltalk-ish:&lt;p class="paragraph"/&gt;&lt;div class="code"&gt;&lt;pre&gt;with (&amp;#123;self:ooo.eee.oo.ah_ah.ting.tang.walla.walla&amp;#125;) &amp;#123;
    self.bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
    self.bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
&amp;#125;&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;Notice that rather than using the object directly, I've put it into a map so that I can give it an explicit name.&lt;p class="paragraph"/&gt;You can also use the same trick to define multiple variables; essentially using ‘with’ like you would use Lisp or Scheme’s ‘let’ statement.&lt;p class="paragraph"/&gt;&lt;div class="code"&gt;&lt;pre&gt;with (&amp;#123;
   walla : ooo.eee.oo.ah_ah.ting.tang.walla.walla,
   wanka : ooo.eee.oo.ah_ah.ting.tank.walla.wanka
     &amp;#125;)
&amp;#123;
    walla.bing = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
    wanka.bang = &lt;span class="java&amp;#45;keyword"&gt;true&lt;/span&gt;;
&amp;#125;&lt;/pre&gt;&lt;/div&gt;&lt;p class="paragraph"/&gt;You’ve gotta love JS’s Object/Map duality.</content:encoded>
        <dc:title>Javascript &#39;with&#39; Statement *NOT* Considered Harmful</dc:title>
<dc:language>en</dc:language>
<dc:copyright>Copyright 2008</dc:copyright>
<dc:type>Text</dc:type>
<dc:date>2008-05-06T12:34:13GMT-05:00</dc:date>
<dc:identifier>http://www.peerbox.com:8668/space/start/2008-05-06/1#Javascript_&#39;with&#39;_Statement_*NOT*_Considered_Harmful</dc:identifier>
<dc:creator>kgr</dc:creator>

        <comments>comments/start/2008-05-06/1#post</comments>
      </item>
    
       <item>
        <title>US$3 Month for Unlimited Voice, Data, and SMS*</title>
        <link>http://www.peerbox.com:8668/space/start/2008-03-18/1#US$3_Month_for_Unlimited_Voice,_Data,_and_SMS*</link>
        <description>&amp;#42; If you live in Cambodia and are a customer of qb.  This really makes me feel that I'm being severely over-charged by my carrier.</description>
        <guid isPermaLink="true">http://www.peerbox.com:8668/space/start/2008-03-18/1#US$3_Month_for_Unlimited_Voice,_Data,_and_SMS*</guid>
        <content:encoded>&amp;#42; If you live in Cambodia and are a customer of &lt;span class="nobr"&gt;&lt;img src="theme/images/Icon-Extlink.png" alt="&amp;gt;&amp;gt;" border="0"/&gt;&lt;a href="http://www.qbmore.com/index.php"&gt;qb&lt;/a&gt;&lt;/span&gt;.  This really makes me feel that I'm being severely over-charged by my carrier.</content:encoded>
        <dc:title>US$3 Month for Unlimited Voice, Data, and SMS*</dc:title>
<dc:language>en</dc:language>
<dc:copyright>Copyright 2008</dc:copyright>
<dc:type>Text</dc:type>
<dc:date>2008-03-18T09:48:04GMT-05:00</dc:date>
<dc:identifier>http://www.peerbox.com:8668/space/start/2008-03-18/1#US$3_Month_for_Unlimited_Voice,_Data,_and_SMS*</dc:identifier>
<dc:creator>kgr</dc:creator>

        <comments>comments/start/2008-03-18/1#post</comments>
      </item>
    
  </channel>
</rss>