<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://batmat.net/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Blogounage - programmation</title>
  <link>http://batmat.net/blog/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Sat, 28 Jan 2012 08:26:48 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Comment connaître la provenance d'une classe programmatiquement en Java</title>
    <link>http://batmat.net/blog/post/2010/01/13/Comment-connaitre-la-provenance-dune-classe-programmatiquement-en-java</link>
    <guid isPermaLink="false">urn:md5:385aa81317cbad2421f8b6bee62487eb</guid>
    <pubDate>Wed, 13 Jan 2010 18:07:00 +0100</pubDate>
    <dc:creator>batmat</dc:creator>
        <category>Technique</category>
        <category>java</category><category>programmation</category>    
    <description>    &lt;p&gt;Il est possible par programmation de savoir d'où vient une classe&amp;nbsp;: un jar&amp;nbsp;? un répertoire&amp;nbsp;? autre&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Use case classique&amp;nbsp;: vous pensez (et devez) ne plus avoir les commons-logging nulle part dans votre classpath, parce que vous êtes (intelligemment :-)) passés à &lt;a href=&quot;http://www.slf4j.org&quot;&gt;SLF4J&lt;/a&gt;. Malgré cela, il semble que cette fichue classe soit toujours trouvée, mais vous n'arrivez pas à savoir dans quel jar (ou quel répertoire si vous travaillez directement avec les .class). Résultat, ça vous fout un bazar monstre dans la configuration de vos logs. Certains continuent à apparaitre alors que vous avez demandé à ce qu'ils ne soient pas affichés...&lt;/p&gt;


&lt;p&gt;Le code est un peu sioux, alors je le mets ici au cas où ça vous servirait&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;geshi&quot;&gt;&lt;code class=&quot;java&quot;&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span class=&quot;me1&quot;&gt;out&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MaClasse.&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getProtectionDomain&lt;/span&gt;&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;me1&quot;&gt;getCodeSource&lt;/span&gt;&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;me1&quot;&gt;getLocation&lt;/span&gt;&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;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;MAJ du 15/03/2010&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Suite à l'incompréhension ci-dessous, voici quelques exemples pour illustrer ce que fait ce code&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Le code&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;geshi&quot;&gt;&lt;code class=&quot;java&quot;&gt;&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span class=&quot;me1&quot;&gt;out&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;org.&lt;span class=&quot;me1&quot;&gt;springframework&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mail&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;MailSender&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getProtectionDomain&lt;/span&gt;&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;me1&quot;&gt;getCodeSource&lt;/span&gt;&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;me1&quot;&gt;getLocation&lt;/span&gt;&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;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&lt;a href=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;bntl=1&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span class=&quot;me1&quot;&gt;out&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MyJunitTest.&lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getProtectionDomain&lt;/span&gt;&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;me1&quot;&gt;getCodeSource&lt;/span&gt;&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;me1&quot;&gt;getLocation&lt;/span&gt;&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;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Affiche sous Windows&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
file:/C:/m2repository/org/springframework/spring-context-support/2.5.6/spring-context-support-2.5.6.jar
file:/C:/tests/myproject-core/target/test-classes/
&lt;/pre&gt;


&lt;p&gt;J'espère que l'utilité est un peu plus claire à présent.&lt;/p&gt;</description>
    
    
    
          <comments>http://batmat.net/blog/post/2010/01/13/Comment-connaitre-la-provenance-dune-classe-programmatiquement-en-java#comment-form</comments>
      <wfw:comment>http://batmat.net/blog/post/2010/01/13/Comment-connaitre-la-provenance-dune-classe-programmatiquement-en-java#comment-form</wfw:comment>
      <wfw:commentRss>http://batmat.net/blog/feed/rss2/comments/315</wfw:commentRss>
      </item>
    
  <item>
    <title>The Mythical 5%</title>
    <link>http://batmat.net/blog/post/2008/01/04/The-Mythical-5</link>
    <guid isPermaLink="false">urn:md5:a797fe8b1c029c2d6b757a4968f554ca</guid>
    <pubDate>Fri, 04 Jan 2008 09:47:00 +0100</pubDate>
    <dc:creator>batmat</dc:creator>
        <category>Technique</category>
        <category>bruce eckel</category><category>loi de brooks</category><category>programmation</category>    
    <description>    &lt;p&gt;Via &lt;a href=&quot;http://infoq.com&quot;&gt;InfoQ&lt;/a&gt;, voici un &lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=221622&quot; hreflang=&quot;en&quot;&gt;article de Bruce Eckel sur l'informatique aujourd'hui&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il commence par parler du &quot;fascinant&quot; &lt;q&gt;5% des programmeurs sont 20 fois plus productifs que les autres 95%.&lt;/q&gt;, et élargit ensuite au monde de l'informatique&amp;nbsp;: jeune, immature, ...&lt;/p&gt;


&lt;p&gt;Note&amp;nbsp;: Le titre de l'article de Bruce fait très certainement référence au célèbre livre &quot;The Mythical Man-Month&quot; de Frederick P. Brooks.
C'est de ce livre qu'est issu la plus célèbre encore &quot;loi de Brooks&quot;&amp;nbsp;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Ajouter des ressources à un projet en retard le rend encore plus en retard&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Je vous conseille aussi la lecture de cet ouvrage, ça se lit très bien et c'est très instructif.&lt;/p&gt;</description>
    
    
    
          <comments>http://batmat.net/blog/post/2008/01/04/The-Mythical-5#comment-form</comments>
      <wfw:comment>http://batmat.net/blog/post/2008/01/04/The-Mythical-5#comment-form</wfw:comment>
      <wfw:commentRss>http://batmat.net/blog/feed/rss2/comments/281</wfw:commentRss>
      </item>
    
</channel>
</rss>
