<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns="http://purl.org/rss/1.0/"
>
  <channel rdf:about="http://news.xp-framework.net/6/Further_reading">  
    <title>Further reading</title>
    <link>http://news.xp-framework.net/6/Further_reading</link>
    <description>XP Framework</description>
    <dc:language>en-US</dc:language>
    <dc:date>2013-05-18T12:22:02+02:00</dc:date>
    <dc:creator>xp-admin@xp-framework.net</dc:creator>
    <dc:publisher/>
    <dc:rights/>
    <items>    
      <rdf:Seq>      
        <rdf:li rdf:resource="http://news.xp-framework.net/article/384/2010/09/27/Show_me_the_code"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/379/2010/09/22/Array_dereferencing"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/369/2010/08/25/Y2K38"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/326/2009/11/14/Generics_in_C___Java__and_C__"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/307/2009/07/12/Type_hinting_discussion_and_contracts"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/293/2009/04/05/PHP-Arrays__Maps_and_lists"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/268/2008/07/19/Casting_an_object_array_to_a_string_array"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/265/2008/06/25/Exceptions_in_Java"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/220/2007/11/11/Frank_Kleine_on_Namespaces"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/204/2007/07/21/PHP6_Namespaces_patch_backported"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/170/2007/04/07/Scala"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/163/2007/03/31/I_can_t_believe_it_s_not_XML_"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/161/2007/03/29/Static_initializers"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/133/2006/11/24/Five_questions_about_language_design"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/123/2006/10/22/C__s__using__statement"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/117/2006/10/08/_with__elsewhere"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/111/2006/09/18/Exceptions_From_Constructors"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/94/2006/05/26/exit___in_Ruby"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/93/2006/05/20/So_You_Wanna_Write_A_Unit_Test"/>
        <rdf:li rdf:resource="http://news.xp-framework.net/article/89/2006/04/30/Error_codes_or_Exceptions__Why_is_Reliable_Software_so_Hard_"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://news.xp-framework.net/article/384/2010/09/27/Show_me_the_code">  
    <title>Show me the code</title>
    <link>http://news.xp-framework.net/article/384/2010/09/27/Show_me_the_code</link>
    <description>After reading and agreeing with &lt;a href=&quot;http://www.travisswicegood.com/2010/08/04/show-me-the-code/&quot;&gt;Show me the code&lt;/a&gt; some time ago, I thought about how to integrate source code examples on the XP Framework website. While lots of blog postings here contain sourcecode, this is not prominent enough - so I set up a new site dedicated to this purpose: The &lt;a href=&quot;http://code.planet-xp.net/&quot;&gt;XP Code galleries&lt;/a&gt;. &lt;b&gt;Enjoy&lt;emoticon id=&quot;regular_smile&quot; text=&quot;:-)&quot;/&gt;&lt;/b&gt;</description>
    <dc:date>2010-09-27T10:37:45+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/379/2010/09/22/Array_dereferencing">  
    <title>Array dereferencing</title>
    <link>http://news.xp-framework.net/article/379/2010/09/22/Array_dereferencing</link>
    <description>While array dereferencing was added to the PHP runtime's &lt;a href=&quot;http://schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html&quot;&gt;so-far unreleased SVN trunk a while ago&lt;/a&gt;, this feature isn't going to be backported to older PHP versions, which the XP-Framework will continue to support for quite a while. We've thus added a core functionality, &lt;tt&gt;this()&lt;/tt&gt;, to make indexer access possible:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$a&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$class&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;-&amp;gt;getMethods&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;[0];         &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// Supported in PHP as of 2011*&lt;br/&gt;&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$a&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= this&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$class&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;-&amp;gt;getMethods&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;, 0&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;   &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// The XP-Framework way&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br/&gt;&lt;small&gt;* Educated guess, there is no communicated release date for PHP &quot;next&quot;&lt;/small&gt;</description>
    <dc:date>2010-09-22T08:10:13+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/369/2010/08/25/Y2K38">  
    <title>Y2K38</title>
    <link>http://news.xp-framework.net/article/369/2010/08/25/Y2K38</link>
    <description>In a recent &lt;a href=&quot;http://www.sitepoint.com/blogs/2010/08/24/is-your-php-application-affected-by-the-y2k38-bug/&quot;&gt;Sitepoint article&lt;/a&gt;, the author talks about problems with PHP's &lt;tt&gt;strtotime()&lt;/tt&gt; function, which can be basically summed up to this:&lt;br/&gt;&lt;br/&gt;&lt;pre&gt;  $ xp -e 'Console::writeLine(date(&quot;l d F Y H:i&quot;, strtotime(&quot;2040-02-01&quot;)));'&lt;br/&gt;  Thursday 01 January 1970 01:00&lt;br/&gt;&lt;/pre&gt;The problem is the internal representation of dates, which will overflow and thus cause &lt;tt&gt;strtotime()&lt;/tt&gt; to yield an incorrect value.&lt;br/&gt;&lt;br/&gt;The XP Framework's &lt;tt&gt;util.Date&lt;/tt&gt; class, being based on PHP's &lt;tt&gt;DateTime&lt;/tt&gt; class, will not exhibit this problem, regardless of whether the system is 32-bit or 64-bit.&lt;br/&gt;&lt;code&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$d&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; Date&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'2040-02-01'&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;; &lt;br/&gt;  Console::writeLine&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$d&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;-&amp;gt;toString&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'l d F Y H:i'&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;  &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// Wednesday 01 February 2040 00:00&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;i&gt;See also &lt;link href=&quot;http://en.wikipedia.org/wiki/Year_2038_problem&quot;/&gt; and - with a humouristic take: &lt;link href=&quot;http://xkcd.com/607/&quot;/&gt;&lt;/i&gt;</description>
    <dc:date>2010-08-25T10:28:28+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/326/2009/11/14/Generics_in_C___Java__and_C__">  
    <title>Generics in C#, Java, and C++</title>
    <link>http://news.xp-framework.net/article/326/2009/11/14/Generics_in_C___Java__and_C__</link>
    <description>In &lt;a href=&quot;http://www.artima.com/intv/generics.html&quot;&gt;this interview&lt;/a&gt; from quite a while ago Bruce Eckel and Bill Venners talk with Anders Hejlsberg about generics implementations in C# and Java - the differences in their implementations, type erasure vs. runtime instantiation, reflection and how they compare to C++'s template mechanism. This has inspired us to come up with &lt;a href=&quot;http://xp-framework.net/rfc/0193&quot;&gt;RFC #0193&lt;/a&gt; - and moving our generics implementation closer to the one in the &lt;acronym title=&quot;Common Language Runtime&quot;&gt;CLR&lt;/acronym&gt;.</description>
    <dc:date>2009-11-14T10:55:52+01:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/307/2009/07/12/Type_hinting_discussion_and_contracts">  
    <title>Type hinting discussion and contracts</title>
    <link>http://news.xp-framework.net/article/307/2009/07/12/Type_hinting_discussion_and_contracts</link>
    <description>In the recently ongoing type-hints discussion on the PHP internals mailinglist (see also the &lt;a href=&quot;http://wiki.php.net/rfc/typechecking&quot;&gt;PHP Wiki&lt;/a&gt;), an &lt;a href=&quot;http://news.php.net/php.internals/44878&quot;&gt;interesting proposal&lt;/a&gt; was made. It suggests using functions to verify argument types instead of introducing a type checking mechanism which is not strict enough for some, not flexible enough for others and too magic for yet another group.&lt;br/&gt;&lt;br/&gt;&lt;code&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; array_of_numeric&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$x&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    foreach &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$x&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; as &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$val&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;      if &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;!is_numeric&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$val&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; return FALSE;&lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    return TRUE;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;  &lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; Arrays &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    public &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; sum&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;array_of_numeric &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$a&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;      return array_sum&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$a&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;See also &lt;a href=&quot;http://news.php.net/php.internals/44886&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://news.php.net/php.internals/44894&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://news.php.net/php.internals/44887&quot;&gt;here&lt;/a&gt;.</description>
    <dc:date>2009-07-12T18:48:13+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/293/2009/04/05/PHP-Arrays__Maps_and_lists">  
    <title>PHP-Arrays: Maps and lists</title>
    <link>http://news.xp-framework.net/article/293/2009/04/05/PHP-Arrays__Maps_and_lists</link>
    <description>In the PHP world, arrays are maps are lists:&lt;br/&gt;&lt;code&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$a&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= array&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;1, 2, 3&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;                &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// #1: A list&lt;br/&gt;&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$b&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= array&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'key'&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'value'&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;, ...&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;  &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// #2: A map&lt;br/&gt;&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$c&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= array&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;1, 2, &lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'a'&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; =&amp;gt; &lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'b'&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;       &lt;/span&gt;&lt;span class=&quot;comment&quot;&gt;// #3: Mix of both&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br/&gt;Now this is (almost) perfect as long as you stay inside the PHP world; the only thing you have to know is when to be able to use array functions operating on &quot;associative arrays&quot; (like &lt;tt&gt;asort&lt;/tt&gt;) instead of &quot;numeric arrays&quot; (&lt;tt&gt;sort&lt;/tt&gt;), which is usually achieved by a bit of discipline. This is where a slight problem even inside the PHP world (and that's why it's only &lt;tt&gt;almost&lt;/tt&gt; perfect) starts showing: &lt;b&gt;There is no easy way to keep the both apart.&lt;/b&gt;&lt;br/&gt;</description>
    <dc:date>2009-04-05T12:30:39+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/268/2008/07/19/Casting_an_object_array_to_a_string_array">  
    <title>Casting an object array to a string array</title>
    <link>http://news.xp-framework.net/article/268/2008/07/19/Casting_an_object_array_to_a_string_array</link>
    <description>While testing the new EASC server and client implementations we're currently working on, we asked ourselves how to cast an object array to, for example, a string array.&lt;br/&gt;&lt;br/&gt;The following is an array of objects consisting solely of strings: &lt;pre&gt;  Object[] strings= new Object[] { &quot;Hello&quot;, &quot;World&quot; };&lt;/pre&gt;&lt;br/&gt;The first thing we tried was to cast it via &lt;tt&gt;(String[])strings&lt;/tt&gt;. This is legal sourcecode but will raise a &lt;tt&gt;java.lang.ClassCastException&lt;/tt&gt; in Java, and a &lt;tt&gt;System.InvalidCastException&lt;/tt&gt; in C#, both at runtime.</description>
    <dc:date>2008-07-19T21:15:28+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/265/2008/06/25/Exceptions_in_Java">  
    <title>Exceptions in Java</title>
    <link>http://news.xp-framework.net/article/265/2008/06/25/Exceptions_in_Java</link>
    <description>Found this nice article on exceptions in Java - from a historic overview of Oak, on checked and unchecked exceptions, and asynchronous exceptions it explains nicely (and with code examples) what the Java exception mechanism is about. What I like most are the best practices section, which applies not only to Java:&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Don't Write Own Exceptions&lt;/li&gt;&lt;li&gt;Write Useful Exceptions&lt;/li&gt;&lt;li&gt;Throw exceptions early&lt;/li&gt;&lt;li&gt;Catch exceptions late&lt;/li&gt;&lt;li&gt;Document exceptions&lt;/li&gt;&lt;li&gt;Unit Test Exceptions&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;link href=&quot;http://www.javaspecialists.eu/archive/Issue162.html&quot;/&gt;</description>
    <dc:date>2008-06-25T10:57:27+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/220/2007/11/11/Frank_Kleine_on_Namespaces">  
    <title>Frank Kleine on Namespaces</title>
    <link>http://news.xp-framework.net/article/220/2007/11/11/Frank_Kleine_on_Namespaces</link>
    <description>On a short note: In &lt;a href=&quot;http://www.stubbles.org/archives/33-.html&quot;&gt;Gathering practical experience with namespaces&lt;/a&gt;, Frank describes his first impressions of PHP 5.3 with namespaces:&lt;br/&gt;&lt;blockquote&gt;&lt;br/&gt;Oh boy. You should never even think about porting your application completely to namespaces if you do not have enough unit tests!&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Reminds me of the rule of thumb that one never has enough unittests&lt;emoticon id=&quot;regular_smile&quot; text=&quot;:-)&quot;/&gt;</description>
    <dc:date>2007-11-11T21:33:00+01:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/204/2007/07/21/PHP6_Namespaces_patch_backported">  
    <title>PHP6 Namespaces patch backported</title>
    <link>http://news.xp-framework.net/article/204/2007/07/21/PHP6_Namespaces_patch_backported</link>
    <description>Beginning of this month, Dmitry Stogov from Zend &lt;a href=&quot;http://news.php.net/php.internals/30440&quot;&gt;published a patch&lt;/a&gt; implementing namespaces in PHP6. &lt;br/&gt;&lt;br/&gt;To be able to begin playing around with it without adding further points of possible failures for our XP unittests with new PHP6 (e.g., unicode-related breakage), I started and after a day's work succeeded in backporting the patch to current CVS HEAD, that is, PHP 5.2.4-dev.</description>
    <dc:date>2007-07-21T15:23:12+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/170/2007/04/07/Scala">  
    <title>Scala</title>
    <link>http://news.xp-framework.net/article/170/2007/04/07/Scala</link>
    <description>Found this while surfing the web for Java &lt;b&gt;7&lt;/b&gt; ideas:&lt;br/&gt;&lt;blockquote&gt;&lt;br/&gt;Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.&lt;br/&gt;&lt;/blockquote&gt; &lt;br/&gt;&lt;br/&gt;&lt;link href=&quot;http://www.scala-lang.org/&quot;/&gt;</description>
    <dc:date>2007-04-07T11:43:12+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/163/2007/03/31/I_can_t_believe_it_s_not_XML_">  
    <title>I can't believe it's not XML!</title>
    <link>http://news.xp-framework.net/article/163/2007/03/31/I_can_t_believe_it_s_not_XML_</link>
    <description>Really enjoyed reading a weblog entry I found while surfing around for JSON-related stuff.&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;There seem to be a lot of XML folks who can't understand JSON - yes, Dave, it's not even XML. I have a theory on why that is, but to explain it I need to go into a couple other things first.&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;link href=&quot;http://www.b-list.org/weblog/2006/12/21/i-cant-believe-its-not-xml&quot;/&gt;</description>
    <dc:date>2007-03-31T16:53:54+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/161/2007/03/29/Static_initializers">  
    <title>Static initializers</title>
    <link>http://news.xp-framework.net/article/161/2007/03/29/Static_initializers</link>
    <description>Nice to see &lt;a href=&quot;http://www.stubbles.org/archives/15-.html&quot;&gt;other folks&lt;/a&gt; are adapting the static initializer idea. Too bad &lt;a href=&quot;http://bugs.php.net/bug.php?id=28720&quot;&gt;the PHP folks won't&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Example:&lt;br/&gt;&lt;code&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; Console extends Object &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    public &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$out&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$err&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= NULL;&lt;br/&gt;    &lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; __static&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;      self::&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$out&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; OutputStream&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;STDOUT&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;      self::&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$err&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= &lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; OutputStream&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;STDERR&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br/&gt;This was originally described in the &lt;a href=&quot;http://xp-framework.net/rfc/0002&quot;&gt;XP Framework's RFC #0002&lt;/a&gt; as early as November 2003&lt;emoticon id=&quot;regular_smile&quot; text=&quot;:)&quot;/&gt;</description>
    <dc:date>2007-03-29T10:06:05+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/133/2006/11/24/Five_questions_about_language_design">  
    <title>Five questions about language design</title>
    <link>http://news.xp-framework.net/article/133/2006/11/24/Five_questions_about_language_design</link>
    <description>There's a nice write-up of Paul Graham with some of his thoughts about &lt;br/&gt;language design.&lt;br/&gt;&lt;br/&gt;Some of topics he talks about are:&lt;br/&gt;&lt;li&gt;the quality of a language designed for use of yourself vs. the quality of a language designed for use of others&lt;/li&gt;&lt;br/&gt;&lt;li&gt;good languages should allow writing things brief&lt;/li&gt;&lt;br/&gt;&lt;li&gt;languages should not concentrate on being fast, but instead give their users tools to find bottlenecks in their application&lt;/li&gt;&lt;br/&gt;&lt;li&gt;You Need an Application to Drive the Design of a Language&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;... &lt;a href=&quot;http://www.paulgraham.com/langdes.html&quot;&gt;read more&lt;/a&gt;.</description>
    <dc:date>2006-11-24T23:58:24+01:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/123/2006/10/22/C__s__using__statement">  
    <title>C#'s &quot;using&quot; statement</title>
    <link>http://news.xp-framework.net/article/123/2006/10/22/C__s__using__statement</link>
    <description>Having blogged about Python's new &lt;tt&gt;with&lt;/tt&gt; statement (see &lt;blogentry id=&quot;117&quot;/&gt;), I decided I'll also mention C#'s &lt;tt&gt;using()&lt;/tt&gt; which is quite similar.&lt;br/&gt;&lt;br/&gt;From the C# Reference:&lt;br/&gt;&lt;blockquote&gt;&lt;br/&gt;Defines a scope, outside of which an object or objects will be disposed.&lt;br/&gt;&lt;/blockquote&gt;</description>
    <dc:date>2006-10-22T14:40:31+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/117/2006/10/08/_with__elsewhere">  
    <title>&quot;with&quot; elsewhere</title>
    <link>http://news.xp-framework.net/article/117/2006/10/08/_with__elsewhere</link>
    <description>You might know the &lt;tt&gt;with&lt;/tt&gt; statement from JavaScript or Pascal (where it saves a few keystrokes by &quot;auto-importing&quot; the object).&lt;br/&gt;&lt;pre&gt;  Person.Name= 'Timm';&lt;br/&gt;  Person.Id= 1549;&lt;br/&gt;&lt;br/&gt;  {* equvialent *}&lt;br/&gt;  With Person Do Begin&lt;br/&gt;    Name= 'Timm';&lt;br/&gt;    Id= 1549;&lt;br/&gt;  End;&lt;/pre&gt;&lt;br/&gt;The XP framework also has &lt;tt&gt;with&lt;/tt&gt;, not really as statement, but as a noop function:&lt;br/&gt;&lt;code&gt;&lt;span&gt;  with &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;= &amp;amp;&lt;/span&gt;&lt;span class=&quot;keyword&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; Person&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;())&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;-&amp;gt;name= &lt;/span&gt;&lt;span class=&quot;string&quot;&gt;'Timm'&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;-&amp;gt;id= 1549;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br/&gt;You could basically omit &lt;tt&gt;with ()&lt;/tt&gt; and the brackets, they serve no purpose except making the above bit more readable (especially when you're using lots of assignments or method calls on an object).&lt;br/&gt;&lt;br/&gt;Now in Python, with serves a different purpose - in a quite flexible way: &lt;a href=&quot;http://docs.python.org/whatsnew/pep-343.html&quot;&gt;What's New in Python 2.5 - The 'with' statement&lt;/a&gt;.</description>
    <dc:date>2006-10-08T22:30:02+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/111/2006/09/18/Exceptions_From_Constructors">  
    <title>Exceptions From Constructors</title>
    <link>http://news.xp-framework.net/article/111/2006/09/18/Exceptions_From_Constructors</link>
    <description>Found the following while scanning throught the JavaSpecialists newsletter archive:&lt;br/&gt;&lt;q&gt;&lt;br/&gt;What is the best way to deal with objects that cannot be properly instantiated?&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Ignore the problem and cause errors when you try to use the object later on &lt;/li&gt;&lt;li&gt;Throw a checked exception &lt;/li&gt;&lt;li&gt;Throw an IllegalArgumentException &lt;/li&gt;&lt;li&gt;Throw a NullPointerException &lt;/li&gt;&lt;li&gt;Throw an AssertionError &lt;/li&gt;&lt;li&gt;Put in a Java 1.4 assertion &lt;/li&gt;&lt;/ol&gt;&lt;/q&gt;&lt;br/&gt;&lt;a href=&quot;http://javaspecialists.co.za/archive/newsletter.do?issue=120&amp;amp;locale=en_US&quot;&gt;Read the full article here&lt;/a&gt;.</description>
    <dc:date>2006-09-18T22:04:46+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/94/2006/05/26/exit___in_Ruby">  
    <title>exit() in Ruby</title>
    <link>http://news.xp-framework.net/article/94/2006/05/26/exit___in_Ruby</link>
    <description>While reading &quot;Programming Ruby - The Pragmatic Programmer's Guide&quot; I noticed the following:&lt;br/&gt;&lt;blockquote&gt;The method &lt;tt&gt;Kernel#exit&lt;/tt&gt; terminates your program, returning a status value to the operating system. However, unlike some languages, exit doesn't just terminate the program immediately. &lt;tt&gt;Kernel#exit&lt;/tt&gt; first raises a &lt;tt&gt;SystemExit&lt;/tt&gt; exception, which you may catch, and then performs a number of cleanup actions, including running any registered &lt;tt&gt;at_exit&lt;/tt&gt; methods and object finalizers.&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Imagine this:&lt;br/&gt;&lt;code&gt;&lt;span&gt;  try &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    exit&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; catch &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;xp~lang~SystemExit &lt;/span&gt;&lt;span class=&quot;variable&quot;&gt;$e&lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;default&quot;&gt; &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;br/&gt;    echo &lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&amp;quot;Sourcecode tried to exit\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;;&lt;br/&gt;  &lt;/span&gt;&lt;span class=&quot;bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;default&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br/&gt;&lt;emoticon id=&quot;regular_smile&quot; text=&quot;:)&quot;/&gt;&lt;br/&gt;&lt;br/&gt;For details and an example, see the &lt;a href=&quot;http://www.rubycentral.com/book/ref_m_kernel.html#Kernel.exit&quot;&gt;Kernel#exit documentation&lt;/a&gt;.</description>
    <dc:date>2006-05-26T22:41:48+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/93/2006/05/20/So_You_Wanna_Write_A_Unit_Test">  
    <title>So You Wanna Write A Unit Test</title>
    <link>http://news.xp-framework.net/article/93/2006/05/20/So_You_Wanna_Write_A_Unit_Test</link>
    <description>Stumbled upon this while surfing around the blogosphere:&lt;br/&gt;&lt;q&gt;Five things to keep in mind while you are trying to work up the ambition to write that test:&lt;ol&gt;&lt;li&gt;Don't take all day&lt;/li&gt;&lt;li&gt;Silence, please&lt;/li&gt;&lt;li&gt;Skip catching exceptions&lt;/li&gt;&lt;li&gt;Don't write the &lt;i&gt;War And Peace&lt;/i&gt; of test methods&lt;/li&gt;&lt;li&gt;Don't give up!&lt;/li&gt;&lt;/ol&gt;&lt;/q&gt;The original article is at &lt;a href=&quot;http://jroller.com/page/rolsen?entry=so_you_wanna_write_a&quot;&gt;Russ Olsen's Weblog&lt;/a&gt;</description>
    <dc:date>2006-05-20T22:00:40+02:00</dc:date>
  </item>
  <item rdf:about="http://news.xp-framework.net/article/89/2006/04/30/Error_codes_or_Exceptions__Why_is_Reliable_Software_so_Hard_">  
    <title>Error codes or Exceptions? Why is Reliable Software so Hard?</title>
    <link>http://news.xp-framework.net/article/89/2006/04/30/Error_codes_or_Exceptions__Why_is_Reliable_Software_so_Hard_</link>
    <description>A very fun and interesting read:&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;Error codes or exceptions? Like static vs. dynamic programming languages or how great David Hasselhoff is (most people say great, I say super-great), it tends to turn into a pointless argument (&quot;Hasselhoff is super-great ASSHOLE!&quot;).&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://damienkatz.net/2006/04/error_code_vs_e.html&quot;&gt;Continue reading @ damienkatz.net&lt;/a&gt;&lt;br/&gt;</description>
    <dc:date>2006-04-30T12:02:00+02:00</dc:date>
  </item>
</rdf:RDF>
