<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.pwkf.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Personal Workflow Blog  - Comments</title>
  <link>http://blog.pwkf.org/</link>
  <atom:link href="http://blog.pwkf.org/feed/rss2/comments" rel="self" type="application/rss+xml"/>
  <description>Some thoughts I encounter during my working day in the J2EE land. Originally a blog about PWKF, an easy-to-use workflow solution, but I have less time to work on PWKF that what I had before as real life kicked in !</description>
  <language>en</language>
  <pubDate>Fri, 05 Mar 2010 07:21:00 +0100</pubDate>
  <copyright>(c) 2006-2009 - Steve Schnepp</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
    
    <item>
    <title>Sed is much slower than Perl, or not... - Steve Schnepp</title>
    <link>http://blog.pwkf.org/post/2009/11/Sed-is-much-slower-than-Perl-or-not...#c8642867</link>
    <guid isPermaLink="false">urn:md5:4d09f070c3937dd76fc776ce4613e42d</guid>
    <pubDate>Fri, 27 Nov 2009 19:51:40 +0100</pubDate>
    <dc:creator>Steve Schnepp</dc:creator>
    
    <description>&lt;p&gt;Thx.&lt;/p&gt;
&lt;p&gt;About i18n, I'm wondering if it's the local part or the encoding that cause
this massive slowdown...&lt;br /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Sed is much slower than Perl, or not... - Andreas Schamanek</title>
    <link>http://blog.pwkf.org/post/2009/11/Sed-is-much-slower-than-Perl-or-not...#c8642085</link>
    <guid isPermaLink="false">urn:md5:41b040db4d6826543acbc6e18529787e</guid>
    <pubDate>Fri, 27 Nov 2009 10:53:24 +0100</pubDate>
    <dc:creator>Andreas Schamanek</dc:creator>
    
    <description>&lt;p&gt;Indeed a very interesting finding. Thanks for sharing.&lt;br /&gt;
One cannot but repeat again and again how important it is to set locales
properly with every piece of code. Personally, I am no fan of i18n the command
line.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>A Simple Dns Server for a SOHO Network - Steve Schnepp</title>
    <link>http://blog.pwkf.org/post/2009/08/A-Simple-Dns-Server-for-a-SOHO-Network#c8565110</link>
    <guid isPermaLink="false">urn:md5:fe799bf3a89b1fe46b0ff2fe16fbd238</guid>
    <pubDate>Fri, 21 Aug 2009 14:31:35 +0200</pubDate>
    <dc:creator>Steve Schnepp</dc:creator>
    
    <description>&lt;p&gt;The things I discovered so far are :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Zeroconf&quot; rel=&quot;nofollow&quot;&gt;ZeroConf&lt;/a&gt; based
solutions, mostly using UPnP&lt;/li&gt;
&lt;li&gt;Have a small server like &lt;a href=&quot;http://en.wikipedia.org/wiki/Pdnsd&quot; rel=&quot;nofollow&quot;&gt;Pdnsd&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
  </item>
      
    
    <item>
    <title>Checked or Unchecked Exceptions for Legacy Code ? - Steve Schnepp</title>
    <link>http://blog.pwkf.org/post/2009/07/Checked-or-Unchecked-Exceptions-for-Legacy-Code#c8565103</link>
    <guid isPermaLink="false">urn:md5:e3b0d6f10d0e222dd47688bc66f05f90</guid>
    <pubDate>Fri, 21 Aug 2009 14:21:18 +0200</pubDate>
    <dc:creator>Steve Schnepp</dc:creator>
    
    <description>&lt;p&gt;Yeah, same here in Java :&lt;/p&gt;
&lt;pre&gt;
  try {
     processThing();
  } catch (Exception e) {
     // Do nothing
  }
