<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.apidesign.org/skins/common/feed.css?116"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>APIDesign - Blogs</title>
		<link>http://wiki.apidesign.org/index.php?title=Blogs&amp;action=feed&amp;feed=html</link>
		<description>APIDesign - Blogs</description>
		<language>en</language>
		<generator>MediaWiki 1.12.0rc1 via WikiArticleFeeds 0.6.3</generator>
		<lastBuildDate>Wed, 07 Jan 2009 01:28:22 GMT</lastBuildDate>
		<item>
			<title> PF 2009: Get on Board! </title>
			<link>http://wiki.apidesign.org/wiki/The_Future</link>
			<description>
&lt;p&gt;Dear readers of my book and my blog, I've mentioned in &lt;a href=&quot;http://wiki.apidesign.org/wiki/The_Future&quot; title=&quot;The Future&quot;&gt;Epilogue&lt;/a&gt; of &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; that I good tools can help anyone do better job. I backed my reasoning by a skiing parallel. Recently I found an old video to explain what I really meant. Thanks for your interest in &lt;a href=&quot;http://wiki.apidesign.org/wiki/API_Design&quot; class=&quot;mw-redirect&quot; title=&quot;API Design&quot;&gt;API Design&lt;/a&gt; and I wish you good tools in 2009 to help you get on the board!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 14:20, 29 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 29 Dec 2008 14:20:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Singletonize your own Factories! </title>
			<link>http://wiki.apidesign.org/wiki/Singletonizer</link>
			<description>
&lt;p&gt;I am reading my own book and I've just got to page that talks about a pattern called among the NetBeans team &lt;a href=&quot;http://wiki.apidesign.org/wiki/Singletonizer&quot; title=&quot;Singletonizer&quot;&gt;Singletonizer&lt;/a&gt;. &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; describes it with a small note, but as I think it is very useful, I've just created a dedicated &lt;a href=&quot;http://wiki.apidesign.org/wiki/Singletonizer&quot; title=&quot;Singletonizer&quot;&gt;page&lt;/a&gt; describing it in more detail, giving it more, well deserved, publicity.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 16:29, 25 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Thu, 25 Dec 2008 16:29:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Just Three Kinds of BackwardCompatibility? </title>
			<link>http://wiki.apidesign.org/wiki/BackwardCompatibility</link>
			<description>
&lt;p&gt;Finally I finished the online page describing what it is &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;BackwardCompatibility&lt;/a&gt;. It defines three different kinds: source, binary and functional and I am curios to know: Is that all? Or can you think about other types of compatibility?
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 15:30, 21 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 21 Dec 2008 15:30:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Wizard is the best API </title>
			<link>http://wiki.apidesign.org/wiki/Talk:PropertyFiles</link>
			<description>
&lt;p&gt;There is a nice &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:PropertyFiles&quot; title=&quot;Talk:PropertyFiles&quot;&gt;discussion&lt;/a&gt; provoked by description of my &lt;a href=&quot;http://wiki.apidesign.org/wiki/PropertyFiles&quot; title=&quot;PropertyFiles&quot;&gt;manifest advantures&lt;/a&gt;. It reminds me once again how important tools are. As I wrote somewhere in &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;, I guess it is in &lt;a href=&quot;http://wiki.apidesign.org/wiki/Keep_Testability_In_Mind&quot; title=&quot;Keep Testability In Mind&quot;&gt;Chapter 9&lt;/a&gt;, one of the best &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;APIs&lt;/a&gt; is &lt;b&gt;wizard&lt;/b&gt;. Good wizard can turn any API, regardless how bad, into perfectly shining, beautiful &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:DiamondsVsStars&quot; title=&quot;Blogs:JaroslavTulach:Theory:DiamondsVsStars&quot;&gt;star&lt;/a&gt;. Good tools make everything easier.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 13:49, 19 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 19 Dec 2008 13:49:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Did OSGi Comrades Make a Mistake? </title>
			<link>http://wiki.apidesign.org/wiki/PropertyFiles</link>
			<description>
&lt;p&gt;Many systems store their configuration in some form of &lt;a href=&quot;http://wiki.apidesign.org/wiki/PropertyFiles&quot; title=&quot;PropertyFiles&quot;&gt;property files&lt;/a&gt;. However a lot of them is not doing that really properly. The results can then be quite painful. Just like when I recently played with &lt;a href=&quot;http://wiki.apidesign.org/wiki/PropertyFiles&quot; title=&quot;PropertyFiles&quot;&gt;OSGi manifest files&lt;/a&gt;. Read my &lt;a href=&quot;http://wiki.apidesign.org/wiki/PropertyFiles&quot; title=&quot;PropertyFiles&quot;&gt;story&lt;/a&gt; and &lt;a href=&quot;http://wiki.apidesign.org/wiki/PropertyFiles&quot; title=&quot;PropertyFiles&quot;&gt;feel&lt;/a&gt; my pain...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 12:36, 16 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 16 Dec 2008 12:36:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> 2009: The Year of Annotations </title>
			<link>http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009</link>
			<description>
&lt;p&gt;As I noted recently, I see the year 2009 as &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009&quot; title=&quot;TheYearOfAnnotations2009&quot;&gt;the year of annotations&lt;/a&gt;. The &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; project is about to rely on them more heavily. Finally! We've been waiting for that for ages, but finally we can compile with &lt;a href=&quot;http://wiki.apidesign.org/wiki/JDK&quot; class=&quot;mw-redirect&quot; title=&quot;JDK&quot;&gt;JDK&lt;/a&gt; 1.6 &lt;a href=&quot;http://wiki.apidesign.org/wiki/JavaC&quot; class=&quot;mw-redirect&quot; title=&quot;JavaC&quot;&gt;JavaC&lt;/a&gt; and we can use compile time &lt;a href=&quot;http://wiki.apidesign.org/wiki/AnnotationProcessor&quot; title=&quot;AnnotationProcessor&quot;&gt;annotation processors&lt;/a&gt;. As a result we can replace our &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeansLayers&quot; title=&quot;NetBeansLayers&quot;&gt;layer based registrations&lt;/a&gt; with &lt;a href=&quot;http://wiki.apidesign.org/wiki/Annotations&quot; title=&quot;Annotations&quot;&gt;annotations&lt;/a&gt; and benefit from compile type checking, code completion, from having the registrations in the same place as the code that is being registered, etc. Also we can offer our &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; users simple looking &lt;a href=&quot;http://wiki.apidesign.org/wiki/Annotations&quot; title=&quot;Annotations&quot;&gt;annotations&lt;/a&gt; and let associated &lt;a href=&quot;http://wiki.apidesign.org/wiki/AnnotationProcessor&quot; title=&quot;AnnotationProcessor&quot;&gt;annotation processors&lt;/a&gt; do more advanced and more effective processing. As a result the developers have simple &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; to deal with, while actual registration hidden behind can be as effective as possible, even at the cost of complexity, but without compromises to reliability (as the complexity is kept in the processing infrastructure, not exposed to &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; users).
&lt;/p&gt;&lt;p&gt;The other project related to &lt;a href=&quot;http://wiki.apidesign.org/wiki/Annotations&quot; title=&quot;Annotations&quot;&gt;annotations&lt;/a&gt; that we are likely to incorporate during 2009 is our extended use of &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=305&quot; class=&quot;external text&quot; title=&quot;http://jcp.org/en/jsr/detail?id=305&quot; rel=&quot;nofollow&quot;&gt;Annotations for Software Defect Detection&lt;/a&gt;. This is heavily based on the &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=305&quot; class=&quot;external text&quot; title=&quot;http://jcp.org/en/jsr/detail?id=305&quot; rel=&quot;nofollow&quot;&gt;JSR 305&lt;/a&gt;, yet until it is stable we do not want to expose such unstable API to users of our stable &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;APIs&lt;/a&gt; (more on that in &lt;a href=&quot;http://wiki.apidesign.org/wiki/Cooperating_with_Other_APIs&quot; title=&quot;Cooperating with Other APIs&quot;&gt;Chapter 10&lt;/a&gt;, in section Beware of Using Other APIs). As such we are going to create our own &lt;a href=&quot;http://wiki.apidesign.org/wiki/Annotations&quot; title=&quot;Annotations&quot;&gt;annotations&lt;/a&gt; (still recognizable by &lt;a href=&quot;http://wiki.apidesign.org/wiki/FindBugs&quot; class=&quot;mw-redirect&quot; title=&quot;FindBugs&quot;&gt;FindBugs&lt;/a&gt; and co.). The hope is that our annotation will stay compatible even if the underlaying &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=305&quot; class=&quot;external text&quot; title=&quot;http://jcp.org/en/jsr/detail?id=305&quot; rel=&quot;nofollow&quot;&gt;JSR 305&lt;/a&gt; slightly changes. Please find our &lt;a href=&quot;http://www.netbeans.org/nonav/issues/showattachment.cgi/73321/annotations_tmp.patch&quot; class=&quot;external text&quot; title=&quot;http://www.netbeans.org/nonav/issues/showattachment.cgi/73321/annotations_tmp.patch&quot; rel=&quot;nofollow&quot;&gt;current patch&lt;/a&gt; and comment here or in the &lt;a href=&quot;http://www.netbeans.org/issues/show_bug.cgi?id=137437&quot; class=&quot;external text&quot; title=&quot;http://www.netbeans.org/issues/show_bug.cgi?id=137437&quot; rel=&quot;nofollow&quot;&gt;issue 137437&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;Last project that deals with annotations is developed by our editor hints guru Jan Lahoda - its aim is to &lt;i&gt;bring complex refactoring to masses&lt;/i&gt;! How? Why? We have observed that using &lt;b&gt;@Deprecated&lt;/b&gt; annotation is good hint to help your API users recognize that some part of your &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; is obsolete and shall no longer be used, however that in no way helps users of your &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; with converting their code to new, non-deprecated style. We have a solution: Use &lt;a href=&quot;https://lang.dev.java.net/&quot; class=&quot;external text&quot; title=&quot;https://lang.dev.java.net/&quot; rel=&quot;nofollow&quot;&gt;Code Transformation Annotations&lt;/a&gt;! Dear [API] writers, let's adopt these annotations and use them in your &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt;! They are completely standalone (&lt;a href=&quot;http://hudson.apidesign.org/job/net.java.lang/javadoc/&quot; class=&quot;external text&quot; title=&quot;http://hudson.apidesign.org/job/net.java.lang/javadoc/&quot; rel=&quot;nofollow&quot;&gt;read more&lt;/a&gt;), lightweight and we are ready to incorporate feedback of everyone interested in the project. Indeed, my plan is to bring these &lt;i&gt;easy to use and flexible refactorings&lt;/i&gt; to &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; soon, hopefully for &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009&quot; title=&quot;TheYearOfAnnotations2009&quot;&gt;version 7.0&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;So these are my three &lt;i&gt;annotation related&lt;/i&gt; projects. I find them quite exciting and I cannot wait to see them being used. &lt;a href=&quot;http://wiki.apidesign.org/wiki/Annotations&quot; title=&quot;Annotations&quot;&gt;Annotations&lt;/a&gt; are here to simplify life of &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;API&lt;/a&gt; users and developers. As soon as we have them, we will have full right to call the year 2009 the &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009&quot; title=&quot;TheYearOfAnnotations2009&quot;&gt;year of annotations&lt;/a&gt;!
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;div id=&quot;commentForm&quot;&gt;&lt;form method=&quot;post&quot; action=&quot;/index.php?title=Special:ProcessComment&quot;&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleKey&quot; name=&quot;titleKey&quot; value=&quot;Blogs&quot; /&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleNS&quot; name=&quot;titleNS&quot; value=&quot;0&quot; /&gt;&lt;p&gt;Name (required): &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterName&quot; name=&quot;commenterName&quot; /&gt;&lt;/p&gt;&lt;p&gt;Website: &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterURL&quot; name=&quot;commenterURL&quot; value=&quot;http://&quot; /&gt;&lt;/p&gt;&lt;p&gt;Comment: &lt;br /&gt;&lt;textarea id=&quot;comment&quot; name=&quot;comment&quot; style=&quot;width:30em&quot; rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;&lt;input id=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/p&gt;&lt;/form&gt;&lt;/div&gt;&lt;script type='text/javascript'&gt;//&lt;![CDATA[
(function(){
var prefillUserName = function(){
var ptu=document.getElementById(&quot;pt-userpage&quot;);
if (ptu) document.getElementById(&quot;commenterName&quot;).value=ptu.getElementsByTagName(&quot;a&quot;)[0].innerHTML;};
if (window.addEventListener) window.addEventListener(&quot;load&quot;,prefillUserName,false);
else if (window.attachEvent) window.attachEvent(&quot;onload&quot;,prefillUserName);
var cf=document.getElementById(&quot;commentForm&quot;);
cf.style.display=&quot;none&quot;;
var p=document.createElement(&quot;p&quot;);
p.innerHTML=&quot;&lt;a href='javascript:void(0)' onclick='document.getElementById(\&quot;commentForm\&quot;).style.display=\&quot;block\&quot;;this.style.display=\&quot;none\&quot;;false'&gt;Leave a comment ...&lt;/a&gt;&quot;;
cf.parentNode.insertBefore(p,cf);
})();
//]]&gt;&lt;/script&gt;
&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 09:06, 12 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 12 Dec 2008 09:06:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Declarative Registrations </title>
			<link>http://wiki.apidesign.org/wiki/Declarative_Programming#Less_is_Better</link>
			<description>
