<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns="http://purl.org/rss/1.0/">
  <channel rdf:about="http://www.planetnetbeans.org/zh_tw/">
    <title>NetBeans 星球</title>
    <link>http://www.planetnetbeans.org/zh_tw/</link>
    <description>NetBeans 星球 - http://www.planetnetbeans.org/zh_tw/</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast2" />
        <rdf:li rdf:resource="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast1" />
        <rdf:li rdf:resource="http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast2">
    <title>APIDesign - Blogs: API Podcast #2: Reentrancy</title>
    <link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast2</link>
    <content:encoded>Listen to &lt;a href="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast2" title="Blogs:JaroslavTulach:Daily Life:Podcast2"&gt;podcast #2&lt;/a&gt;: &lt;audio&gt;&lt;source src="http://wiki.apidesign.org/images/7/70/Apitip02-reentrant-access.mp3" type="audio/mp3"&gt;&lt;/source&gt;&lt;/audio&gt; to learn about our take on &lt;a href="http://wiki.apidesign.org/wiki/Swing" title="Swing"&gt;Swing&lt;/a&gt; and its poor reentrancy. Find out what it may mean for your own
    &lt;a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt; design and especially &lt;a href="http://wiki.apidesign.org/wiki/Runtime_Aspects_of_APIs" title="Runtime Aspects of APIs"&gt;Runtime_Aspects_of_APIs&lt;/a&gt; that you create. Learn to fight with that problem by maximizing the &lt;a href="http://wiki.apidesign.org/wiki/Declarative_Programming" title="Declarative Programming"&gt;declarative nature&lt;/a&gt; of your &lt;a
    href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt;. --&lt;a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach"&gt;JaroslavTulach&lt;/a&gt; 17:43, 18 May 2009 (UTC)</content:encoded>
    <dc:date>2009-05-18T17:43:00+00:00</dc:date>
  </item>
  <item rdf:about="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast1">
    <title>APIDesign - Blogs: API PodCast #1</title>
    <link>http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast1</link>
    <content:encoded>Listen to &lt;a href="http://wiki.apidesign.org/wiki/Blogs:JaroslavTulach:Daily_Life:Podcast1" title="Blogs:JaroslavTulach:Daily Life:Podcast1"&gt;this&lt;/a&gt;: &lt;audio&gt;&lt;source src="http://wiki.apidesign.org/images/c/c9/Apitip01-for-everyone.mp3" type="audio/mp3"&gt;&lt;/source&gt;&lt;/audio&gt;! It is almost a year since we (&lt;a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach"&gt;me&lt;/a&gt; and &lt;a
    href="http://wiki.apidesign.org/wiki/GeertjanWielenga" title="GeertjanWielenga"&gt;Geertjan&lt;/a&gt;) started our regular &lt;a href="http://wiki.apidesign.org/wiki/API_Design_Tips" title="API Design Tips"&gt;API Design Tips&lt;/a&gt; podcasts. They used to be part of larger &lt;a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans"&gt;NetBeans&lt;/a&gt; &lt;a href="http://www.netbeans.tv/podcasts/NetBeans-Podcast-Episode-%2346-381/" class="external text" rel="nofollow"
    title="http://www.netbeans.tv/podcasts/NetBeans-Podcast-Episode-%2346-381/"&gt;podcasts&lt;/a&gt;, however recently I needed some promotion material for &lt;a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook"&gt;TheAPIBook&lt;/a&gt; and I decided to extract the API Tip parts. I am glad I can offer these sketches to you. Enjoy &lt;a href="http://wiki.apidesign.org/images/c/c9/Apitip01-for-everyone.mp3" class="internal" title="Apitip01-for-everyone.mp3"&gt;podcast #1&lt;/a&gt;. --&lt;a
    href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach"&gt;JaroslavTulach&lt;/a&gt; 19:50, 12 May 2009 (UTC)</content:encoded>
    <dc:date>2009-05-12T19:50:00+00:00</dc:date>
  </item>
  <item rdf:about="http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009">
    <title>APIDesign - Blogs: 2009: The Year of Annotations</title>
    <link>http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009</link>
    <content:encoded>&lt;p&gt;As I noted recently, I see the year 2009 as &lt;a href="http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009" title="TheYearOfAnnotations2009"&gt;the year of annotations&lt;/a&gt;. The &lt;a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans"&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="http://wiki.apidesign.org/wiki/JDK"
    title="JDK"&gt;JDK&lt;/a&gt; 1.6 &lt;a href="http://wiki.apidesign.org/wiki/JavaC" class="mw-redirect" title="JavaC"&gt;JavaC&lt;/a&gt; and we can use &lt;a href="http://wiki.apidesign.org/wiki/CompileTimeCache" title="CompileTimeCache"&gt;compile time&lt;/a&gt; &lt;a href="http://wiki.apidesign.org/wiki/AnnotationProcessor" title="AnnotationProcessor"&gt;annotation processors&lt;/a&gt;. As a result we can replace our &lt;a href="http://wiki.apidesign.org/wiki/NetBeansLayers"
    title="NetBeansLayers"&gt;layer based registrations&lt;/a&gt; with &lt;a href="http://wiki.apidesign.org/wiki/Annotations" title="Annotations"&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="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt; users simple looking &lt;a
    href="http://wiki.apidesign.org/wiki/Annotations" title="Annotations"&gt;annotations&lt;/a&gt; and let associated &lt;a href="http://wiki.apidesign.org/wiki/AnnotationProcessor" title="AnnotationProcessor"&gt;annotation processors&lt;/a&gt; do more advanced and more effective processing. As a result the developers have simple &lt;a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&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="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt; users). &lt;/p&gt;&lt;p&gt;The other project related to &lt;a href="http://wiki.apidesign.org/wiki/Annotations" title="Annotations"&gt;annotations&lt;/a&gt; that we are likely to incorporate during 2009 is our extended use of &lt;a
    href="http://jcp.org/en/jsr/detail?id=305" class="external text" rel="nofollow" title="http://jcp.org/en/jsr/detail?id=305"&gt;Annotations for Software Defect Detection&lt;/a&gt;. This is heavily based on the &lt;a href="http://jcp.org/en/jsr/detail?id=305" class="external text" rel="nofollow" title="http://jcp.org/en/jsr/detail?id=305"&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="http://wiki.apidesign.org/wiki/API"
    class="mw-redirect" title="API"&gt;APIs&lt;/a&gt; (more on that in &lt;a href="http://wiki.apidesign.org/wiki/Cooperating_with_Other_APIs" title="Cooperating with Other APIs"&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="http://wiki.apidesign.org/wiki/Annotations" title="Annotations"&gt;annotations&lt;/a&gt; (still recognizable by &lt;a href="http://wiki.apidesign.org/wiki/FindBugs" class="mw-redirect"
    title="FindBugs"&gt;FindBugs&lt;/a&gt; and co.). The hope is that our annotation will stay compatible even if the underlaying &lt;a href="http://jcp.org/en/jsr/detail?id=305" class="external text" rel="nofollow" title="http://jcp.org/en/jsr/detail?id=305"&gt;JSR 305&lt;/a&gt; slightly changes. Please find our &lt;a href="http://www.netbeans.org/nonav/issues/showattachment.cgi/73321/annotations_tmp.patch" class="external text" rel="nofollow"
    title="http://www.netbeans.org/nonav/issues/showattachment.cgi/73321/annotations_tmp.patch"&gt;current patch&lt;/a&gt; and comment here or in the &lt;a href="http://www.netbeans.org/issues/show_bug.cgi?id=137437" class="external text" rel="nofollow" title="http://www.netbeans.org/issues/show_bug.cgi?id=137437"&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="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&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="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt; with converting their code to new, non-deprecated style. We
    have a solution: Use &lt;a href="https://lang.dev.java.net/" class="external text" rel="nofollow" title="https://lang.dev.java.net/"&gt;Code Transformation Annotations&lt;/a&gt;! Dear [API] writers, let's adopt these annotations and use them in your &lt;a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&gt;API&lt;/a&gt;! They are completely standalone (&lt;a href="http://hudson.apidesign.org/job/net.java.lang/javadoc/" class="external text" rel="nofollow"
    title="http://hudson.apidesign.org/job/net.java.lang/javadoc/"&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="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans"&gt;NetBeans&lt;/a&gt; soon, hopefully for &lt;a href="http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009" title="TheYearOfAnnotations2009"&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="http://wiki.apidesign.org/wiki/Annotations" title="Annotations"&gt;Annotations&lt;/a&gt; are here to simplify life of &lt;a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API"&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="http://wiki.apidesign.org/wiki/TheYearOfAnnotations2009" title="TheYearOfAnnotations2009"&gt;year of annotations&lt;/a&gt;! &lt;/p&gt; Listen to our podcast &lt;audio&gt;&lt;source src="http://wiki.apidesign.org/images/b/b0/Apitip06-year-of-annotations.mp3" type="audio/mp3"&gt;&lt;/source&gt;&lt;/audio&gt; or &lt;a href="http://wiki.apidesign.org/images/b/b0/Apitip06-year-of-annotations.mp3" class="internal" title="Apitip06-year-of-annotations.mp3"&gt;download it&lt;/a&gt;. &lt;div
    id="commentForm"&gt;&lt;form action="http://wiki.apidesign.org/index.php?title=Special:ProcessComment" method="post"&gt;&lt;input type="hidden" name="titleKey" value="Blogs" id="titleKey" /&gt;&lt;input type="hidden" name="titleNS" value="0" id="titleNS" /&gt;&lt;p&gt;Name (required): &lt;br /&gt;&lt;input type="text" name="commenterName" id="commenterName" /&gt;&lt;/p&gt;&lt;p&gt;Website: &lt;br /&gt;&lt;input type="text" name="commenterURL" value="http://" id="commenterURL"
    /&gt;&lt;/p&gt;&lt;p&gt;Comment: &lt;br /&gt;&lt;textarea style="width: 30em;" rows="5" name="comment" id="comment"&gt;&lt;/textarea&gt;&lt;/p&gt; &lt;noscript&gt; &amp;lt;br /&gt; &amp;lt;textarea cols="40" name="recaptcha_challenge_field" rows="3"&gt;&amp;lt;/textarea&gt; &amp;lt;input name="recaptcha_response_field" type="hidden" value="manual_challenge" /&gt; &lt;/noscript&gt;&lt;p&gt;&lt;input type="submit" id="submit" value="Submit" /&gt;&lt;/p&gt;&lt;/form&gt;&lt;/div&gt; &lt;p&gt;--&lt;a
    href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach"&gt;JaroslavTulach&lt;/a&gt; 09:06, 12 December 2008 (UTC) &lt;/p&gt;</content:encoded>
    <dc:date>2008-12-12T09:06:00+00:00</dc:date>
  </item>
</rdf:RDF>