&lt;/pre&gt;
&lt;p&gt;Don't ever underestimate the power of laziness in the same team as ignorance
:-)&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Checked or Unchecked Exceptions for Legacy Code ? - Krystof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/07/Checked-or-Unchecked-Exceptions-for-Legacy-Code#c8565087</link>
    <guid isPermaLink="false">urn:md5:b2e92e553dcf9dabb076e09265f40042</guid>
    <pubDate>Fri, 21 Aug 2009 14:00:47 +0200</pubDate>
    <dc:creator>Krystof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Whatever the choice of the developer, that’as better than these &amp;quot;checked&amp;quot;
exceptions:&lt;/p&gt;
&lt;pre&gt;
BEGIN
 (SQL code...)
EXCEPTIONS 
 WHEN OTHERS THEN NULL ;
END ;
&lt;/pre&gt;
&lt;p&gt;(People should be shot for that.)&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>A Simple Dns Server for a SOHO Network - Krystof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/08/A-Simple-Dns-Server-for-a-SOHO-Network#c8565085</link>
    <guid isPermaLink="false">urn:md5:e476dd308c5d65ca6dff47453682ac60</guid>
    <pubDate>Fri, 21 Aug 2009 13:51:37 +0200</pubDate>
    <dc:creator>Krystof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Me too.&lt;/p&gt;
&lt;p&gt;A problem: it means a dedicated server, always on, and another point of
failure (server down, no network). For a home network, I’d like to see it
integrated into the ADSL box (which is a DHCP server already). For the moment,
I live with manual hosts files.&lt;/p&gt;
&lt;p&gt;Does a distributed DNS exist, where any Linux/Win/Mac on the network can be
&amp;quot;the&amp;quot; DNS ?&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Databases: Efficient Denormalization with Views - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/05/Efficient-Denormalization-with-Views#c8514575</link>
    <guid isPermaLink="false">urn:md5:b86b6b58414527e3ddc8c70b5b2ec2eb</guid>
    <pubDate>Wed, 17 Jun 2009 07:53:38 +0200</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Sorry, I didn’t even see I was replying in another language :-))))&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Databases: Efficient Denormalization with Views - Steve Schnepp</title>
    <link>http://blog.pwkf.org/post/2009/05/Efficient-Denormalization-with-Views#c8513296</link>
    <guid isPermaLink="false">urn:md5:0ef82cce42c7dfdf099dbed922a221ee</guid>
    <pubDate>Tue, 16 Jun 2009 08:53:39 +0200</pubDate>
    <dc:creator>Steve Schnepp</dc:creator>
    
    <description>&lt;p&gt;Merci :-)&lt;/p&gt;
&lt;p&gt;For an english translation of these interesting comments, just use &lt;a href=&quot;http://translate.google.com/translate?js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;u=http%3A%2F%2Fblog.pwkf.org%2Fpost%2F2009%2F05%2FEfficient-Denormalization-with-Views&amp;amp;sl=fr&amp;amp;tl=en&amp;amp;history_state0=&quot; hreflang=&quot;en&quot; rel=&quot;nofollow&quot;&gt;Google translate&lt;/a&gt; services.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Databases: Efficient Denormalization with Views - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/05/Efficient-Denormalization-with-Views#c8512878</link>
    <guid isPermaLink="false">urn:md5:c12d87b74df729cc100352c2cb00e367</guid>
    <pubDate>Mon, 15 Jun 2009 18:40:52 +0200</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;J'ajoute aussi :&lt;/p&gt;
