<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3043278299381132360</id><updated>2012-02-16T05:05:57.696-08:00</updated><category term='The naturel language'/><category term='Programming languages'/><category term='aspect-oriented programming'/><category term='Welcome'/><title type='text'>Tribulation  Of a Programmer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jreeman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jreeman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jreeman</name><uri>http://www.blogger.com/profile/06048030991368885827</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3043278299381132360.post-5403811546907111269</id><published>2008-05-24T11:14:00.001-07:00</published><updated>2008-08-27T14:26:28.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aspect-oriented programming'/><category scheme='http://www.blogger.com/atom/ns#' term='The naturel language'/><title type='text'>First code snippet of the NAT language</title><content type='html'>Here is the first code snippet of a language (named &lt;i&gt;NAT&lt;/i&gt;) I try to build.&lt;br /&gt;&lt;br /&gt;This snippet is intended to represent the code that allow for a user to receive an email after passing an order.&lt;br /&gt;The &lt;i&gt;&lt;span class="nat-keyword"&gt;entrypoint&lt;/span&gt;&lt;/i&gt; applying to the &lt;i&gt;buy&lt;/i&gt; aspect allows to execute it as the first instruction of a program.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;div style="overflow:scroll; height: 500px;white-space: nowrap;"&gt;&lt;br /&gt;buy&lt;span class="nat-char"&gt;(&lt;/span&gt;"id-user", &lt;span class="nat-keyword"&gt;new&lt;/span&gt; Book&lt;span class="nat-char"&gt;(&lt;/span&gt;&lt;span class="nat-char"&gt;"&lt;/span&gt;id&lt;span class="nat-char"&gt;"&lt;/span&gt;&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nat-keyword"&gt;assembling&lt;/span&gt; &lt;span class="nat-type"&gt;Application&lt;/span&gt; &lt;span class="nat-char"&gt;{&lt;/span&gt;&lt;br /&gt;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-keyword"&gt;entrypoint&lt;/span&gt; buy&lt;br /&gt;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-keyword"&gt;after&lt;/span&gt; buy &lt;span class="nat-char"&gt;:&lt;/span&gt; sendEmail&lt;span class="nat-char"&gt;(&lt;/span&gt;userEmail&lt;span class="nat-char"&gt;,&lt;/span&gt; productName&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="nat-char"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nat-keyword"&gt;aspect&lt;/span&gt; buy &lt;span class="nat-char"&gt;(&lt;/span&gt;&lt;span class="nat-type"&gt;String&lt;/span&gt; user&lt;span class="nat-char"&gt;,&lt;/span&gt; &lt;span class="nat-type"&gt;Object&lt;/span&gt; boughtProduct&lt;span class="nat-char"&gt;)&lt;/span&gt; &lt;span class="nat-char"&gt;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-comm"&gt;// Perform here command of product for the user&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-comm"&gt;// ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-keyword"&gt;external-var&lt;/span&gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-type"&gt;User&lt;/span&gt; user &lt;span class="nat-char"&gt;=&lt;/span&gt; &lt;span class="nat-keyword"&gt;new&lt;/span&gt; &lt;span class="nat-type"&gt;User&lt;/span&gt;&lt;span class="nat-char"&gt;(&lt;/span&gt;user&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;         &amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;nbsp;&amp;nbsp;&amp;nbsp;userMail &lt;span class="nat-char"&gt;:&lt;/span&gt; user.email&lt;br /&gt;         &amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;nbsp;&amp;nbsp;&amp;nbsp;productName &lt;span class="nat-char"&gt;:&lt;/span&gt; boughtProduct&lt;br /&gt;&lt;span class="nat-char"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="nat-keyword"&gt;aspect&lt;/span&gt; sendEmail&lt;span class="nat-char"&gt;(&lt;/span&gt;&lt;span class="nat-type"&gt;String&lt;/span&gt; email&lt;span class="nat-char"&gt;,&lt;/span&gt; &lt;span class="nat-type"&gt;String&lt;/span&gt; message&lt;span class="nat-char"&gt;)&lt;/span&gt; &lt;span class="nat-char"&gt;{&lt;/span&gt;&lt;br /&gt;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-keyword"&gt;new&lt;/span&gt; &lt;span class="nat-type"&gt;Email&lt;/span&gt;&lt;span class="nat-char"&gt;(&lt;/span&gt;email&lt;span class="nat-char"&gt;,&lt;/span&gt; message&lt;span class="nat-char"&gt;)&lt;/span&gt;.send&lt;span class="nat-char"&gt;(&lt;/span&gt;&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="nat-char"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next time, we'll complicate our &lt;i&gt;passing order&lt;/i&gt; code and will introduced some line of the above snippet that have not been explain in this post:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-type"&gt;User&lt;/span&gt; user &lt;span class="nat-char"&gt;=&lt;/span&gt; &lt;span class="nat-keyword"&gt;new&lt;/span&gt; &lt;span class="nat-type"&gt;User&lt;/span&gt;&lt;span class="nat-char"&gt;(&lt;/span&gt;user&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;and &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nat-keyword"&gt;new&lt;/span&gt; &lt;span class="nat-type"&gt;Email&lt;/span&gt;&lt;span class="nat-char"&gt;(&lt;/span&gt;email&lt;span class="nat-char"&gt;,&lt;/span&gt; message&lt;span class="nat-char"&gt;)&lt;/span&gt;.send&lt;span class="nat-char"&gt;(&lt;/span&gt;&lt;span class="nat-char"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As we'll see these lines (the second one especially) are borrowed from object-oriented syntax and will &lt;u&gt;not&lt;/u&gt; be not supported in our new language &lt;i&gt;NAT&lt;/i&gt; : we'll see next time how one can build a robust language without these &lt;i&gt;object-oriented mechanisms&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;It'll be a great opportunity to extend our new language to make it more powerful and suitable to handle complex use cases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3043278299381132360-5403811546907111269?l=jreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jreeman.blogspot.com/feeds/5403811546907111269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3043278299381132360&amp;postID=5403811546907111269&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/5403811546907111269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/5403811546907111269'/><link rel='alternate' type='text/html' href='http://jreeman.blogspot.com/2008/05/first-snippet-of-naturel-code.html' title='First code snippet of the &lt;i&gt;NAT&lt;/i&gt; language'/><author><name>Jreeman</name><uri>http://www.blogger.com/profile/06048030991368885827</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3043278299381132360.post-1978492800970275369</id><published>2007-10-27T10:08:00.001-07:00</published><updated>2008-05-25T08:12:22.403-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming languages'/><title type='text'>Knocking citation...</title><content type='html'>In the time of object programming euphory, this knocking citation of &lt;a href="http://en.wikipedia.org/wiki/Edsger_Dijkstra"&gt;Edsger Dijkstra&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;« Object-oriented programming is an exceptionally bad idea which could only have originated in California. »&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;will certainly touch all of the today developers...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3043278299381132360-1978492800970275369?l=jreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jreeman.blogspot.com/feeds/1978492800970275369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3043278299381132360&amp;postID=1978492800970275369&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/1978492800970275369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/1978492800970275369'/><link rel='alternate' type='text/html' href='http://jreeman.blogspot.com/2007/10/citation-intressante.html' title='Knocking citation...'/><author><name>Jreeman</name><uri>http://www.blogger.com/profile/06048030991368885827</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3043278299381132360.post-8061696402936072526</id><published>2007-06-10T08:36:00.000-07:00</published><updated>2008-05-24T11:37:12.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming languages'/><title type='text'>Naive tests about cache efficiency</title><content type='html'>First I have to tell to you that I'm French and this is my first post in English, so I apologize in advance for my grammar or vocable... but I hope that this way I could exercice my language skills and also that you'll find nice information related with programming.&lt;br /&gt;&lt;br /&gt;So let's go for my first post that is about showing the performance gain when one caches data.&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I wrote 3 JAVA tests  :&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;test 1 : object instanciation and initialization with data from a MySQL table&lt;br /&gt;&lt;li&gt;test 2 : deserialization of objects that has been previously were persisted on the &lt;i&gt;file system&lt;/i&gt;&lt;br /&gt;&lt;li&gt;test 3 : deserialization of object persisted on a database table&lt;/ul&gt;&lt;br /&gt;Here are the results, they are expressed in percent, divided by the time obtained for a simple instanciation and initialization (&lt;i&gt;new&lt;/i&gt; operator, and setter) :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;test 1 : &lt;B&gt;x 6&lt;/B&gt;&lt;br /&gt;&lt;li&gt;test 2 : &lt;B&gt;x 10&lt;/B&gt;&lt;br /&gt;&lt;li&gt;test 3 : &lt;B&gt;x 2&lt;/B&gt;&lt;/ul&gt;&lt;br /&gt;One see that the retrieval of data from a database is not so bad compared to the test 2 where data are deserialized from a file system.&lt;br /&gt;&lt;br /&gt;The better strategy is to use of third party system like a database to cached data and the performance gain is a 2 factor.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3043278299381132360-8061696402936072526?l=jreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jreeman.blogspot.com/feeds/8061696402936072526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3043278299381132360&amp;postID=8061696402936072526&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/8061696402936072526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/8061696402936072526'/><link rel='alternate' type='text/html' href='http://jreeman.blogspot.com/2007/06/tests-naifs-sur-les-apports-dun-cache.html' title='Naive tests about cache efficiency'/><author><name>Jreeman</name><uri>http://www.blogger.com/profile/06048030991368885827</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3043278299381132360.post-1313670746004867192</id><published>2007-05-09T04:00:00.000-07:00</published><updated>2008-05-25T02:32:09.670-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Welcome'/><title type='text'>Welcome</title><content type='html'>I'm French and work as a developper at &lt;a href="http://www.smile.fr"&gt;Smile&lt;/a&gt; a french company offering services in web application developement.&lt;br /&gt;&lt;br /&gt;I hope, you'll find nice informations related with programming. Please notice that English is not my mother language and this blog also let me exercice my language skills in English, then don't be too exigent about my grammar :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3043278299381132360-1313670746004867192?l=jreeman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jreeman.blogspot.com/feeds/1313670746004867192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3043278299381132360&amp;postID=1313670746004867192&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/1313670746004867192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3043278299381132360/posts/default/1313670746004867192'/><link rel='alternate' type='text/html' href='http://jreeman.blogspot.com/2007/05/welcome-in-my-blog.html' title='Welcome'/><author><name>Jreeman</name><uri>http://www.blogger.com/profile/06048030991368885827</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