&lt;p&gt;I see the year 2009 as &lt;a href=&quot;http://wiki.apidesign.org/wiki/Declarative_Programming#Less_is_Better&quot; title=&quot;Declarative Programming&quot;&gt;the year of annotations&lt;/a&gt;. At least for the &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; project - we are about to use them much more frequently than we did so far. That is why I cannot stop thinking about various ways of using &lt;a href=&quot;http://wiki.apidesign.org/wiki/Declarative_Programming&quot; title=&quot;Declarative Programming&quot;&gt;Declarative Programming&lt;/a&gt;. As a result, there will be more blog posts about such programming style. Here is one: my little explanation why &lt;a href=&quot;http://wiki.apidesign.org/wiki/Declarative_Programming#Less_is_Better&quot; title=&quot;Declarative Programming&quot;&gt;less is better&lt;/a&gt; when using the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Declarative_Programming&quot; title=&quot;Declarative Programming&quot;&gt;Declarative Programming&lt;/a&gt; registrations.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 14:43, 5 December 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 05 Dec 2008 14:43:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> 3 Sides to Every API </title>
			<link>http://wiki.apidesign.org/wiki/3SidesToEveryAPI</link>
			<description>
&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/3SidesToEveryAPI&quot; title=&quot;3SidesToEveryAPI&quot;&gt;3 Sides to Every API&lt;/a&gt; is my reaction to excellent &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:PetrHejl:BeautyMatters&quot; title=&quot;Blogs:PetrHejl:BeautyMatters&quot;&gt;Beauty matters&lt;/a&gt; summary provided &lt;a href=&quot;http://wiki.apidesign.org/wiki/User:PetrHejl&quot; title=&quot;User:PetrHejl&quot;&gt;PetrHejl&lt;/a&gt;. It is my attempt to agree with him, while defending &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;'s often proposition that &lt;i&gt;beauty does not matter&lt;/i&gt;...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 21:37, 24 November 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 24 Nov 2008 21:37:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Builder vs. Cumulative Factory </title>
			<link>http://wiki.apidesign.org/wiki/Builder</link>
			<description>
&lt;p&gt;Is &lt;a href=&quot;http://wiki.apidesign.org/wiki/Builder&quot; title=&quot;Builder&quot;&gt;Builder&lt;/a&gt; better &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns&quot;&gt;pattern&lt;/a&gt; than &lt;a href=&quot;http://wiki.apidesign.org/wiki/CumulativeFactory&quot; title=&quot;CumulativeFactory&quot;&gt;CumulativeFactory&lt;/a&gt;? As Radim and Paulo &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:CumulativeFactory&quot; title=&quot;Talk:CumulativeFactory&quot;&gt;pointed out&lt;/a&gt;, it might be. However from &lt;a href=&quot;http://wiki.apidesign.org/wiki/Builder&quot; title=&quot;Builder&quot;&gt;my point of view&lt;/a&gt;, it is an extension to &lt;a href=&quot;http://wiki.apidesign.org/wiki/CumulativeFactory&quot; title=&quot;CumulativeFactory&quot;&gt;the previous one&lt;/a&gt;! Read more and &lt;a href=&quot;http://wiki.apidesign.org/wiki/Builder&quot; title=&quot;Builder&quot;&gt;help us decide&lt;/a&gt;...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 13:02, 15 November 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sat, 15 Nov 2008 13:02:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Beauty Matters </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:PetrHejl:BeautyMatters</link>
			<description>
&lt;p&gt;J. Tulach in his Practical API Design book claims that beauty is not the most important requirement when you design your API. Because he is repeating this multiple times at various places I got the bad feeling that this could be easily misunderstood. &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:PetrHejl:BeautyMatters&quot; title=&quot;Blogs:PetrHejl:BeautyMatters&quot;&gt;Let me clarify...&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:PetrHejl&quot; title=&quot;User:PetrHejl&quot;&gt;PetrHejl&lt;/a&gt; 14:38, 11 November 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 11 Nov 2008 14:38:00 GMT</pubDate>			<dc:creator>PetrHejl</dc:creator>					</item>
		<item>
			<title> Cumulative Factory API Design Pattern </title>
			<link>http://wiki.apidesign.org/wiki/APIDesignPatterns:CumulativeFactory</link>
			<description>
&lt;p&gt;Dear API writers, let me introduce you to &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:CumulativeFactory&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns:CumulativeFactory&quot;&gt;cumulative factory&lt;/a&gt; &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns&quot;&gt;API Design Pattern&lt;/a&gt;. Read &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:CumulativeFactory&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns:CumulativeFactory&quot;&gt;more&lt;/a&gt;...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 15:38, 9 November 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 09 Nov 2008 15:38:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> What Makes a Technology good? </title>
			<link>http://wiki.apidesign.org/wiki/Good_Technology</link>
			<description>
&lt;p&gt;Dear API users, can you help me define term &lt;a href=&quot;http://wiki.apidesign.org/wiki/Good_Technology&quot; title=&quot;Good Technology&quot;&gt;Good Technology&lt;/a&gt;? What makes a &lt;a href=&quot;http://wiki.apidesign.org/wiki/Technology&quot; class=&quot;mw-redirect&quot; title=&quot;Technology&quot;&gt;technology&lt;/a&gt; good, useful? How do you evaluate quality of the &lt;a href=&quot;http://wiki.apidesign.org/wiki/API&quot; class=&quot;mw-redirect&quot; title=&quot;API&quot;&gt;APIs&lt;/a&gt; you use? I've just written &lt;a href=&quot;http://wiki.apidesign.org/wiki/Good_Technology&quot; title=&quot;Good Technology&quot;&gt;few thoughts about this topic&lt;/a&gt; down, however I'll be glad to hear your opinion. Is &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; platform &lt;a href=&quot;http://wiki.apidesign.org/wiki/Good_Technology&quot; title=&quot;Good Technology&quot;&gt;Good Technology&lt;/a&gt; or bad?
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 18:26, 3 November 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 03 Nov 2008 18:26:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> See APIFest08 winners photos! </title>
			<link>http://honza.smugmug.com/gallery/6413638_sHjLk</link>
			<description>
&lt;p&gt;See the winners and sponsors of the game on the &lt;a href=&quot;http://honza.smugmug.com/gallery/6413638_sHjLk&quot; class=&quot;external text&quot; title=&quot;http://honza.smugmug.com/gallery/6413638_sHjLk&quot; rel=&quot;nofollow&quot;&gt;pictures taken by Jan Chalupa&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 16:10, 31 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 31 Oct 2008 16:10:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> NetBeans 6.5 Performance Press Release </title>
			<link>http://wiki.netbeans.org/Fitness65PressRelease</link>
			<description>
&lt;p&gt;How can one announce to the world that something important happened? Via &lt;a href=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; class=&quot;external text&quot; title=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; rel=&quot;nofollow&quot;&gt;Press Release&lt;/a&gt;, of course! However, one question stays: who can write good press release? Engineers are generally seen as incapable of doing so, however as argued in Chapter 14, &lt;a href=&quot;http://wiki.apidesign.org/wiki/Paradoxes_of_API_Design&quot; title=&quot;Paradoxes of API Design&quot;&gt;Paradoxes of API Design&lt;/a&gt;, there is a way to help them: Force them to write  &lt;a href=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; class=&quot;external text&quot; title=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; rel=&quot;nofollow&quot;&gt;documentation or press release&lt;/a&gt; before they start to code!
&lt;/p&gt;&lt;p&gt;This is the &lt;a href=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; class=&quot;external text&quot; title=&quot;http://wiki.netbeans.org/Fitness65PressRelease&quot; rel=&quot;nofollow&quot;&gt;Press Release&lt;/a&gt; of the [NetBeans] performance team written six months ago. Now, when the release of [NetBeans] IDE 6.5 is near, it is time to publish it. Feel free to read what we &lt;a href=&quot;http://wiki.netbeans.org/Fitness65PressRelease?version=4&quot; class=&quot;external text&quot; title=&quot;http://wiki.netbeans.org/Fitness65PressRelease?version=4&quot; rel=&quot;nofollow&quot;&gt;planed&lt;/a&gt; and what we &lt;a href=&quot;http://wiki.netbeans.org/Fitness65PressRelease?version=15&quot; class=&quot;external text&quot; title=&quot;http://wiki.netbeans.org/Fitness65PressRelease?version=15&quot; rel=&quot;nofollow&quot;&gt;delivered&lt;/a&gt;!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 14:47, 30 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Thu, 30 Oct 2008 14:47:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Petr Šmíd's Thanks </title>
			<link>http://wiki.apidesign.org/wiki/Blogs#Petr_.C5.A0m.C3.ADd.27s_Thanks</link>
			<description>
&lt;p&gt;I would like to &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs#Petr_.C5.A0m.C3.ADd.27s_Thanks&quot; title=&quot;Blogs&quot;&gt;thank you&lt;/a&gt; very much for organizing the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;competition&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;Unlike all other programming competitions which are focused on creating algorithms this one is unique, because it focuses on another type of problems which more reflects real challenges that programmers deals with.
&lt;/p&gt;&lt;p&gt;I can personally say that I learned many lessons about API design and I think this is the case of everyone who joined this event. 
&lt;/p&gt;&lt;p&gt;That's why I can suggest everybody to join this event next time. It was well prepared and the idea of the competition is really great. 
&lt;/p&gt;&lt;p&gt;So thank You Jaroslav and all guys which are behind the event!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/index.php?title=User:Petr.smid&amp;amp;action=edit&quot; class=&quot;new&quot; title=&quot;User:Petr.smid&quot;&gt;Petr.smid&lt;/a&gt; 13:00, 29 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Wed, 29 Oct 2008 13:00:00 GMT</pubDate>			<dc:creator>Petr.smid</dc:creator>					</item>
		<item>
			<title> Jan Žák and Petr Šmíd are winners of APIFest08 </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Report</link>
			<description>
&lt;p&gt;It is time to announce &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Report&quot; title=&quot;APIFest08:Report&quot;&gt;results of APIFest'08&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 11:44, 26 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 26 Oct 2008 11:44:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> The Most Insightful Review of &quot;Practical API Design&quot; </title>
			<link>http://lambda-the-ultimate.org/node/3067</link>
			<description>