&lt;p&gt;Il y a un domaine où on dénormalise à fond délibérément : les systèmes
décisionnels (datawarehouse). Ce sont des systèmes séparés alimentés par les
diverses applications d'une entreprise. Les perfs à la lecture passent devant
les soucis de volumétrie ou de temps de mise à jour. Mais ladite mise à jour se
fait en batch nocturne ou ouikénal.&lt;/p&gt;
&lt;p&gt;On utilise rarement du code applicatif classique mais des outils spécialisés
(ETL) qui se chargent de malaxer les données depuis plusieurs applications,
calculer un milliard d'indicateurs, etc. Et avoir des vues déjà toute prêtes du
côté de l'application dont on pompe les données est effectivement une
bénédiction pour le développeur qui n'a pas à recoder les jointures dans son
outil (surtout si lesdites jointures sont subtiles...).&lt;/p&gt;
&lt;p&gt;Ces systèmes décisionnels (et les autres systèmes qui ont besoin de regarder
« sous le capot » au niveau SQL) sont une des raisons qui doivent
décourager de mettre de la logique (contraintes, cohérence statique, pas les
flux et process) ailleurs que dans la base. À l'inverse, il existe des plugins
(coûteux) pour les ETL courant pour lire par exemple dans SAP, l'archétype de
l'application qui interdit que quiconque lise dans la base sans passer par lui
(et ça donne ça :&lt;a href=&quot;http://www.courtois.cc/blogeclectique/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille&quot; title=&quot;http://www.courtois.cc/blogeclectique/index.php?post/2006/10/14/246-des-millions-de-lignes-a-travers-le-millefeuille&quot; rel=&quot;nofollow&quot;&gt;http://www.courtois.cc/blogeclectiq...&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Par contre, le code applicatif dans la base c'est pas glorieux pour
l'indépendance envers les fournisseurs de BdD, il faut savoir ce qui est
important pour son application, et coder au PPCD si on tient à avoir des
données « libres » - d'où des compromis dans les fonctionnalités
utilisables.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Databases: Efficient Denormalization with Views - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/05/Efficient-Denormalization-with-Views#c8512835</link>
    <guid isPermaLink="false">urn:md5:d91e6e06b7a7b74263eba66f91aef80f</guid>
    <pubDate>Mon, 15 Jun 2009 18:24:05 +0200</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Que dire sinon que tu parles d'or ? Je soufre actuellement (et le client
paye très cher au final) à cause d'une application dénormalisée à mort faite
par des gens qui doivent raisonner encore en fichiers plats et en Cobol.&lt;/p&gt;
&lt;p&gt;Ajoutons que stocker contraintes, vues utilitaires, même logique
fonctionnelle en base permet de garantir la cohérence contre toutes les
attaques contre la cohérence de la base (du point de vue du DBA) : développeurs
indisciplinés, doc pas claire, erreurs humaines, sous-traitance,
stagiaires...&lt;/p&gt;
&lt;p&gt;La dénormalisation doit être réservée aux cas extrêmes, et comme tu dis,
entre les vues simples et les vues matérialisées, on doit pouvoir simplifier le
développement. Attention, ces vues à mon sens ne doivent pas contenir de
logique fonctionnelle précise sinon on duplique ce qui existe ailleurs dans
l'appli (sauf à réutiliser, disons, des fonctions stockées fournies par cet
appli) ; je n'aime que les vues qui font des jointures naturelles (le long des
clés étrangères, comme n'importe qui a le réflexe de faire) sauf à coder pour
une application précise.&lt;/p&gt;
&lt;p&gt;À propos des jointures que l'on évite : c'est encore plus intéressant avec
les clés naturelles puisqu'on a souvent là deux ou trois colonnes par index
sinon plus, ce qui fait autant que l'on n'a pas à écrire en en oubliant. (Une
des raisons pour lesquelles je préfère les clés arbitraires.)&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Databases: Version History - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/03/Databases%3A-Version-History#c8458261</link>
    <guid isPermaLink="false">urn:md5:3a228c5d45981155c89c59e78f66b98b</guid>
    <pubDate>Thu, 09 Apr 2009 22:12:00 +0200</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Tom Kyte would say something along the lines of “if the answer is a trigger,