&lt;p&gt;The longest, most detailed and insightful review I have seen so far has been written by &lt;a href=&quot;http://lambda-the-ultimate.org/node/3067&quot; class=&quot;external text&quot; title=&quot;http://lambda-the-ultimate.org/node/3067&quot; rel=&quot;nofollow&quot;&gt;Tim Band&lt;/a&gt; for Lambda The Ultimate.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 11:27, 24 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 24 Oct 2008 11:27:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> How Many People Have to Die leakages </title>
			<link>http://wiki.apidesign.org/wiki/LeakingCulturalContext</link>
			<description>
&lt;p&gt;Recently I've been &lt;a href=&quot;http://wiki.apidesign.org/wiki/LeakingCulturalContext&quot; title=&quot;LeakingCulturalContext&quot;&gt;warned&lt;/a&gt; that my sidebar in &lt;a href=&quot;http://wiki.apidesign.org/wiki/Ever_Changing_Targets&quot; title=&quot;Ever Changing Targets&quot;&gt;Chapter 4&lt;/a&gt;, Ever Changing Targets talks about events that are completely ununderstandable for international readers. That made me write a short essay about &lt;a href=&quot;http://wiki.apidesign.org/wiki/LeakingCulturalContext&quot; title=&quot;LeakingCulturalContext&quot;&gt;leakages of cultural contexts&lt;/a&gt; and the similarities with the &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;API Design&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 05:01, 21 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 21 Oct 2008 05:01:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> APIFest08 Judgment Day/Week Starts! </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:TaskX</link>
			<description>
&lt;p&gt;The &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:TaskX&quot; title=&quot;APIFest08:TaskX&quot;&gt;judgment day&lt;/a&gt; is here! Dear &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; participants, during the last rounds, you were concentrated on making your own solution perfect. However since today you will have to stop looking just at your own solution, you will need to start digging in solutions provided by others to find possible &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;evolution&lt;/a&gt; mistakes. This is a new task, different to what you have done so far, but I hope you'll make it. Because only if you find mistakes in solutions provided by others you will be allowed to win &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;If your own solution is found &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;backward compatible&lt;/a&gt; and it successfully passed the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task4&quot; title=&quot;APIFest08:Task4&quot;&gt;4th round&lt;/a&gt;, you'll be awarded with &lt;b&gt;10 points&lt;/b&gt;. By default you all have those points. However you can be awarded with &lt;b&gt;1 point&lt;/b&gt; by showing &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;compatibility&lt;/a&gt; problems in each solution provided by someone else, who advanced to &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task4&quot; title=&quot;APIFest08:Task4&quot;&gt;4th round&lt;/a&gt;. Of course, in case somebody finds such problem, the author of the solution &lt;b&gt;looses own 10 points&lt;/b&gt;. As I wrote in the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task4&quot; title=&quot;APIFest08:Task4&quot;&gt;last post&lt;/a&gt;, I know that at least five solutions have some problems, so do not give up and seek for them! Your points are waiting! Also please note that the fact that I may know about a problem of your solutions does not mean other participants are going to find it. Don't give up and good luck!
&lt;/p&gt;&lt;p&gt;First of all you need to setup your working environment:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# create the repository&lt;/span&gt;
hg clone http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;source&lt;/span&gt;.apidesign.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# or update it&lt;/span&gt;
hg pull; hg update
&lt;span class=&quot;co0&quot;&gt;# create directory named by you Joe Hacker would have:&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jhacker&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;and now your hunt can start. Repeat following tasks as many times you wish. First of all somehow select the solution you want to find problem in. Usually I use a diff:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;diff&lt;/span&gt; -ru task2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;solution03 task3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;solution03&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Each difference is potential candidate for compatibility problem. It is just necessary to write code against the old API that does something different in the new version. If I notice some potential evolution problem, then I setup the &lt;b&gt;against&lt;/b&gt; project and write a test into it to show the error:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# select the solution you want to break, let supposed it is #3:&lt;/span&gt;
hg copy taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jtulach&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;against-solutionXY&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jhacker&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;against-solution03
&lt;span class=&quot;co0&quot;&gt;# now open some of the created files in your favorite editor:&lt;/span&gt;
netbeans --open taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jhacker&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;against-solution03&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;project.properties&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now adjust the content of the properties file:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-ini&quot;&gt;# change definition of apitotest property to solution03:
&lt;span class=&quot;re1&quot;&gt;apitotest&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;solution03&lt;/span&gt;
# you can also adjust the taskA and taskB variables to 
# reflect the days that you want to compete against
# for example if there is compatibility problem between
# task2 and task3, change them to:
&lt;span class=&quot;re1&quot;&gt;taskA&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;apifest&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;/task2&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;taskB&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;apifest&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;/task3&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now you can open the project in the NetBeans IDE
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;netbeans --open taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jhacker&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;against-solution03&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or directly edit its &lt;i&gt;jhacker/against-solution03/test/apifest/CurrencyTest.java&lt;/i&gt; file. The goal is to make this file compilable against api available in the version &lt;i&gt;taskA&lt;/i&gt;. If you execute the project:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;ant -f taskx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;jhacker&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;against-solution03&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.xml run&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or by pressing F6 in the &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; IDE, your test is compiled, executed against &lt;i&gt;taskA&lt;/i&gt; and it has to succeed. If it does, the test is executed against &lt;i&gt;taskB&lt;/i&gt; library. If it fails, you have demonstrated &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;BackwardCompatibility&lt;/a&gt; problem and that is why the build succeeds. &lt;b&gt;Make sure you open the Output Window&lt;/b&gt; to see the real resul! There is also the &lt;b&gt;JUnit Result Window&lt;/b&gt; and it is not really helpful in the &lt;b&gt;against&lt;/b&gt; project, but I do not know how to suppress its appearance. If the test succeeds with &lt;i&gt;taskB&lt;/i&gt; library, the sources of your test are compiled once again against &lt;i&gt;taskB&lt;/i&gt; library. This can fail, if there are source incompatibilities. Failure means your success, as you have demonstrated an incompatibility! To see result of these steps in action, look at my &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/e8b0f13fd4fb&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/e8b0f13fd4fb&quot; rel=&quot;nofollow&quot;&gt;attack against solution02&lt;/a&gt;  (I can show it as it did not advanced into this &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:TaskX&quot; title=&quot;APIFest08:TaskX&quot;&gt;final task&lt;/a&gt; and you cannot be awarded with points by finding problems in it). If you managed to attack one solution, perfect, you can repeat these steps for another one.
&lt;/p&gt;&lt;p&gt;The rules for writing compatibility tests are similar to &lt;a href=&quot;http://openide.netbeans.org/tutorial/api-fest.html&quot; class=&quot;external text&quot; title=&quot;http://openide.netbeans.org/tutorial/api-fest.html&quot; rel=&quot;nofollow&quot;&gt;API Fest One&lt;/a&gt; - e.g. the less &lt;b&gt;tricks&lt;/b&gt; you use the better. Where trick means more or less Java Permission. Do not try to use reflection that could obviously break each solution. Also do not use wildcard imports in source, that can easily break each solution as well. Do not put the code into the API package, that would allow you to use package private methods and would be unfair. Rules are simple: &lt;i&gt;less tricks is better&lt;/i&gt; and &lt;i&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;I&lt;/a&gt; am the judge&lt;/i&gt;. Enjoy!
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
After you are done, please generate the diff using &lt;i&gt;hg diff&lt;/i&gt; and submit your solutions by Sun, Oct 26, 2008, morning of CET to &lt;a href=&quot;mailto:apifest08@apidesign.org&quot; class=&quot;external text&quot; title=&quot;mailto:apifest08@apidesign.org&quot; rel=&quot;nofollow&quot;&gt;our mailing list&lt;/a&gt;. Possibly you can ZIP your sources and send them to us too. As soon as we process your submissions, I'll write an &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; report and announce winners. Also I will prepare &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; for the winner.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 06:03, 18 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sat, 18 Oct 2008 06:03:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> The Better Compiler the Worse API!? </title>
			<link>http://wiki.apidesign.org/wiki/APITypes:CompilerOptimizations</link>
			<description>
&lt;p&gt;Today I am ready to announce a really &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes:CompilerOptimizations&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes:CompilerOptimizations&quot;&gt;nice addition&lt;/a&gt; to the collection of weird examples of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes&quot;&gt;APITypes&lt;/a&gt;. Did you ever suffered with &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes:CompilerOptimizations&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes:CompilerOptimizations&quot;&gt;compiler optimizations&lt;/a&gt;? Did you ever thought about them as being an example of an &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes&quot;&gt;API&lt;/a&gt;?
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 18:57, 16 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Thu, 16 Oct 2008 18:57:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> APIFest08 Task 4 Necessary to Choose the Best API Designer </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Task4</link>
			<description>
&lt;p&gt;It is unbelievable! We are approaching 
&lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task4&quot; title=&quot;APIFest08:Task4&quot;&gt;task4&lt;/a&gt; of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; and we still have eight participants who play with us! Moreover the competition is still not decided, as far as I can tell. Today I spent few hours looking for &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;BackwardCompatibility&lt;/a&gt; problems in provided solutions and I still have not managed to break three of them! It is not that surprising as some of the competitors follow advices of &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;. For example I've seen &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns:ResponseReply&quot;&gt;APIDesignPatterns:ResponseReply&lt;/a&gt; being used. Guys, how can I find a quest for you if you know all the good tricks? Anyway this means we have to go on, as I have only two books to give to winners!
&lt;/p&gt;&lt;p&gt;That is why let me ask call &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task4&quot; title=&quot;APIFest08:Task4&quot;&gt;round4&lt;/a&gt;: Please integrate with dates. Keep history of conversions, allow queries in historical data, etc. Please see &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/a92eff6b426f&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/a92eff6b426f&quot; rel=&quot;nofollow&quot;&gt;Task4Test.java&lt;/a&gt; with the actual quests.
&lt;/p&gt;&lt;p&gt;Locate your solution among existing &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/file/tip/task4/&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/file/tip/task4/&quot; rel=&quot;nofollow&quot;&gt;task4&lt;/a&gt; directory. There shall already be  &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/a92eff6b426f&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/a92eff6b426f&quot; rel=&quot;nofollow&quot;&gt;Task4Test.java&lt;/a&gt; file along your &lt;b&gt;Task1Test.java&lt;/b&gt;, &lt;b&gt;Task2Test.java&lt;/b&gt; and &lt;b&gt;Task3Test.java&lt;/b&gt;. Enhance your API, show its usage in the &lt;b&gt;Task4Test.java&lt;/b&gt;. Remove the conditional if failing statements.
&lt;/p&gt;&lt;p&gt;After you are done, please generate a diff. The best way is to use &lt;a href=&quot;http://wiki.apidesign.org/wiki/Mercurial&quot; class=&quot;mw-redirect&quot; title=&quot;Mercurial&quot;&gt;Mercurial&lt;/a&gt;:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# create the repository&lt;/span&gt;
hg clone http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;source&lt;/span&gt;.apidesign.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# or update it&lt;/span&gt;
hg pull; hg update
&lt;span class=&quot;co0&quot;&gt;# then do your modifications&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ...&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# do not forget to add newly created files&lt;/span&gt;
hg add task4&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;solutionXY
&lt;span class=&quot;co0&quot;&gt;# and finally produce a diff&lt;/span&gt;
hg &lt;span class=&quot;kw2&quot;&gt;diff&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;you can obtain the diff in other ways, potentially you can send us to &lt;a href=&quot;mailto:apifest08@apidesign.org&quot; class=&quot;external text&quot; title=&quot;mailto:apifest08@apidesign.org&quot; rel=&quot;nofollow&quot;&gt;our mailing list&lt;/a&gt; the whole ZIP file, but diffs are preferred.
&lt;/p&gt;&lt;p&gt;Please submit your solutions by &lt;b&gt;Thu, Oct 16, 2008, morning of CET&lt;/b&gt;. I guess this is the last coding round. On Saturday you will start hacking solutions provided by others!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 22:17, 11 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sat, 11 Oct 2008 22:17:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Define &quot;Friday Morning&quot; </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Task3</link>
			<description>
&lt;p&gt;When I was defining the quest of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task3&quot; title=&quot;APIFest08:Task3&quot;&gt;APIFest08:Task3&lt;/a&gt; I needed to set a deadline. However as the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; is not competition for millions of bucks, just for &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;, I did not feel I need to be exact enough and I defined the deadline as &lt;i&gt;Fri, Oct 10, 2008, morning of CET&lt;/i&gt;. This is the reaction that I got from one of the participants:
&lt;/p&gt;
&lt;pre&gt;I really like the precision you use in specifying the deadlines!
I will choose to interpret &quot;Fri, Oct 10, 2008, morning of CET&quot; as 
the time when  the first ray of the rising sun can be seen from 
the train I'll be taking to commute to Prague unless the window 
is too dirty, is that o.k.?&amp;nbsp;:-)
&lt;/pre&gt;
&lt;p&gt;Cute and OK. Of course only under the assumption that you do your best to clean or at least open your window in case it is too dirty and that you are not referring to a window of an underground train.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 07:53, 8 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Wed, 08 Oct 2008 07:53:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> APIFest08 task3 is here </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Task3</link>
			<description>
&lt;p&gt;The &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task3&quot; title=&quot;APIFest08:Task3&quot;&gt;task3&lt;/a&gt; of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; is here to tease you more, dear participants. Btw. great work on the previous tasks! It is really hard for me to come up with a task that will be &lt;i&gt;unimplementable&lt;/i&gt; for you. I guess you all defend &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;BackwardCompatibility&lt;/a&gt; of your solutions pretty well.
&lt;/p&gt;&lt;p&gt;Let see what will happen during the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task3&quot; title=&quot;APIFest08:Task3&quot;&gt;round3&lt;/a&gt;. I have prepared the &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; rel=&quot;nofollow&quot;&gt;Task3Test.java&lt;/a&gt; for you. Please enhance your API to allow your API users to write &lt;i&gt;online convertor&lt;/i&gt; that updates its exchange rates all the time. Please find the details of your quest inside of the &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; rel=&quot;nofollow&quot;&gt;Task3Test.java&lt;/a&gt; file.
&lt;/p&gt;&lt;p&gt;Locate your solution among existing &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/file/tip/task3/&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/file/tip/task3/&quot; rel=&quot;nofollow&quot;&gt;task3&lt;/a&gt; directory. There shall already be  &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/ba28def25913&quot; rel=&quot;nofollow&quot;&gt;Task3Test.java&lt;/a&gt; file along your &lt;b&gt;Task1Test.java&lt;/b&gt; and &lt;b&gt;Task2Test.java&lt;/b&gt;. Enhance your API, show its usage in the &lt;b&gt;Task3Test.java&lt;/b&gt;.
&lt;/p&gt;&lt;p&gt;After you are done, please generate a diff. The best way is to use &lt;a href=&quot;http://wiki.apidesign.org/wiki/Mercurial&quot; class=&quot;mw-redirect&quot; title=&quot;Mercurial&quot;&gt;Mercurial&lt;/a&gt;:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# create the repository&lt;/span&gt;
hg clone http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;source&lt;/span&gt;.apidesign.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# or update it&lt;/span&gt;
hg pull; hg update
&lt;span class=&quot;co0&quot;&gt;# then do your modifications&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ...&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# do not forget to add newly created files&lt;/span&gt;
hg add task3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;solutionXY
&lt;span class=&quot;co0&quot;&gt;# and finally produce a diff&lt;/span&gt;
hg &lt;span class=&quot;kw2&quot;&gt;diff&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;you can obtain the diff in other ways, potentially you can send us to &lt;a href=&quot;mailto:apifest08@apidesign.org&quot; class=&quot;external text&quot; title=&quot;mailto:apifest08@apidesign.org&quot; rel=&quot;nofollow&quot;&gt;our mailing list&lt;/a&gt; the whole ZIP file, but diffs are preferred.
&lt;/p&gt;&lt;p&gt;Please submit your solutions by &lt;b&gt;Fri, Oct 10, 2008, morning of CET&lt;/b&gt;, so we can process your submission before weekend and think about more sophisticated ways to tease you. Good luck!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 09:27, 7 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 07 Oct 2008 09:27:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> New Code for Food Picture </title>
			<link>http://wiki.apidesign.org/wiki/HtmlForFood</link>
			<description>
&lt;p&gt;The spirit of &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;HtmlForFood&lt;/a&gt; story lives on! &lt;a href=&quot;http://wiki.apidesign.org/wiki/GeertjanWielenga&quot; title=&quot;GeertjanWielenga&quot;&gt;Geertjan&lt;/a&gt; did a &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; platform training recently and it seems he learned new skills, which include ability to debug and generate code:
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/Image:Apisupportforfood.jpg&quot; class=&quot;image&quot; title=&quot;Image:Apisupportforfood.jpg&quot;&gt;&lt;img alt=&quot;Image:Apisupportforfood.jpg&quot; src=&quot;http://wiki.apidesign.org/images/6/65/Apisupportforfood.jpg&quot; width=&quot;615&quot; height=&quot;900&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 14:58, 6 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 06 Oct 2008 14:58:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> APIFest08 task2 is here </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Task2</link>
			<description>
&lt;p&gt;The &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task2&quot; title=&quot;APIFest08:Task2&quot;&gt;task2&lt;/a&gt; of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; is here. We have fourteen solutions that advanced to second round. Some of them did use their chance to get up to speed in &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task1.5&quot; title=&quot;APIFest08:Task1.5&quot;&gt;APIFest08:Task1.5&lt;/a&gt;, some of them did not. The latter ones will be in tougher position, as the &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task2&quot; title=&quot;APIFest08:Task2&quot;&gt;second round&lt;/a&gt; is just about to start.
&lt;/p&gt;&lt;p&gt;You task #2 is to allow one convertor to hold &lt;i&gt;multiple&lt;/i&gt; rates of multiple currencies. Also, create an API to allow &lt;i&gt;composition of convertors&lt;/i&gt;. Here is the &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/2198184978d5&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/2198184978d5&quot; rel=&quot;nofollow&quot;&gt;Task2Test.java&lt;/a&gt; file with detailed description of the quest. Locate your solution among existing &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/file/2198184978d5/task2/&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/file/2198184978d5/task2/&quot; rel=&quot;nofollow&quot;&gt;task2&lt;/a&gt; directory, copy the &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/2198184978d5&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/2198184978d5&quot; rel=&quot;nofollow&quot;&gt;Task2Test.java&lt;/a&gt; file along your &lt;b&gt;Task1Test.java&lt;/b&gt;. Enhance your API, show its usage in the &lt;b&gt;Task2Test.java&lt;/b&gt;.
&lt;/p&gt;&lt;p&gt;After you are done, please generate a diff. The best way is to use &lt;a href=&quot;http://wiki.apidesign.org/wiki/Mercurial&quot; class=&quot;mw-redirect&quot; title=&quot;Mercurial&quot;&gt;Mercurial&lt;/a&gt;:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# create the repository&lt;/span&gt;
hg clone http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;source&lt;/span&gt;.apidesign.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# or update it&lt;/span&gt;
hg pull; hg update
&lt;span class=&quot;co0&quot;&gt;# copy the task 2 file&lt;/span&gt;
hg copy currency&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apidesign&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Task2Test.java task2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;solutionXY&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apidesign&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apifest08&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Task2Test.java
&lt;span class=&quot;co0&quot;&gt;# then do your modifications&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ...&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# and finally produce a diff&lt;/span&gt;
hg &lt;span class=&quot;kw2&quot;&gt;diff&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;you can obtain the diff in other ways, potentially you can send us to &lt;a href=&quot;mailto:apifest08@apidesign.org&quot; class=&quot;external text&quot; title=&quot;mailto:apifest08@apidesign.org&quot; rel=&quot;nofollow&quot;&gt;our mailing list&lt;/a&gt; the whole ZIP file, but we want to have the right to process diffs first, as that is simpler for us.
&lt;/p&gt;&lt;p&gt;Please submit your solutions by Sat, Oct 4, 2008. Good luck, and do not forget to keep &lt;a href=&quot;http://wiki.apidesign.org/wiki/BackwardCompatibility&quot; title=&quot;BackwardCompatibility&quot;&gt;BackwardCompatibility&lt;/a&gt;!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 11:50, 1 October 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Wed, 01 Oct 2008 11:50:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> More on Ruby, Gems and Modularity </title>
			<link>http://wiki.apidesign.org/wiki/Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution#Modularity</link>
			<description>
&lt;p&gt;The &lt;i&gt;Ruby&lt;/i&gt; anonymous coward which brought duck-typing into attention of readers of this blog, added new comments to our &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution#Modularity&quot; title=&quot;Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot;&gt;discussion&lt;/a&gt;. The note presents Gems and I have to admit that by having Gems as standard packaging and dependency management tool, the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Ruby&quot; class=&quot;mw-redirect&quot; title=&quot;Ruby&quot;&gt;Ruby&lt;/a&gt; gets far ahead standard offerings of &lt;a href=&quot;http://wiki.apidesign.org/wiki/Java&quot; class=&quot;mw-redirect&quot; title=&quot;Java&quot;&gt;Java&lt;/a&gt;. Of course unless you decide to use &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; runtime container or similar...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 09:32, 30 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 30 Sep 2008 09:32:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> APIFest08's task one and half </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08:Task1.5</link>
			<description>
&lt;p&gt;Thanks you all, dear twelve brave men for &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08:Task1.5&quot; title=&quot;APIFest08:Task1.5&quot;&gt;participating&lt;/a&gt; in &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt;! I was really glad to see your submissions after the task 1. I really like the variety between your individual solutions. 
&lt;/p&gt;&lt;p&gt;However, I also have to apologize. I did try, to correctly specify the task 1 goals, however, looking at some of your solutions, I failed. Some of your APIs do not satisfy all the use cases that I had in my mind. That is my fault, I should have expressed myself clearly. Anyway it puts us into bad situation. Now you are not at the same starting position for the real &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt; game. That is why I have to, like a starter seeing a problem before 100m run, call off the &lt;i&gt;ready&lt;/i&gt; state, and ask you to prepare once more. That is why I am calling round &lt;i&gt;one and half&lt;/i&gt;. Please adjust your your solution according to additional tasks, described in &lt;a href=&quot;http://source.apidesign.org/hg/apifest08/rev/1ca35892ef26&quot; class=&quot;external text&quot; title=&quot;http://source.apidesign.org/hg/apifest08/rev/1ca35892ef26&quot; rel=&quot;nofollow&quot;&gt;Task1Test.java&lt;/a&gt;. There is proper description of the behaviour of the factory methods and two more tests. Please implement this in your solutions.
&lt;/p&gt;&lt;p&gt;Please do it by Tue, Sep 30, 2008, noon. You do not need to retain any backward compatibility yet, however restrain yourself from doing too big changes to your APIs, they are all good, just satisfy the additional use cases, please.
&lt;/p&gt;&lt;p&gt;Please accept my apology, and good luck!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 18:24, 28 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 28 Sep 2008 18:24:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Are APIs like diamonds or like stars? </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:DiamondsVsStars</link>
			<description>