then you didn’t understand the question”, and I hate things that happen
magically under the hood too, but I can’t think of any other maintenable ways
of adding stamp dates in an application. I had to deal with it in Oracle
Applications, all tables had creation_date, update_login, with associated
logins and so on (but no history): it was a pain to add all these columns in
every bit of code.&lt;/p&gt;
&lt;p&gt;Anyway, the ddj article is very good. I have this recurring problem in my
current job, it’s nice to read something clean about the different options.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Should The URL Include a Date, or Not ? - Steve Schnepp</title>
    <link>http://blog.pwkf.org/post/2009/04/Should-The-URL-Include-a-Date-or-Not#c8458028</link>
    <guid isPermaLink="false">urn:md5:89de9f142ae68dc3e050d4ba990c5305</guid>
    <pubDate>Thu, 09 Apr 2009 16:04:13 +0200</pubDate>
    <dc:creator>Steve Schnepp</dc:creator>
    
    <description>True, and solved typically by software. Make me wonder why blogging engines
don't do it auto-magically... Actually, in mine, I can just erase the first
generated one, change it's modification date to now via the provided little
calendar widget, and the URL will be regenerated with the fresh, updated, date.
Unfortunately this translates itself to many manual steps that could be easily
automated in the engine (may be on a opt-in/out basis), and therefore not
forgotten.</description>
  </item>
      
    
    <item>
    <title>Should The URL Include a Date, or Not ? - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2009/04/Should-The-URL-Include-a-Date-or-Not#c8458024</link>
    <guid isPermaLink="false">urn:md5:74efba3be0eebdd9ec54e94647c512d3</guid>
    <pubDate>Thu, 09 Apr 2009 15:50:20 +0200</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;I've got blog entries that were &amp;quot;in progress&amp;quot; for years. Or still are.&lt;/p&gt;
&lt;p&gt;A day or a week precision is not important. It should be the date at the
(first) publication. Before that, the URL is not supposed to be published and
its URL can change.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Why Negative comments are better than positive ones - Krysztof von Murphy</title>
    <link>http://blog.pwkf.org/post/2008/05/26/Why-Negative-comments-are-better-than-positive-ones#c8378819</link>
    <guid isPermaLink="false">urn:md5:f2ca73c1991a4b0e7e6c5a21bf29341c</guid>
    <pubDate>Mon, 15 Dec 2008 21:49:05 +0100</pubDate>
    <dc:creator>Krysztof von Murphy</dc:creator>
    
    <description>&lt;p&gt;Mistakes in isolation are the worst when you don't know much about the
problem/the language/the algorithm/the business, you go full speed into the
wall.&lt;br /&gt;
On the contrary, a Master in isolation WILL achieve high productivity (that is,
until the next paradigm change, that he won’t see from his ivory tower).&lt;/p&gt;
&lt;p&gt;Another fact is that you really learn when you burn yourself. Of course,
letting others criticize your work is learning their experience without getting
burnt yourself. But if you always follow the advices from the others, you may
avoid valuable lessons: knowing WHO are the real gurus whose advice really
count; when knowing that YOU are right and all the others aren’t; and
recognizing that they were right indeed, but you had to try.&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Why Negative comments are better than positive ones - pieroxy</title>
    <link>http://blog.pwkf.org/post/2008/05/26/Why-Negative-comments-are-better-than-positive-ones#c8205664</link>
    <guid isPermaLink="false">urn:md5:fa4a95aad9796c89f392d933a13ea8f0</guid>
    <pubDate>Wed, 25 Jun 2008 15:51:52 +0200</pubDate>
    <dc:creator>pieroxy</dc:creator>
    
    <description>&lt;p&gt;You say &amp;quot;I actually prefer to have negative comments than positive ones...
at least when they are well argumented&amp;quot;&lt;/p&gt;
&lt;p&gt;You are (I think) mixing up &amp;quot;negative comment&amp;quot; and &amp;quot;criticism&amp;quot;.&lt;/p&gt;
&lt;p&gt;A negative comment that is well argumented is called a constructive
criticism. That's a criticism you can build on, by opposition to destructive
one that don't give you anything to improve.&lt;/p&gt;
&lt;p&gt;I think everyone agrees to the fact that constructive criticism is good!&lt;/p&gt;</description>
  </item>
      
</channel>
</rss>