&lt;p&gt;Is it uncommon that the same invention is discovered multiple times? Multiple times by different people? At the same time? It is indeed surprising to see something like that, however if you look back at the history of science, it is not that &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:DiamondsVsStars&quot; title=&quot;Blogs:JaroslavTulach:Theory:DiamondsVsStars&quot;&gt;uncommon&lt;/a&gt;. I know that &lt;a href=&quot;http://en.wikipedia.org/wiki/Lightning_rod&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Lightning_rod&quot;&gt;lightning rod&lt;/a&gt; has been independently invented by at least two people in the middle of 18th century. What was so special then that allowed such independent break-through?
&lt;/p&gt;&lt;p&gt;For a centuries great mathematicians were troubled by &lt;a href=&quot;http://en.wikipedia.org/wiki/Euclid&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Euclid&quot;&gt;Euclid&lt;/a&gt;'s &lt;a href=&quot;http://en.wikipedia.org/wiki/Parallel_postulate&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Parallel_postulate&quot;&gt;fifth postulate&lt;/a&gt;. It felt somewhat unnatural compared to the first four, the general expectation was that it is not necessary and it can be derived from the four others. Many tried, yet nobody succeeded. However, at the begging of 19th century things changed. Independently  &lt;a href=&quot;http://en.wikipedia.org/wiki/J%C3%A1nos_Bolyai&quot; class=&quot;extiw&quot; title=&quot;wikipedia:János_Bolyai&quot;&gt;János Bolyai&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Nikolai_Ivanovich_Lobachevsky&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Nikolai_Ivanovich_Lobachevsky&quot;&gt;Nikolaj Lobačevsky&lt;/a&gt; and maybe also &lt;a href=&quot;http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Carl_Friedrich_Gauss&quot;&gt;Gauss&lt;/a&gt; discovered that &lt;a href=&quot;http://en.wikipedia.org/wiki/Parallel_postulate&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Parallel_postulate&quot;&gt;fifth postulate&lt;/a&gt; is independent on the others. As such we can have geometries accepting and denying it and yet they'll make sense. Why at that time? Why three people at once?
&lt;/p&gt;&lt;p&gt;There are many more cases that exhibit such coincidence. I do not think anyone has reasonable explanation for that, my personal feeling is that each era has something in the air that turns people's attention towards similar problems and tunes their mind to frequencies helping discover similar solutions.
&lt;/p&gt;&lt;p&gt;I've been thinking about the laws of proper API design since 2001 and for a long time I believed that I am the only one who cares about such topic. I was pleasantly surprised during the Java One 2005 fully crowded &lt;a href=&quot;http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi&quot; class=&quot;external text&quot; title=&quot;http://treefs.netbeans.org/files/documents/39/676/apidesign.sxi&quot; rel=&quot;nofollow&quot;&gt;BOF&lt;/a&gt;. However I still believed &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; is the only organization that does some research in this area. You can imagine how much I was surprised when I found out, at the &lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=142428&quot; class=&quot;external text&quot; title=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=142428&quot; rel=&quot;nofollow&quot;&gt;end of 2005&lt;/a&gt;, that Josh Bloch had spent some time thinking about API design too. And that was not enough, my surprise even grew, when I found out that 80% of his observation in his &lt;a href=&quot;http://lcsd05.cs.tamu.edu/slides/keynote.pdf&quot; class=&quot;external text&quot; title=&quot;http://lcsd05.cs.tamu.edu/slides/keynote.pdf&quot; rel=&quot;nofollow&quot;&gt;presentation&lt;/a&gt; are similar to mine. There must have been something in the air, mustn't it?
&lt;/p&gt;&lt;p&gt;As one comment stated: &lt;i&gt;These things are a lot in Jaroslav Tulach's new book. Only real difference is that 'diamonds' above are 'stars' there.&lt;/i&gt; This comment brings us to the title of this post. Things looking similar at first sight may not be same underneath. At the end of 2005, most of the &lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=142428&quot; class=&quot;external text&quot; title=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=142428&quot; rel=&quot;nofollow&quot;&gt;ideas were ready&lt;/a&gt;. They just waited for someone to put them into a book. When I finally began to write &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;, I was searching proper allegory to introduce the reader to the special context of API design. I knew the &lt;i&gt;diamonds&lt;/i&gt; methaphor, but I could not use it, as I believe it is missing something important!
&lt;/p&gt;&lt;p&gt;There is a significant difference between diamonds and stars. While diamonds are said to be forever, nobody considers stars eternal. As such the allegories are not the same. They are in fact quite different. If you get through the &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;Practical API Design&lt;/a&gt; book to &lt;a href=&quot;http://wiki.apidesign.org/wiki/Evolving_the_API_Universe&quot; title=&quot;Evolving the API Universe&quot;&gt;chapter 15&lt;/a&gt; and &lt;a href=&quot;http://wiki.apidesign.org/wiki/End_Of_Life_Procedures&quot; title=&quot;End Of Life Procedures&quot;&gt;chapter 19&lt;/a&gt;, you'll find out that if you have good support from runtime container, properly versioned APIs and you know how to allow co-existence of multiple versions of similar APIs, you can make your old APIs disappear, yet keep backward compatibility. Of course, this is not a common operation, just like stars do not burn out everyday. However, if you really need to, you can send your API (aka your star) towards a black hole and make it disappear there. Moreover, you can do it in a completely &lt;i&gt;user driven&lt;/i&gt; way, where the speed of dying is driven by number of remaining users of the old API, e.g. observers of your star. This is all possible and the &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; project done that few times.
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
In short, although APIs look eternal, they are not &lt;i&gt;forever&lt;/i&gt;, they are more like stars.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 03:34, 26 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 26 Sep 2008 03:34:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Ezekiel 25:17 </title>
			<link>http://wiki.apidesign.org/wiki/Ezekiel2517</link>
			<description>
&lt;p&gt;&lt;i&gt;&quot;The path of the righteous man is beset on all sides by the inequities of the selfish and the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Ezekiel2517&quot; title=&quot;Ezekiel2517&quot;&gt;tyranny of evil men...&lt;/a&gt;&quot;&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;At certain moment, some ideas get &lt;i&gt;&quot;indexed&quot;&lt;/i&gt;. Such ideas get a single name, single label and it is enough to say just that name and the right rings are going to bell in heads of all listeners. You do not need to repeat the whole joke, it may be enough to say just the name of the main character in it. You may not repeat the whole story, it is enough to say &lt;i&gt;&quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Forrest_Gump&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Forrest_Gump&quot;&gt;life is like a box of chocolate, you never know what you gonna get&lt;/a&gt;&quot;&lt;/i&gt; and it is clear what is the story about. Or, just refer to &lt;i&gt;&quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pulp_Fiction&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Pulp_Fiction&quot;&gt;Ezekiel 25:17&lt;/a&gt;&quot;&lt;/i&gt; and you can bet that most of your listeners will know what you are referring to. These sentences became &lt;i&gt;&quot;indexes&quot;&lt;/i&gt; for their whole stories.
&lt;/p&gt;&lt;p&gt;The trap that every author of a book shall be aware to not fall into is to become a generator of &lt;i&gt;indexes&lt;/i&gt; for his own books. This is inevitable, at the end the author spend last few months reading again and again the same book. Reading own sentences over and over, changing words to make them better, more expressive, more sharp and exact. It is natural that for the author to see nothing more real than the book and its content. It is easy to fall in the trap of believing that this is so also for every other human being one meets.
&lt;/p&gt;&lt;p&gt;As a result authors sometimes use sentences like &quot;should you read the xyz book, you would know that...&quot;. Or refer to their work using &quot;I have described uvw in Chapter 33, please read it&quot;. This is explainable, yet very annoying. I've faced that behavior once and I was quite up set and I knew I should restrain from doing the same after publishing &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;. I knew that, but I could not stop myself from doing that! It was so tempting to refer to chapter 11, &lt;a href=&quot;http://wiki.apidesign.org/wiki/Runtime_Aspects_of_APIs&quot; title=&quot;Runtime Aspects of APIs&quot;&gt;Runtime Aspects of APIs&lt;/a&gt; instead of explaining that getting ready for reentrant calls is important. It was so easy and tempting, yet it was also quite annoying for people around me. At least that is my guess from seeing their unusual reactions to my speech or email in not so recent weeks.
&lt;/p&gt;&lt;p&gt;Please take this as my public apology for using &lt;b&gt;Jarda 15:13&lt;/b&gt; or &lt;b&gt;Jarda 7:3&lt;/b&gt;, etc. &quot;indexes&quot;. I could always understand how it feels to get such self-reference. Sorry for that and I promise not to use it anymore.
&lt;/p&gt;&lt;p&gt;PS: In case of need refer to this text as &lt;b&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/Ezekiel2517&quot; title=&quot;Ezekiel2517&quot;&gt;Jarda 24:9&lt;/a&gt;&lt;/b&gt;.
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;div id=&quot;commentForm&quot;&gt;&lt;form method=&quot;post&quot; action=&quot;/index.php?title=Special:ProcessComment&quot;&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleKey&quot; name=&quot;titleKey&quot; value=&quot;Blogs&quot; /&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleNS&quot; name=&quot;titleNS&quot; value=&quot;0&quot; /&gt;&lt;p&gt;Name (required): &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterName&quot; name=&quot;commenterName&quot; /&gt;&lt;/p&gt;&lt;p&gt;Website: &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterURL&quot; name=&quot;commenterURL&quot; value=&quot;http://&quot; /&gt;&lt;/p&gt;&lt;p&gt;Comment: &lt;br /&gt;&lt;textarea id=&quot;comment&quot; name=&quot;comment&quot; style=&quot;width:30em&quot; rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;&lt;input id=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/p&gt;&lt;/form&gt;&lt;/div&gt;&lt;script type='text/javascript'&gt;//&lt;![CDATA[
(function(){
var prefillUserName = function(){
var ptu=document.getElementById(&quot;pt-userpage&quot;);
if (ptu) document.getElementById(&quot;commenterName&quot;).value=ptu.getElementsByTagName(&quot;a&quot;)[0].innerHTML;};
if (window.addEventListener) window.addEventListener(&quot;load&quot;,prefillUserName,false);
else if (window.attachEvent) window.attachEvent(&quot;onload&quot;,prefillUserName);
var cf=document.getElementById(&quot;commentForm&quot;);
cf.style.display=&quot;none&quot;;
var p=document.createElement(&quot;p&quot;);
p.innerHTML=&quot;&lt;a href='javascript:void(0)' onclick='document.getElementById(\&quot;commentForm\&quot;).style.display=\&quot;block\&quot;;this.style.display=\&quot;none\&quot;;false'&gt;Leave a comment ...&lt;/a&gt;&quot;;
cf.parentNode.insertBefore(p,cf);
})();
//]]&gt;&lt;/script&gt;
&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 19:43, 24 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Wed, 24 Sep 2008 19:43:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> API Fest '08 </title>
			<link>http://wiki.apidesign.org/wiki/APIFest08</link>
			<description>
&lt;p&gt;The &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;APIFest08&lt;/a&gt;, a game to practice &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;Practical API Design&lt;/a&gt; skills, is just starting. It is a contest primarily designed for members of &lt;a href=&quot;http://java.cz/&quot; class=&quot;external text&quot; title=&quot;http://java.cz/&quot; rel=&quot;nofollow&quot;&gt;Czech JUG&lt;/a&gt;, but we want to make it as open as possible. Play with us and &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIFest08&quot; title=&quot;APIFest08&quot;&gt;celebrate&lt;/a&gt; 10th anniversary of first public NetBeans release.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 09:31, 23 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 23 Sep 2008 09:31:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Can duck-typing help with API evolution? </title>
			<link>http://wiki.apidesign.org/wiki/Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution</link>
			<description>
&lt;p&gt;I've just received a &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot; title=&quot;Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot;&gt;comment&lt;/a&gt; mentioning Ruby's duck-typing as a solution to evolution problem in API &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot; title=&quot;Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot;&gt;discussed herein earlier&lt;/a&gt;. Interesting food for thought! Thanks! However so far I have to admit that there is no obvious benefit, at least not in the particular case. &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot; title=&quot;Talk:Blogs:JaroslavTulach:Theory:LanguagesForEvolution&quot;&gt;Read more&lt;/a&gt; and feel free to comment...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 15:54, 22 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 22 Sep 2008 15:54:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> getDate() method evolution thoughts by Tim Band </title>
			<link>http://lambda-the-ultimate.org/node/2950#comment-43612</link>
			<description>
&lt;p&gt;Imagine that you have a class with method &lt;i&gt;getDate()&lt;/i&gt; which returns the date of creation of that object. Can you add &lt;i&gt;setDate()&lt;/i&gt; in new version? Can that change be compatible? This is topic discussed recently by &lt;a href=&quot;http://lambda-the-ultimate.org/node/2950#comment-43612&quot; class=&quot;external text&quot; title=&quot;http://lambda-the-ultimate.org/node/2950#comment-43612&quot; rel=&quot;nofollow&quot;&gt;Tim Band at LtU&lt;/a&gt; discussion forums:
&lt;/p&gt;&lt;p&gt;If the get_date function had a comment stating &quot;Returns the date at which the object was created&quot; then you have to update that comment -- and that  semantic  change to get_date is the break.
&lt;/p&gt;&lt;p&gt;It is hard to think of a semantic meaning for a get_date function that covers the setting of an arbitrary date, so let's imagine that we want to add &quot;refresh_date&quot; and that the original documentation of get_date said &quot;Returns some date between the creation of the object and the calling of the function&quot;, then adding refresh_date is OK.
&lt;/p&gt;&lt;p&gt;If get_date is undocumented or ambiguously documented, you need some process to resolve this. At Symbian we have a board of beard-strokers (of whom I am an occaisional member) who deliberate on the difficult cases and inform the customers of our decisions, and get feedback on certain issues. This process is considered integral to our backwards compatibility promise.
&lt;/p&gt;&lt;p&gt;It is tempting to dream of a world where a programming language or supporting infrastructure would free us of the compatibility burden, turning it into just another language feature. However, it is in the mucky world of semantics, where interfaces meet the world of human use and abuse where this stuff really matters. You can break compatibility if you know it won't matter (we once changed our formerly weird floating-point implementation to match IEEE with no-one even noticing), but you can't make some compatible changes (changing priorities of processes that have no stated dependency on each other is a classic).
&lt;/p&gt;&lt;p&gt;Having said all that, there is much work to be done on merely keeping interfaces stable. You can get quite far just by assuming that the source interface (your class and function signatures in your .h files in C++) matches the semantics, and picking up incompatible changes to that over time (removal of functions for example) and alterations of the binary interface in relation to the source interface (adding a virtual function for example).
&lt;/p&gt;&lt;p&gt;Of course, occasionally you must allow customers to override common sense; I'm sure many readers here are familiar with the story of Microsoft Windows' memory manager running in a different mode if it detected Sim City running -- this is always a risk and you have to be aware that you might be forced to retract changes in the face of politics.
&lt;/p&gt;&lt;p&gt;I should probably stop now, although really I'm just getting started! Tim Band
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 07:32, 17 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Wed, 17 Sep 2008 07:32:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Exceptions in API </title>
			<link>http://wiki.apidesign.org/wiki/APIDesignPatterns:Exceptions</link>
			<description>
&lt;p&gt;Casper Bang asked following question about &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:Exceptions&quot; title=&quot;APIDesignPatterns:Exceptions&quot;&gt;exceptions in API&lt;/a&gt; after reading the &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;: 
&lt;/p&gt;&lt;p&gt;&lt;i&gt;I was curious as to know how come, in a book strictly about API design in Java, you do not mention exceptions (particular checked exceptions) and the role they play in documenting assertions vs. hampering versionability. Did you simply think this to be too controversial an issue I wonder?&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;Good question! Inspiring. Here are my current answers: &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:Exceptions&quot; title=&quot;APIDesignPatterns:Exceptions&quot;&gt;exceptions in API&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 21:37, 14 September 2008 (UTC)
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
</description>
			<pubDate>Sun, 14 Sep 2008 21:37:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> And the Winner of the HtmlForFoodCompetition is ... </title>
			<link>http://wiki.apidesign.org/wiki/HtmlForFoodCompetition</link>
			<description>
&lt;p&gt;The &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFoodCompetition&quot; title=&quot;HtmlForFoodCompetition&quot;&gt;HtmlForFoodCompetition&lt;/a&gt; which we run in order to promote &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; and popularize its &lt;a href=&quot;http://wiki.apidesign.org/wiki/Cluelessness&quot; title=&quot;Cluelessness&quot;&gt;major concepts&lt;/a&gt; is running towards its end! I have already selected the winner using a complex mathematical operations with a huge contribution of &lt;a href=&quot;http://en.wikipedia.org/wiki/Pseudorandomness&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Pseudorandomness&quot;&gt;pseudo randomized numbers&lt;/a&gt;. Please tune in the next &lt;a href=&quot;http://feeds.feedburner.com/NetBeansPodcast&quot; class=&quot;external text&quot; title=&quot;http://feeds.feedburner.com/NetBeansPodcast&quot; rel=&quot;nofollow&quot;&gt;NetBeans Podcast Episode 46&lt;/a&gt; and hear the announcement yourself!
&lt;/p&gt;&lt;p&gt;I can only say that the submissions we got were really great:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://blogs.sun.com/geertjan/entry/vincent_cantin_will_show_hidden&quot; class=&quot;external text&quot; title=&quot;http://blogs.sun.com/geertjan/entry/vincent_cantin_will_show_hidden&quot; rel=&quot;nofollow&quot;&gt;Vincent Cantin&lt;/a&gt; was looking so desperately sad.
&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://blogs.sun.com/geertjan/entry/cismet_developers_will_code_for&quot; class=&quot;external text&quot; title=&quot;http://blogs.sun.com/geertjan/entry/cismet_developers_will_code_for&quot; rel=&quot;nofollow&quot;&gt;cismet&lt;/a&gt; guys provided wide range of variations on the &quot;code&quot; topic.
&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://eppleton.com/blog/?p=192&quot; class=&quot;external text&quot; title=&quot;http://eppleton.com/blog/?p=192&quot; rel=&quot;nofollow&quot;&gt;Tonni Epple&lt;/a&gt; draw a perfect caricature.
&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://img529.imageshack.us/img529/1826/dsc03165zv3.jpg&quot; class=&quot;external text&quot; title=&quot;http://img529.imageshack.us/img529/1826/dsc03165zv3.jpg&quot; rel=&quot;nofollow&quot;&gt;Andre Pinto&lt;/a&gt; pictured himself with a beautiful selection of languages and &quot;code&quot; sentences.
&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://blip.tv/file/1061088&quot; class=&quot;external text&quot; title=&quot;http://blip.tv/file/1061088&quot; rel=&quot;nofollow&quot;&gt;Full Movie&lt;/a&gt; was not really submitted for competition, however it is very nice exploration into everyday developers' pains.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Who will win &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; by providing the best &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;Html For Food&lt;/a&gt; picture?
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/Image:Clippy.png&quot; class=&quot;image&quot; title=&quot;Image:Clippy.png&quot;&gt;&lt;img alt=&quot;Image:Clippy.png&quot; src=&quot;http://wiki.apidesign.org/images/c/cb/Clippy.png&quot; width=&quot;212&quot; height=&quot;177&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;As you may heard already in the &lt;a href=&quot;http://feeds.feedburner.com/NetBeansPodcast&quot; class=&quot;external text&quot; title=&quot;http://feeds.feedburner.com/NetBeansPodcast&quot; rel=&quot;nofollow&quot;&gt;podcast&lt;/a&gt;, the winners are &lt;a href=&quot;http://blogs.sun.com/geertjan/entry/cismet_developers_will_code_for&quot; class=&quot;external text&quot; title=&quot;http://blogs.sun.com/geertjan/entry/cismet_developers_will_code_for&quot; rel=&quot;nofollow&quot;&gt;cismet guys&lt;/a&gt;! Congratulation!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 20:25, 8 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 08 Sep 2008 20:25:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> First Public Review of Practical API Design Book </title>
			<link>http://wiki.apidesign.org/wiki/1stPublicReview</link>
			<description>
&lt;p&gt;There is a &lt;a href=&quot;http://wiki.apidesign.org/wiki/1stPublicReview&quot; title=&quot;1stPublicReview&quot;&gt;review&lt;/a&gt; of &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;! &lt;a href=&quot;http://wiki.apidesign.org/wiki/GeertjanWielenga&quot; title=&quot;GeertjanWielenga&quot;&gt;Geertjan&lt;/a&gt; had just sent me a link to the &lt;a href=&quot;http://72miles.com/blog/posts/practical-api-design-confessions-of-a-java-framework-architect-book-reivew/&quot; class=&quot;external text&quot; title=&quot;http://72miles.com/blog/posts/practical-api-design-confessions-of-a-java-framework-architect-book-reivew/&quot; rel=&quot;nofollow&quot;&gt;first public review&lt;/a&gt; of the &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;. I was a bit nervous to open the page. I was not sure whether to get ready for absolute criticism or words expressing usefulness of &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;. I guess that a review which says &lt;i&gt;this is without a doubt a book that you need to put on your bookshelf. This is the first book of its kind and the tips and tricks that it provides is timeless - a key attribute of any pragmatic software development book&lt;/i&gt; can only be seen in positive light. Thanks for the nice review, &lt;a href=&quot;http://72miles.com/blog/posts/practical-api-design-confessions-of-a-java-framework-architect-book-reivew/&quot; class=&quot;external text&quot; title=&quot;http://72miles.com/blog/posts/practical-api-design-confessions-of-a-java-framework-architect-book-reivew/&quot; rel=&quot;nofollow&quot;&gt;Mike&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;Now on to the critical comments. Yes, I know the first part of the book, the theory, maybe seen as something delaying the real pleasure - the practical code samples. In &lt;a href=&quot;http://wiki.apidesign.org/wiki/Have_You_Ever_Wondered&quot; title=&quot;Have You Ever Wondered&quot;&gt;some sense it does&lt;/a&gt;, however I just felt that given the wide audience of readers (just to quote the reviewer &lt;i&gt;this book is really much more for anyone who writes code that anyone else consumes - and who doesn’t do that? This book is for any developer who is not brand new to software development&lt;/i&gt;), I felt the need to get everyone on the speed, clean up the terminology, make sure we understand each other. Maybe I was too careful, as &lt;a href=&quot;http://wiki.apidesign.org/wiki/RichUnger&quot; title=&quot;RichUnger&quot;&gt;RichUnger&lt;/a&gt; said: &lt;i&gt;you do not need your readers to agree with you 100%, maybe 99% is enough&lt;/i&gt;. Well, I targeted for the 100%, and as a result, the book may be seen &lt;i&gt;slow&lt;/i&gt; for those who are already on the same boat. Still, it has a lot of &lt;i&gt;meat&lt;/i&gt; even for such readers, I guess.
&lt;/p&gt;&lt;p&gt;The other interesting comment was about the subtitle: &lt;i&gt;confessions&lt;/i&gt;. The comment is very likely true. I have to admit, especially after the confession I made at the end of &lt;a href=&quot;http://wiki.apidesign.org/wiki/Ever_Changing_Targets&quot; title=&quot;Ever Changing Targets&quot;&gt;Chapter 4&lt;/a&gt;, that I have never been to a confession. My understanding of that term is really vague. However, we needed the subtitle to stress, that the book is not opinion neutral, that it contains personal experiences, ideas, stories, etc. When &lt;a href=&quot;http://wiki.apidesign.org/wiki/ThanksEveryone#Clay_Andres&quot; title=&quot;ThanksEveryone&quot;&gt;Clay&lt;/a&gt; suggested to use &lt;i&gt;confessions&lt;/i&gt;, I felt, yes, that is sort of what I am actually doing. Maybe this is not absolutely correct, but it helps set the right expectations up. At least I hope.
&lt;/p&gt;&lt;p&gt;I really like Mike saying: &lt;i&gt;After reading many chapters, I went right to my open source project, &lt;a href=&quot;http://code.google.com/p/architecturerules/&quot; class=&quot;external text&quot; title=&quot;http://code.google.com/p/architecturerules/&quot; rel=&quot;nofollow&quot;&gt;Architecture Rules&lt;/a&gt;, and either changed code or emailed developer mailing list to suggest changes to code to encourage a better, more malleable and extensible API.&lt;/i&gt; Yes, this is it! This is the reason why I wrote &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;. Software for 21st century needs to be modular, needs to be well evolved and I am glad that &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;my book&lt;/a&gt; can contribute to that.
&lt;/p&gt;&lt;p&gt;Thanks for such nice review and I am eagerly waiting to see more. Btw. if you ever feel you have a note to share about API Design, feel free to jump on the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Main_Page&quot; title=&quot;Main Page&quot;&gt;apidesign.org&lt;/a&gt; wiki.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 19:42, 2 September 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Sep 2008 19:42:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Joel Neely on Enums in APIs </title>
			<link>http://wiki.apidesign.org/wiki/Talk:Blogs:AndreiBadea:EnumsInAPIs#Joel_Neely_said_...</link>
			<description>
&lt;p&gt;Today I found out that there is an interesting 
&lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:AndreiBadea:EnumsInAPIs#Joel_Neely_said_...&quot; title=&quot;Talk:Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;comment&lt;/a&gt;
to the blog entry published by 
&lt;a href=&quot;http://wiki.apidesign.org/wiki/AndreiBadea&quot; title=&quot;AndreiBadea&quot;&gt;Andrei&lt;/a&gt; a week ago. &lt;a href=&quot;http://wiki.apidesign.org/wiki/AndreiBadea&quot; title=&quot;AndreiBadea&quot;&gt;Andrei&lt;/a&gt; shared with us few thoughts on the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:AndreiBadea:EnumsInAPIs&quot; title=&quot;Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;use of enums in API&lt;/a&gt;. &lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:AndreiBadea:EnumsInAPIs#Joel_Neely_said_...&quot; title=&quot;Talk:Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;Joel Neely noted&lt;/a&gt;  that it all depends on how the &lt;b&gt;enum&lt;/b&gt; is used in the API. I cannot do anything else than agree with 
&lt;a href=&quot;http://wiki.apidesign.org/wiki/Talk:Blogs:AndreiBadea:EnumsInAPIs#Joel_Neely_said_...&quot; title=&quot;Talk:Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;his words&lt;/a&gt;, yes it depends on whether the &lt;b&gt;enum&lt;/b&gt; is used  &lt;a href=&quot;http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Covariance_and_contravariance_(computer_science)&quot;&gt;covariantly or contravariantly&lt;/a&gt;. If the enum is used covariantly only, then extending it with new constant in new version of the API is OK.
&lt;/p&gt;&lt;p&gt;The only problem is that as soon as you publish an &lt;b&gt;enum&lt;/b&gt;, one can immediately write a &lt;b&gt;switch&lt;/b&gt; statement over it. And the &lt;b&gt;switch&lt;/b&gt; statement's behaviour is contravariant. That is no good news for the API writers and compatible extensibility of their &lt;b&gt;enum&lt;/b&gt; based APIs...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 21:22, 26 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Tue, 26 Aug 2008 21:22:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Are there any Languages Ready for API Evolution? </title>
			<link>http://wiki.apidesign.org/wiki/TheAPIBook</link>
			<description>
&lt;p&gt;When I was describing my API design adventures in &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;, I could not realize that many of these problems would not even appear if we had better languages, or systems more suitable for the &lt;a href=&quot;http://wiki.apidesign.org/wiki/DistributedDevelopment&quot; title=&quot;DistributedDevelopment&quot;&gt;DistributedDevelopment&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;I may be wrong, but I do not know about any language that would support &lt;i&gt;modularity&lt;/i&gt;. And here I mean not compilation piece by piece, but also &lt;i&gt;modularity in time&lt;/i&gt;. Because that is the kind of modularity that is needed quite often during development of APIs for our libraries. 
&lt;/p&gt;&lt;p&gt;At one point of time we release a version of a library and distribute it to others by publishing it on the website. Now people unknown to us, distributed all around the world download it and use it. As a result, the amount of applications built on top of such library is increasing, which implies also that the amount of bugs and feature requests is growing too. After a while the time to release new version of the library comes. However what if the first version used to have a class:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-java&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;View&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt; getDisplayName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;What if one of the feature requests demands to add an HTML title to each view. Can we change the view class to following form:
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;source-java&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;View&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt; getDisplayName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;abstract&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt; getHTMLTitle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Indeed, this cannot be done. Existing subclasses of &lt;i&gt;View&lt;/i&gt; would no longer compile, because the change is not source compatible. Also, even if someone links already compiled subclass with the new version of the library, the Java virtual machine will complain and throw some kind of linkage error, as definition of an abstract super class method is missing.
&lt;/p&gt;&lt;p&gt;I would love to see a language or system that would fail the compilation whenever I want to modify my already released classes in a style that could prevent some of their users to continue to use them in previously working way. This would be the real &lt;i&gt;modularity&lt;/i&gt;, which is ready for changes in time. So far it seems to me that the current languages do not deal with changes in time really well. Just like Andrei described in his &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:AndreiBadea:EnumsInAPIs&quot; title=&quot;Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;Enums in APIs&lt;/a&gt; blog, it seems that our languages do not think about the process of API evolution much and include constructs that one needs to avoid to make &lt;a href=&quot;http://wiki.apidesign.org/wiki/DistributedDevelopment&quot; title=&quot;DistributedDevelopment&quot;&gt;DistributedDevelopment&lt;/a&gt; possible.
&lt;/p&gt;&lt;p&gt;Releasing new version of libraries with modified APIs is really common and our software engineering practices cannot live without it, yet it seems that there is no language in the world that would make this easy and &lt;a href=&quot;http://wiki.apidesign.org/wiki/Cluelessness&quot; title=&quot;Cluelessness&quot;&gt;clueless&lt;/a&gt;. Or am I wrong?
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
Also lively discussed at &lt;a href=&quot;http://lambda-the-ultimate.org/node/2950&quot; class=&quot;external text&quot; title=&quot;http://lambda-the-ultimate.org/node/2950&quot; rel=&quot;nofollow&quot;&gt;Lambda the Ultimate&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 06:50, 24 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 24 Aug 2008 06:50:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Have You Ever Wondered? </title>
			<link>http://wiki.apidesign.org/wiki/Have_You_Ever_Wondered</link>
			<description>
&lt;p&gt;Many people want to know, before they start to read a book, whether it can help them solve some problems they have faced. That is very likely reason why many books start with &lt;i&gt;have you ever wondered&lt;/i&gt; sections. The &lt;i&gt;Practical API Design&lt;/i&gt; book does not contain such section itself, however that in no way means that there it is not helping to solve problems! You can bet that there is a lot of useful advices! The book is a lab journal describing adventures of NetBeans project and as such, it is almost completely stuffed with problem solutions. Here is short &lt;a href=&quot;http://wiki.apidesign.org/wiki/Have_You_Ever_Wondered&quot; title=&quot;Have You Ever Wondered&quot;&gt;online&lt;/a&gt; version of &lt;a href=&quot;http://wiki.apidesign.org/wiki/Have_You_Ever_Wondered&quot; title=&quot;Have You Ever Wondered&quot;&gt;Have You Ever Wondered&lt;/a&gt; to demonstrate that. Visit the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Have_You_Ever_Wondered&quot; title=&quot;Have You Ever Wondered&quot;&gt;page&lt;/a&gt; and check yourself what problems can &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; solve for you!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 20:42, 17 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 17 Aug 2008 20:42:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Win the Practical API Design Book </title>
			<link>http://wiki.apidesign.org/wiki/HtmlForFood</link>
			<description>
&lt;p&gt;As part of Chapter 1, The Art of Building Modern Software I wanted to demonstrate that the need for programmers is really big and that almost everyone who wants to get a job as a programmer may get it. For this I wanted to reuse a picture of a San Francisco homeless that is famous for wearing sign with &quot;&lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;Will Code HTML for Food&lt;/a&gt;&quot;. However I could not do that, because the picture is of really low quality. That is why I needed a new re-take.  We already &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;have some&lt;/a&gt;, but still, I'd like us to start sharing! As sharing of pictures is sometimes easier than sharing of API Design ideas,  please participate in a photo contest! Get a chance to 
win &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt; by taking &quot;Will Code HTML for Food&quot; like picture and adding a reference to it to &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;HtmlForFood&lt;/a&gt; by Aug 28, 2008!
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/Image:Tomas1.jpg&quot; class=&quot;image&quot; title=&quot;Image:tomas1.jpg&quot;&gt;&lt;img alt=&quot;Image:tomas1.jpg&quot; src=&quot;http://wiki.apidesign.org/images/0/0f/Tomas1.jpg&quot; width=&quot;300&quot; height=&quot;450&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://wiki.apidesign.org/wiki/Image:HtmlForFood.png&quot; class=&quot;image&quot; title=&quot;Image:HtmlForFood.png&quot;&gt;&lt;img alt=&quot;Image:HtmlForFood.png&quot; src=&quot;http://wiki.apidesign.org/images/8/82/HtmlForFood.png&quot; width=&quot;278&quot; height=&quot;320&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;I am looking forward your &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;submissions&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 16:11, 14 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Thu, 14 Aug 2008 16:11:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Visual Aspects of an API </title>
			<link>http://wiki.apidesign.org/wiki/APITypes:VisualAspects</link>
			<description>
&lt;p&gt;The usual consensus is that &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes:VisualAspects&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes:VisualAspects&quot;&gt;visual aspects&lt;/a&gt; that are presented just to the end user are not part of API of some application. This is usually well justified and correct, except in &lt;a href=&quot;http://wiki.apidesign.org/wiki/APITypes:VisualAspects&quot; class=&quot;mw-redirect&quot; title=&quot;APITypes:VisualAspects&quot;&gt;some situations&lt;/a&gt;...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 11:40, 11 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 11 Aug 2008 11:40:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> New LaF of apidesign.org </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:NewLookAndFeel</link>
			<description>
&lt;p&gt;There was a lot of factors that influenced me last year, when I was searching for publisher of my book. However one of them must have been slickness of cover. I really like the black and yellow style of Apress books. I like it so much that I decided to make it the default &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:NewLookAndFeel&quot; title=&quot;Blogs:JaroslavTulach:Daily Life:NewLookAndFeel&quot;&gt;Look and Feel&lt;/a&gt; of the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Main_Page&quot; title=&quot;Main Page&quot;&gt;apidesign.org&lt;/a&gt; website. 
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/Image:Apidesign.jpg&quot; class=&quot;image&quot; title=&quot;Image:Apidesign.jpg&quot;&gt;&lt;img alt=&quot;Image:Apidesign.jpg&quot; src=&quot;http://wiki.apidesign.org/images/3/35/Apidesign.jpg&quot; width=&quot;372&quot; height=&quot;494&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;I'd started with &lt;a href=&quot;http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Daily_Life:NewLookAndFeel&amp;amp;useskin=monobook&quot; class=&quot;external text&quot; title=&quot;http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Daily_Life:NewLookAndFeel&amp;amp;useskin=monobook&quot; rel=&quot;nofollow&quot;&gt;MonoBook theme&lt;/a&gt; and modified it to be &lt;i&gt;a bit&lt;/i&gt; darker. I &lt;a href=&quot;http://wiki.apidesign.org/wiki/HtmlForFood&quot; title=&quot;HtmlForFood&quot;&gt;do not code CSS for living&lt;/a&gt;, but &lt;a href=&quot;http://en.wikipedia.org/wiki/CSS&quot; class=&quot;extiw&quot; title=&quot;wikipedia:CSS&quot;&gt;CSS&lt;/a&gt; file editing support in &lt;a href=&quot;http://wiki.apidesign.org/wiki/NetBeans&quot; class=&quot;mw-redirect&quot; title=&quot;NetBeans&quot;&gt;NetBeans&lt;/a&gt; IDE is good, so it was quite entertaining experience. I am sure not everything is perfect, but I'll keep fixing problems as they appear. If you notice something ugly or broken, let me know.
&lt;/p&gt;
&lt;div id=&quot;commentForm&quot;&gt;&lt;form method=&quot;post&quot; action=&quot;/index.php?title=Special:ProcessComment&quot;&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleKey&quot; name=&quot;titleKey&quot; value=&quot;Blogs&quot; /&gt;&lt;input type=&quot;hidden&quot; id=&quot;titleNS&quot; name=&quot;titleNS&quot; value=&quot;0&quot; /&gt;&lt;p&gt;Name (required): &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterName&quot; name=&quot;commenterName&quot; /&gt;&lt;/p&gt;&lt;p&gt;Website: &lt;br /&gt;&lt;input type=&quot;text&quot; id=&quot;commenterURL&quot; name=&quot;commenterURL&quot; value=&quot;http://&quot; /&gt;&lt;/p&gt;&lt;p&gt;Comment: &lt;br /&gt;&lt;textarea id=&quot;comment&quot; name=&quot;comment&quot; style=&quot;width:30em&quot; rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;&lt;input id=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/p&gt;&lt;/form&gt;&lt;/div&gt;&lt;script type='text/javascript'&gt;//&lt;![CDATA[
(function(){
var prefillUserName = function(){
var ptu=document.getElementById(&quot;pt-userpage&quot;);
if (ptu) document.getElementById(&quot;commenterName&quot;).value=ptu.getElementsByTagName(&quot;a&quot;)[0].innerHTML;};
if (window.addEventListener) window.addEventListener(&quot;load&quot;,prefillUserName,false);
else if (window.attachEvent) window.attachEvent(&quot;onload&quot;,prefillUserName);
var cf=document.getElementById(&quot;commentForm&quot;);
cf.style.display=&quot;none&quot;;
var p=document.createElement(&quot;p&quot;);
p.innerHTML=&quot;&lt;a href='javascript:void(0)' onclick='document.getElementById(\&quot;commentForm\&quot;).style.display=\&quot;block\&quot;;this.style.display=\&quot;none\&quot;;false'&gt;Leave a comment ...&lt;/a&gt;&quot;;
cf.parentNode.insertBefore(p,cf);
})();
//]]&gt;&lt;/script&gt;
&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 10:16, 4 August 2008 (UTC)
--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 10:09, 4 August 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Mon, 04 Aug 2008 10:16:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> There is a Reason Why Every Book is Dedicated to Family </title>
			<link>http://wiki.apidesign.org/wiki/ThanksFriends</link>
			<description>
&lt;p&gt;I've heard this sentence at the J1 this year and I cannot get it out of my mind. Yes, family plays a really big role in the life of a writer. So please let me thank to it as well to other &lt;a href=&quot;http://wiki.apidesign.org/wiki/ThanksFriends&quot; title=&quot;ThanksFriends&quot;&gt;friends&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 19:00, 27 July 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 27 Jul 2008 19:00:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Good Book Needs Good Reviewers </title>
			<link>http://wiki.apidesign.org/wiki/ThanksReviewers</link>
			<description>
&lt;p&gt;It is time to &lt;a href=&quot;http://wiki.apidesign.org/wiki/ThanksReviewers&quot; title=&quot;ThanksReviewers&quot;&gt;thank to all my reviewers&lt;/a&gt; as today I've found out that you can order my book on &lt;a href=&quot;http://www.amazon.com/gp/product/1430209739?ie=UTF8&amp;amp;tag=apidesignorg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430209739&quot; class=&quot;external text&quot; title=&quot;http://www.amazon.com/gp/product/1430209739?ie=UTF8&amp;amp;tag=apidesignorg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430209739&quot; rel=&quot;nofollow&quot;&gt;Amazon.com&lt;/a&gt;. Please look at my little &lt;a href=&quot;http://wiki.apidesign.org/wiki/ThanksReviewers&quot; title=&quot;ThanksReviewers&quot;&gt;ThanksReviewers&lt;/a&gt; to find out why to  &lt;a href=&quot;http://www.amazon.com/gp/product/1430209739?ie=UTF8&amp;amp;tag=apidesignorg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430209739&quot; class=&quot;external text&quot; title=&quot;http://www.amazon.com/gp/product/1430209739?ie=UTF8&amp;amp;tag=apidesignorg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1430209739&quot; rel=&quot;nofollow&quot;&gt;order my book&lt;/a&gt;. I believe that all reviewers really shape it to something worth reading. Thanks a lot.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 19:44, 18 July 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Fri, 18 Jul 2008 19:44:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Removing Fear of Writing Documentation </title>
			<link>http://wiki.apidesign.org/wiki/Teamwork</link>
			<description>
&lt;p&gt;Heuréka! As I've just noted in a dedicated page describing chapter 16, &lt;a href=&quot;http://wiki.apidesign.org/wiki/Teamwork&quot; title=&quot;Teamwork&quot;&gt;Teamwork&lt;/a&gt; one &lt;a href=&quot;http://wiki.apidesign.org/wiki/GeertjanWielenga&quot; title=&quot;GeertjanWielenga&quot;&gt;GeertjanWielenga&lt;/a&gt;'s fear has just been overcome!
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 16:05, 17 July 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Thu, 17 Jul 2008 16:05:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Enums in APIs </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:AndreiBadea:EnumsInAPIs</link>
			<description>
&lt;p&gt;An user of an enum might want to ensure he has processed all its fields. This can be problematic when the user doesn't own the enum, &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:AndreiBadea:EnumsInAPIs&quot; title=&quot;Blogs:AndreiBadea:EnumsInAPIs&quot;&gt;such  as in an API&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:AndreiBadea&quot; class=&quot;mw-redirect&quot; title=&quot;User:AndreiBadea&quot;&gt;AndreiBadea&lt;/a&gt; 14:18, 16 July 2008 (UTC)
&lt;/p&gt;&lt;p&gt;</description>
			<pubDate>Wed, 16 Jul 2008 14:18:00 GMT</pubDate>			<dc:creator>AndreiBadea</dc:creator>					</item>
		<item>
			<title> Question on classes and interfaces </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JesseGlick:OfClassesAndInterfaces</link>
			<description>
&lt;p&gt;Someone asked: &lt;i&gt;I guess that, roughly, a client API should use abstract classes while&lt;/i&gt;
a support/provider API should use interfaces?&lt;i&gt; &lt;/i&gt;
&lt;/p&gt;&lt;p&gt;To which &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JesseGlick:OfClassesAndInterfaces&quot; title=&quot;Blogs:JesseGlick:OfClassesAndInterfaces&quot;&gt;I responded...&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JesseGlick&quot; class=&quot;mw-redirect&quot; title=&quot;User:JesseGlick&quot;&gt;JesseGlick&lt;/a&gt; 09:33, 15 July 2008 (UTC)
&lt;/p&gt;&lt;p&gt;</description>
			<pubDate>Tue, 15 Jul 2008 09:33:00 GMT</pubDate>			<dc:creator>JesseGlick</dc:creator>					</item>
		<item>
			<title> Dependencies Are Important Type of API </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:Dependencies_Are_Impotant_Type_of_API</link>
			<description>
&lt;p&gt;New type of API &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Theory:Dependencies_Are_Impotant_Type_of_API&quot; title=&quot;Blogs:JaroslavTulach:Theory:Dependencies Are Impotant Type of API&quot;&gt;has been discovered&lt;/a&gt;!
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 07:05, 15 July 2008 (UTC)
&lt;/p&gt;&lt;p&gt;</description>
			<pubDate>Tue, 15 Jul 2008 07:05:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Adventures with PHP and MediaWiki </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Adventures_with_PHP_and_MediaWiki</link>
			<description>
&lt;p&gt;During the last week, I was &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Adventures_with_PHP_and_MediaWiki&quot; title=&quot;Blogs:JaroslavTulach:Daily Life:Adventures with PHP and MediaWiki&quot;&gt;slightly playing&lt;/a&gt; with various enhancements to the content of the &lt;a href=&quot;http://wiki.apidesign.org/wiki/Main_Page&quot; title=&quot;Main Page&quot;&gt;API Design wiki&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 21:14, 6 July 2008 (UTC)
&lt;/p&gt;
</description>
			<pubDate>Sun, 06 Jul 2008 21:14:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Request/Response Pattern Revisited </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Practical_Design:Request/Response_Pattern_Revisited</link>
			<description>
&lt;p&gt;Here is few additional &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Practical_Design:Request/Response_Pattern_Revisited&quot; title=&quot;Blogs:JaroslavTulach:Practical Design:Request/Response Pattern Revisited&quot;&gt;thoughts about Request/Response&lt;/a&gt; which did not make it into &lt;a href=&quot;http://wiki.apidesign.org/wiki/TheAPIBook&quot; title=&quot;TheAPIBook&quot;&gt;TheAPIBook&lt;/a&gt;'s explanation of &lt;a href=&quot;http://wiki.apidesign.org/wiki/APIDesignPatterns:RequestResponse&quot; class=&quot;mw-redirect&quot; title=&quot;APIDesignPatterns:RequestResponse&quot;&gt;Request/Response&lt;/a&gt; pattern.
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 21:02, 25 June 2008 (UTC)
</description>
			<pubDate>Wed, 25 Jun 2008 21:02:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Book is never Written by a Single Person </title>
			<link>http://wiki.apidesign.org/wiki/ThanksEveryone</link>
			<description>
&lt;p&gt;The &lt;i&gt;Practical API Design&lt;/i&gt; book has been sent for print over the last weekend. I take it as a good opportunity to say thanks to all the people who helped me write it. The first set of &lt;a href=&quot;http://wiki.apidesign.org/wiki/ThanksEveryone&quot; title=&quot;ThanksEveryone&quot;&gt;ThanksEveryone&lt;/a&gt; notes is now available and covers those who &quot;manually&quot; contributed. I still need to thank to all those support &quot;units&quot; around me - something left for next blog entry...
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 12:01, 23 June 2008 (UTC)
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
</description>
			<pubDate>Mon, 23 Jun 2008 12:01:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
		<item>
			<title> Entering the Blogosphere </title>
			<link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Entering_the_Blogosphere</link>
			<description>
&lt;p&gt;I have created &lt;a href=&quot;http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Entering_the_Blogosphere&quot; title=&quot;Blogs:JaroslavTulach:Daily Life:Entering the Blogosphere&quot;&gt;my blog&lt;/a&gt;, does it mean that I finally exist?
&lt;/p&gt;&lt;p&gt;--&lt;a href=&quot;http://wiki.apidesign.org/wiki/User:JaroslavTulach&quot; title=&quot;User:JaroslavTulach&quot;&gt;JaroslavTulach&lt;/a&gt; 09:33, 15 June 2008 (UTC)
&lt;/p&gt;&lt;p&gt;</description>
			<pubDate>Sun, 15 Jun 2008 09:33:00 GMT</pubDate>			<dc:creator>JaroslavTulach</dc:creator>					</item>
	</channel>
</rss>