<?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-5797202</id><updated>2011-12-26T10:49:50.220+01:00</updated><category term='dell'/><category term='support'/><title type='text'>Random thoughts by Ceki Gülcü</title><subtitle type='html'>Blog? Why do people use words containing 'log' so often?</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5797202.post-8284544333035192945</id><published>2011-11-29T16:17:00.092+01:00</published><updated>2011-12-26T10:49:50.226+01:00</updated><title type='text'>Confusing intent and outcome</title><summary type='text'>Mikeal Rogers recently published a blog entry entitled "Apache considered harmful". He writes: The open source section of my brain was seeded and curated by Ted Leung, long time ASF member, and it is this ethos, Community &gt; Code, that I've dedicated a significant portion of my life to. It is this ethos that has led me to the hard conclusion that as the world has changed Apache has become a net </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8284544333035192945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8284544333035192945' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8284544333035192945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8284544333035192945'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2011/11/confusing-intent-and-outcome.html' title='Confusing intent and outcome'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-617446186132158200</id><published>2011-11-24T15:24:00.105+01:00</published><updated>2011-11-30T11:30:04.254+01:00</updated><title type='text'>On fear of insects and insecticides</title><summary type='text'>On a recent flight back home from a tropical island, the captain announced that a stewardess was about to spray the cabin with insecticide. "French authorities require that the cabin be sprayed with insecticide on departure. The product is harmless to humans and was approved by the appropriate authorities." A few seconds after the announcement, a stewardess gleefully walked along the length of </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/617446186132158200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=617446186132158200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/617446186132158200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/617446186132158200'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2011/11/on-fear-of-insects-and-insecticides.html' title='On fear of insects and insecticides'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lUyFe9jky8Y/Ts6GEqHr4gI/AAAAAAAAACw/tm5dA8nt-0w/s72-c/aircraft%2Binsecticide.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-7903684839431534885</id><published>2011-08-26T11:01:00.016+02:00</published><updated>2011-12-12T13:54:28.965+01:00</updated><title type='text'>Is Scala worthy of your trust?</title><summary type='text'>The Scala language offers significant improvements over the Java language with traits, higher order functions and type inference among other powerful features. At the same time, Scala still allows for seamless import and use of existing classes written in Java. You can migrate to Scala piecemeal, for example in your test classes at first and then migrate larger and larger chunks of code. However,</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/7903684839431534885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=7903684839431534885' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7903684839431534885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7903684839431534885'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2011/08/is-scala-trustworthy.html' title='Is Scala worthy of your trust?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-2918678119595115322</id><published>2010-10-30T20:43:00.032+02:00</published><updated>2011-03-02T21:35:10.902+01:00</updated><title type='text'>Using Groovy and Scala, my first year</title><summary type='text'>On GroovyAfter programming almost exclusively in Java for the last 14 years, I picked up Groovy during the spring of 2010. If my memory serves me correctly, it took me about a week. Groovy is a powerful and worthy language. Many things which are hard to do in Java are easy in Groovy. The ExpandoMetaClass makes it very easy to write amazingly powerful DSLs in a jiffy. To give you a concrete </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/2918678119595115322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=2918678119595115322' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/2918678119595115322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/2918678119595115322'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/10/using-groovy-and-scala-first-year.html' title='Using Groovy and Scala, my first year'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-976730853190292089</id><published>2010-05-25T18:09:00.017+02:00</published><updated>2010-06-03T10:45:03.235+02:00</updated><title type='text'>Committocracy as an alternative for conflict resolution in OSS projects</title><summary type='text'>I my previous post I presented an unsparing criticism of Apache's voting procedures. In this post, I describe a new voting procedure where each committer's voting rights derive from the number of commits made by the committer in question. To avoid rewarding micro-commits, only a single commit-point is awarded per day for one or more commits. No points are awarded for a committer who makes no </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/976730853190292089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=976730853190292089' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/976730853190292089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/976730853190292089'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/05/committocracy-as-alternative-for.html' title='Committocracy as an alternative for conflict resolution in OSS projects'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-345630345494827351</id><published>2010-05-21T10:37:00.055+02:00</published><updated>2011-01-29T20:46:34.886+01:00</updated><title type='text'>The forces and vulnerabilities of the Apache model</title><summary type='text'>The initial title for this article was "Why the Apache model sucks". It would have been a catchier title but would taint my arguments with triviality. But it was the first title that came to my mind and you should be aware of that.I have written about Apache in the past past and the present post is a rehash with a slightly different emphasis. Before laying further criticism at the altar of the "</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/345630345494827351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=345630345494827351' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/345630345494827351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/345630345494827351'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/05/forces-and-vulnerabilites-of-apache.html' title='The forces and vulnerabilities of the Apache model'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-4755468024602614765</id><published>2010-05-06T13:02:00.029+02:00</published><updated>2010-05-13T19:18:59.365+02:00</updated><title type='text'>Encouters in Groovy I</title><summary type='text'>You can take any .java file and rename it .groovy and the result will be valid Groovy. Compared to other contenders in the new-Java space such as Scala or Clojure, the syntactical-backward compatibility offered by Groovy is undoubtedly an important and possibly a decisive advantage.Let me demonstrate. Here is a very simple unit test measuring the performance of a trivial arithmetic operation.// </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/4755468024602614765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=4755468024602614765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4755468024602614765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4755468024602614765'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/05/encouters-in-groovy-i.html' title='Encouters in Groovy I'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8531460845513649908</id><published>2010-04-05T13:55:00.012+02:00</published><updated>2010-04-05T16:32:57.382+02:00</updated><title type='text'>Hosni Mobarak and bottled water</title><summary type='text'>Egyptian President Hosni Mubarak was recently operated in Germany to have his gall bladder removed. Hosni Mubarak assumed presidency on October 14th 1981 after the assassination of President Anwar el-Sadat. At the time, many had predicted that Mubarak's rule would not last and he'd be ousted in no time. That was almost 30 years and Mubarak is still the President of Egypt. Of course, Mubarak was </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8531460845513649908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8531460845513649908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8531460845513649908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8531460845513649908'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/04/hosni-mobarak-and-bottled-water.html' title='Hosni Mobarak and bottled water'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-4533534081900636539</id><published>2010-03-31T22:58:00.013+02:00</published><updated>2010-03-31T23:36:38.115+02:00</updated><title type='text'>A middle-class man's conditional logging configuration</title><summary type='text'>In an earlier post I described how one adapt a single configuration file for use in development as well as production environments. At those prehistoric times, that is January 2010, logback did not support conditional (if-then-else) configuration statements. So we made use of a default substitution value to do the the trick.However, as of version 0.9.20 (to be released early April), logback </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/4533534081900636539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=4533534081900636539' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4533534081900636539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4533534081900636539'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/03/middle-class-mans-conditional-logging.html' title='A middle-class man&apos;s conditional logging configuration'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-3399144172077988276</id><published>2010-03-28T01:10:00.010+01:00</published><updated>2010-03-29T12:32:04.133+02:00</updated><title type='text'>Dealing with ignorable errors</title><summary type='text'>In real-world applications assembled out of heterogeneous parts or interacting with systems beyond your control, error conditions are bound to occur. Often times, some of these errors can be safely ignored. For example, the qos.ch e-commerce site is crawled by googlebot which for some unknown reason insists on visiting invalid URLs about 30-50 times a day. These invalid requests cause the wicket </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/3399144172077988276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=3399144172077988276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3399144172077988276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3399144172077988276'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/03/dealing-with-ignorable-errors.html' title='Dealing with ignorable errors'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8326425971958076667</id><published>2010-01-22T23:33:00.010+01:00</published><updated>2010-03-31T23:02:56.421+02:00</updated><title type='text'>A poor man's conditional logging configuration</title><summary type='text'>It is often desirable to keep the same logging configuration file during development and production environments. (I use logback as my logging framework.)Ideally, one would check whether the application was running on the production environment and enable parts of the configuration file accordingly. Unfortunately, logback does not support conditional (if-then-else) configuration </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8326425971958076667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8326425971958076667' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8326425971958076667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8326425971958076667'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/01/poor-mans-condinatio-logging.html' title='A poor man&apos;s conditional logging configuration'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6094090949076709019</id><published>2010-01-22T19:20:00.011+01:00</published><updated>2010-01-22T19:38:24.298+01:00</updated><title type='text'>301 redirects with Wicket</title><summary type='text'>Sometimes a web-page needs to redirect to a new address. A 301 redirect means that a page moved permanently, which in most cases is indistinguishable from a 302 "moved temporarily" redirect. Search engines however react differently to a 301 response than to a 302 response. If a page has moved permanently, sending a 301 will cause the search engine to update its index to the new page. For "</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6094090949076709019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6094090949076709019' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6094090949076709019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6094090949076709019'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/01/301-redirects-with-wicket.html' title='301 redirects with Wicket'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-1219609879668762676</id><published>2010-01-20T20:56:00.009+01:00</published><updated>2010-01-20T21:11:40.197+01:00</updated><title type='text'>Marker based email notifications</title><summary type='text'>Part of the SLF4J API, Markers allow developers to add meta-data to log statements. Not all errors are equal, with some errors being more unusual than others.  If you wish to color log statement related to "unusual" errors you could write:  Marker unusualMarker = MarkerFactory.getMarker("UNUSUAL");  Logger logger = LoggerFactory.getLogger("myPackage.myClass");  logger.error(unusualMarker, "An </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/1219609879668762676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=1219609879668762676' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1219609879668762676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1219609879668762676'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2010/01/marker-based-email-notifications.html' title='Marker based email notifications'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-2308700850183969365</id><published>2009-12-30T12:42:00.006+01:00</published><updated>2010-01-02T20:55:08.345+01:00</updated><title type='text'>Not allowed to stand up before landing</title><summary type='text'>According to new flight safety regulations, passengers are not allowed to stand up and go to the restroom one hour prior to landing of the aircraft. How about handcuffing all passengers and tie them to their seats so that they do not budge? Better yet, how about restricting air travel on a need-to-fly basis? Surely, that would improve security...The USA, as a civilized western democracy, should </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/2308700850183969365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=2308700850183969365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/2308700850183969365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/2308700850183969365'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/12/not-allowed-to-stand-up-before-landing.html' title='Not allowed to stand up before landing'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6985128000883904282</id><published>2009-12-17T17:04:00.002+01:00</published><updated>2009-12-17T17:15:10.475+01:00</updated><title type='text'>Eclipse template for creating new loggers</title><summary type='text'>Here is the Eclipse template I use for creating new logger fields in my code.${:import(org.slf4j.Logger, org.slf4j.LoggerFactory)}Logger logger = LoggerFactory.getLogger(${enclosing_type}.class);${cursor}The import and the logger declaration are on the same line, i.e. without a separating new line character, whereas ${cursor} is placed on a new line.To insert the template in Eclipse, go to Window</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6985128000883904282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6985128000883904282' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6985128000883904282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6985128000883904282'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/12/eclipse-template-for-creating-new.html' title='Eclipse template for creating new loggers'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8869910210095886117</id><published>2009-11-27T15:31:00.008+01:00</published><updated>2009-11-28T10:04:06.725+01:00</updated><title type='text'>Just got my Rhino from Emperor Linux</title><summary type='text'>After about 6 years of hesitation, I got a new laptop. The old one was getting embarrassingly slow. Given my past horrible experiences with Dell's customer service, I had decided to buy from another manufacturer. Then, I stumbled upon EmperorLinux which delivers Linux based laptops on top of laptops from Lenovo, Sony and Dell. When contacted, the salesperson at EmperorLinux seemed very </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8869910210095886117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8869910210095886117' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8869910210095886117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8869910210095886117'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/11/just-got-my-rhino-from-emperor-linux.html' title='Just got my Rhino from Emperor Linux'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-3135195985869760653</id><published>2009-10-23T11:22:00.011+02:00</published><updated>2009-10-23T14:56:46.948+02:00</updated><title type='text'>Page links with Wicket</title><summary type='text'>The default urls created by Wicket do not look very nice. For instance, let IndexPage be the home page of our ShopApplication. Assuming shop is your application's context name and wicket the path where you mapped the Wicket filter, then by default, the url for the IndexPage will be akin tohttp://somehost/shop/wicket/index?wicket:interface=:0:headerPanel:index2::ILinkListener::. I said ugly didn't</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/3135195985869760653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=3135195985869760653' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3135195985869760653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3135195985869760653'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/10/page-links-with-wicket.html' title='Page links with Wicket'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-572281782617071544</id><published>2009-10-16T20:11:00.004+02:00</published><updated>2009-10-20T12:45:18.332+02:00</updated><title type='text'>IDEA open sourced</title><summary type='text'>Coming across Cedric Beust's comments on IDEA going open-source, I thought I'd chime in. Cedric makes valid points, in particular about the unfulfilled expectations after open sourcing a product. As he points out, Jetbrains is unlikely to be flooded with patches and additions from the community, floating them back to the top.Cedric also correctly identifies that open-sourcing software is an </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/572281782617071544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=572281782617071544' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/572281782617071544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/572281782617071544'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/10/idea-open-sourced.html' title='IDEA open sourced'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-7037125542786307256</id><published>2009-09-02T11:38:00.009+02:00</published><updated>2009-09-02T18:53:35.896+02:00</updated><title type='text'>How the US is burning the furniture without even realizing it</title><summary type='text'>The US budget deficit has reached astronomical proportions. Admittedly, the same holds true in European countries. However, European economies attract less of the world's savings than the US does.According to various sources, in 1945 only 10% of the US government's spending was deemed incompressible, in 2009 approx. 80% of government spending is qualified as such. Given that it is politically </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/7037125542786307256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=7037125542786307256' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7037125542786307256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7037125542786307256'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/09/how-us-is-burning-furniture-without.html' title='How the US is burning the furniture without even realizing it'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8927767113993085434</id><published>2009-08-15T21:05:00.015+02:00</published><updated>2009-08-20T20:01:34.758+02:00</updated><title type='text'>GIT migration</title><summary type='text'>A few years ago, I watched Linus Torwald's presentation on  git. I was so thoroughly put off by his style that I did not give git another thought for several years, that is until recently. Hearing more and more about git, I recently raised the question of migrating the logback project to git on our mailing list and the ensuing discussion had me convinced. Here is a recount of the steps I've taken</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8927767113993085434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8927767113993085434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8927767113993085434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8927767113993085434'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/08/git-migration.html' title='GIT migration'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8735979110197560913</id><published>2009-07-14T10:27:00.004+02:00</published><updated>2009-07-14T10:33:49.187+02:00</updated><title type='text'>The quest for an AC Adapter for my Dell laptop (Part II)</title><summary type='text'>The UPS delivery person left an InfoNotice(SM) at our door step on Friday the 10th July. The InfoNotice contained a tracking number which could be used at the UPS web-site to change the parameters of delivery. One of the proposed options was to return the package to the sender, which I quickly selected. By returning the erroneous package, Dell would get their merchandise back, proceed to </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8735979110197560913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8735979110197560913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8735979110197560913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8735979110197560913'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/07/quest-for-ac-adapter-for-my-dell-laptop.html' title='The quest for an AC Adapter for my Dell laptop (Part II)'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6028256928290187673</id><published>2009-07-06T22:50:00.005+02:00</published><updated>2009-07-09T10:39:35.227+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='dell'/><title type='text'>The quest for an AC Adapter for my Dell laptop (Part I)</title><summary type='text'>The AC adapter for my laptop from Dell recently had its cable severely twisted so as to stop charging the laptop. The adapter is marked as belonging to the PA-9 family. I called Dell technical support and explained the problem to a technician. I gave him the serial number of my laptop which identified both my laptop and the buyer (me). He said that they could ship a replacement adapter forthwith.</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6028256928290187673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6028256928290187673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6028256928290187673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6028256928290187673'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/07/quest-for-ac-adapter-part-i.html' title='The quest for an AC Adapter for my Dell laptop (Part I)'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-142935542263998955</id><published>2009-06-05T15:51:00.024+02:00</published><updated>2011-11-09T15:12:37.567+01:00</updated><title type='text'>Biased Locking in Java SE 6.0</title><summary type='text'>As a result of the ensuing discussion in response to this blog entry, it is now pretty clear that the issue described herein is not specific to Java SE 6. Please do not reach any conclusions without reading the entire post, including the comments, and especially the comments.Joern Huxhorn recently informed logback developers that locking in Java SE 6.0 was unfair.  Indeed, Java documentation </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/142935542263998955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=142935542263998955' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/142935542263998955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/142935542263998955'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/06/biased-locking-in-java-se-60.html' title='Biased Locking in Java SE 6.0'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-5461562974381653263</id><published>2009-05-23T13:21:00.007+02:00</published><updated>2009-05-25T10:00:30.488+02:00</updated><title type='text'>The Earth having an indigestion</title><summary type='text'>We humans share a very flawed sense of proportion. We tend to consistently underestimate the relevance of certain events and overestimate others. Social psychologists refer to the general phenomena as cognitive bias. Environmentalists stay awake at night worrying about global warming. One of the worst-case scenarios of global warming involves the release of methane, a greenhouse gas 21 times more</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/5461562974381653263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=5461562974381653263' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5461562974381653263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5461562974381653263'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/05/earth-having-indigestion.html' title='The Earth having an indigestion'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6235142600697593309</id><published>2009-05-11T10:15:00.022+02:00</published><updated>2009-06-05T17:28:11.996+02:00</updated><title type='text'>Burrowing Animal as defined in R&amp;A Golf Rules</title><summary type='text'>The R&amp;A takes its name from The Royal and Ancient Golf Club of St Andrews, which has continuous records dating back to its foundation in 1754. The first thing that struck me about the R&amp;A rules booklet was its length, over 200 pages (French edition). The rules are presented in a dense and legalistic language. For example, here is the definition of "Burrowing Animal"A "burrowing animal" is an </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6235142600697593309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6235142600697593309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6235142600697593309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6235142600697593309'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/05/burrowing-animal.html' title='Burrowing Animal as defined in R&amp;A Golf Rules'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-321285630926454563</id><published>2009-04-23T16:01:00.001+02:00</published><updated>2009-04-23T16:03:31.171+02:00</updated><title type='text'>Selling a car in Switzerland</title><summary type='text'>Like most people, I have an uncanny tendency to be generous in criticism and frugal in praise. However, I think that the vehicle registry system in Switzerland, compared to neighboring countries, is so simple and well designed that it merits a few paragraphs of kudos.Every car in Switzerland needs to be registered with the Vehicle Registration Service (VRS). As proof of such registration, the car</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/321285630926454563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=321285630926454563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/321285630926454563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/321285630926454563'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/04/selling-car-in-switzerland.html' title='Selling a car in Switzerland'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6782883924824370620</id><published>2009-01-06T11:14:00.006+01:00</published><updated>2009-01-07T11:38:33.190+01:00</updated><title type='text'>Indoctrination and anger</title><summary type='text'>The front page of every single European newspaper carries news about Israeli military operations in Gaza. At best the titles talk about a military "offensive" and at worst about "crimes against humanity".While most reasonable people will grant Israel the right of self-defense, at least in principle, there seems to be an emerging consensus about the disproportionality of Israel's reaction. </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6782883924824370620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6782883924824370620' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6782883924824370620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6782883924824370620'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2009/01/indoctrination-and-anger.html' title='Indoctrination and anger'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-916850238609337345</id><published>2008-12-22T11:14:00.010+01:00</published><updated>2008-12-22T23:26:44.712+01:00</updated><title type='text'>Is Apache a meritocracy?</title><summary type='text'>Yes, it is, but in my humble opinion, not consistently. Apache defines itself as a meritocracy. At the same time, the foundation's mission statement includes references to "collaborative software development". If I had to reduce the ASF into a single word, it would be collaboration.The ASF is exemplary in the way it welcomes newcomers. Users are encouraged to post questions, however trivial, and </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/916850238609337345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=916850238609337345' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/916850238609337345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/916850238609337345'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/12/is-apache-meritocracy.html' title='Is Apache a meritocracy?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6515106861936154068</id><published>2008-11-18T21:41:00.004+01:00</published><updated>2008-11-28T14:21:07.811+01:00</updated><title type='text'>Interest in logback</title><summary type='text'>One of the niceties of open-source development is that once in a while people will make valuable contributions. By valuable contribution, I mean code that shows intimate knowledge and understanding of the software. In my estimation, in the log4j project, we got one valuable contribution every semester, roughly speaking. In my astonishment, in the logback project, log4j's successor, we get a </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6515106861936154068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6515106861936154068' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6515106861936154068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6515106861936154068'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/11/interest-in-logback.html' title='Interest in logback'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-3543279439438199724</id><published>2008-08-19T13:07:00.004+02:00</published><updated>2008-08-20T13:00:35.123+02:00</updated><title type='text'>HTH or HTT?</title><summary type='text'>Assuming we've got a long random string composed of the letters H and T, and only those two letters, which of the patterns "HTH" or "HTT" (overlap not allowed) do you think will occur more frequently?For example, if overlap is not allowed, in the string "HTHTHTTH", both "HTH" and "HTT" occur once. However, if we allow for overlap, then "HTH" occurs twice and "HTT" once.So, the question is, which </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/3543279439438199724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=3543279439438199724' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3543279439438199724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/3543279439438199724'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/08/hth-or-htt.html' title='HTH or HTT?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8541856872663292091</id><published>2008-08-01T20:25:00.002+02:00</published><updated>2008-08-02T14:41:53.912+02:00</updated><title type='text'>Subversion+Eclipse on Linux</title><summary type='text'>I usually develop on Windows on a fairly fast PC. However, our continuous integration server runs on Linux. For some reason, some tests were failing intermittently on the integration server. Now, since the integration server was heavily used by other processes and the tests in question were time-sensitive, the next step was to fix whatever bug there was by developing on the integration server. </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8541856872663292091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8541856872663292091' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8541856872663292091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8541856872663292091'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/08/subversioneclipse-on-linux.html' title='Subversion+Eclipse on Linux'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6848463966265198532</id><published>2008-07-29T14:40:00.002+02:00</published><updated>2008-07-29T14:42:36.084+02:00</updated><title type='text'>Android, the next big thing</title><summary type='text'>While clients all over the world are lining up to buy iPhones, the next big hit make come from Google, in the form of Android. The iPhone is a tightly controlled platform whereas the Android platform is open. This difference may be deemed too geeky to make a difference. I beg to differ. When people realize that they can make VoIP calls using nearby WiFi networks for free, or VoIP-to-PSTN calls </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6848463966265198532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6848463966265198532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6848463966265198532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6848463966265198532'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/07/android-next-big-thing.html' title='Android, the next big thing'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-5669297575939957649</id><published>2008-07-17T14:41:00.007+02:00</published><updated>2008-07-17T20:52:09.785+02:00</updated><title type='text'>Putting a face on evil</title><summary type='text'>Samir Kuntar is the perpetrator of a truly gruesome act of violence committed almost 30 years ago. He was released yesterday, on July 16, 2008 as part of a prisoner swap between Israel and Hezbollah.  While the negotiations leading to his release are the subject of controversy, I am also quite concerned and shocked by the hero's welcome he received in Lebanon.  The guy murdered a little girl with</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/5669297575939957649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=5669297575939957649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5669297575939957649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5669297575939957649'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/07/face-of-evil.html' title='Putting a face on evil'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_HlyRYMFL7S8/SH8-QQz00PI/AAAAAAAAAAM/GE2eQ3wmPRA/s72-c/kuntar.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8859654077459257802</id><published>2008-07-10T10:11:00.000+02:00</published><updated>2008-07-10T10:13:00.828+02:00</updated><title type='text'>The iPhone this, the iPhone that</title><summary type='text'>The new iPhone will be available for sale in Switzerland starting tomorrow. The local press is abuzz with the news. They claim that the iPhone is easy to use, the icons highly legible, the screen wider than the competition, its 3G technology allowing high-speed access to the internet. The iPhone this, the iPhone that.But, no mention of Skype+iPhone integration. As a reminder, I carry around a </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8859654077459257802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8859654077459257802' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8859654077459257802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8859654077459257802'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/07/iphone-this-iphone-that.html' title='The iPhone this, the iPhone that'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-5346104294413148834</id><published>2008-07-08T12:52:00.006+02:00</published><updated>2008-07-09T15:03:33.058+02:00</updated><title type='text'>Fighting spam with open-source tools</title><summary type='text'>Being on many publicly accessible mailings lists exposes one's email address to spammers. So it happens that I receive a hefty amount of spam, i.e. 400 to 500 messages per day. Believe me when I say that pressing the "del" key for 15 minutes is not a good way to start a day.Over the years I have tried several methods of varying complexity in order to cope with the scourge of spam. We host our own</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/5346104294413148834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=5346104294413148834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5346104294413148834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5346104294413148834'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/07/fighting-spam-with-open-source-tools.html' title='Fighting spam with open-source tools'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8299940479225069106</id><published>2008-06-27T23:26:00.004+02:00</published><updated>2008-06-28T01:18:03.827+02:00</updated><title type='text'>Does Gentoo make sense?</title><summary type='text'>When I mention to colleagues in the IT industry that compiling packages before installing them on a computer is a good thing, they either give me a blank look or an ever slight smirk. What is the point wasting many hours waiting for some package to compile instead of fetching the binaries from a repository and have it installed in seconds? Come to think of it, I am actually writing this while </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8299940479225069106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8299940479225069106' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8299940479225069106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8299940479225069106'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/06/does-gentoo-make-sense.html' title='Does Gentoo make sense?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-4267801203570342655</id><published>2008-04-07T20:01:00.003+02:00</published><updated>2008-04-28T10:36:15.963+02:00</updated><title type='text'>The pomodoro technique</title><summary type='text'>The pomodoro technique has been recently presented by Matteo Vaccari and Federico Gobbo at XPDays Benelux. Essentially, it consists of dividing your workday into uninterrupted chunks of 25 minutes, plus 5 minute pauses. You set a  by setting a kitchen timer to go off in 25 minutes and do whatever work you need to get done without letting yourself being interrupted by external or internal (</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/4267801203570342655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=4267801203570342655' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4267801203570342655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4267801203570342655'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/04/pomodoro-technique.html' title='The pomodoro technique'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-81764555819941758</id><published>2008-04-07T16:46:00.006+02:00</published><updated>2008-11-11T14:13:29.392+01:00</updated><title type='text'>Testable by design</title><summary type='text'>In the first few months after beginning to systematically unit testing components, most developers I have encountered will have qualms about modifying the component under test (CUT) so that it is easier to test. In a typical scenario, the component under test will need to expose class members for testing purposes. However, exposing members goes against the information hiding principle. Thus, an </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/81764555819941758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=81764555819941758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/81764555819941758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/81764555819941758'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/04/testable-by-design.html' title='Testable by design'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-5474878702152822476</id><published>2008-03-31T14:39:00.002+02:00</published><updated>2008-03-31T14:45:53.697+02:00</updated><title type='text'>Obsessed by Gentoo</title><summary type='text'>After my previous article about Gentoo, I had the audacity to update the "mailman" package from version 2.1.5 to 2.1.9. While the mailman code itself had not changed much, Gentoo's way of structuring of the installed package had changed. It took me about 4 hours of uninterrupted work to get our mailing lists working again. At this stage, you may think that I had learned my lesson, and would not </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/5474878702152822476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=5474878702152822476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5474878702152822476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/5474878702152822476'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/03/obsessed-by-gentoo.html' title='Obsessed by Gentoo'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-9136676516229507475</id><published>2008-03-26T14:09:00.006+01:00</published><updated>2008-03-26T15:01:57.371+01:00</updated><title type='text'>Fascinated by Gentoo</title><summary type='text'>Gentoo is a linux meta-distribution where new packages are compiled on your machine before they are installed. We chose Gentoo about three years ago because it was well documented and also the only one that supported our AMD 64bit machines.  In the last three years, we never felt the need to perform regular updates. However, yesterday I noticed that on one particular machine, the log files were </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/9136676516229507475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=9136676516229507475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/9136676516229507475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/9136676516229507475'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/03/fascinated-by-gentoo.html' title='Fascinated by Gentoo'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-4307139469400973442</id><published>2008-01-06T22:14:00.000+01:00</published><updated>2008-01-16T14:13:15.909+01:00</updated><title type='text'>How efficient is a Prius?</title><summary type='text'>I received my brand new Toyota Prius three weeks ago. Technologically, it seems like quite a remarkable car. I say seems  because I don't really know much about cars. I can't really tell whether the electrical engine is anything more than a marketing gimmick, especially considering its ridiculously low autonomy (about 1km).  Obviously, the Prius is noteworthy not because of its powerful engine  -</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/4307139469400973442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=4307139469400973442' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4307139469400973442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/4307139469400973442'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2008/01/how-efficient-is-prius.html' title='How efficient is a Prius?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-7674687825637677633</id><published>2007-12-04T16:28:00.001+01:00</published><updated>2007-12-05T09:57:47.692+01:00</updated><title type='text'>XP Days conference</title><summary type='text'>Here a few lines describing on my impressions of the XPDays Benelux conference that took place in Belgium a few weeks ago.Organization of the conferenceWith 115 participants, and 4 parallel sessions, the conference had a friendly and personal atmosphere. It was also very well organized. At the beginning of each day, the presenters had 60 seconds to stand up and "sell" their session. This made it </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/7674687825637677633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=7674687825637677633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7674687825637677633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/7674687825637677633'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/12/xp-days-conference.html' title='XP Days conference'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8353918270680252485</id><published>2007-09-02T21:53:00.000+02:00</published><updated>2007-09-06T18:47:52.739+02:00</updated><title type='text'>Yet another choice</title><summary type='text'>Recent adoption of the SLF4J API by Tapestry and Howard's blog on the subject has triggered a frenzy of comments, most of which were very favorable with the exception of Dion Almaer. Dion ridicules the unholy habit we J2EE developers have of trying to abstract every little API we might come into contact with.I am inclined to agree with Dion but for different reasons. Writing a good abstraction </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8353918270680252485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8353918270680252485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8353918270680252485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8353918270680252485'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/09/yet-another-choice.html' title='Yet another choice'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-6997818036441274390</id><published>2007-06-29T12:12:00.001+02:00</published><updated>2007-06-29T12:12:26.888+02:00</updated><title type='text'>GIT vs Subversion</title><summary type='text'>Linus Torvalds recently (2007-05-05) gave a presentation about GIT at Google. The video of the presentation is available on youtube.In this particular presentation, I found Linus to be opinionated and rather unconvincing. He is extremely critical of CVS and Subversion. While GIT may be well-adapted to Linux's development model, I believe Subversion get the job done in other environments.Martin </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/6997818036441274390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=6997818036441274390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6997818036441274390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/6997818036441274390'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/06/git-vs-subversion.html' title='GIT vs Subversion'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-1483347107586247849</id><published>2007-06-11T10:16:00.000+02:00</published><updated>2007-09-02T22:14:47.732+02:00</updated><title type='text'>Selling YAGNI</title><summary type='text'>I am quite fond of the YAGNI principle because it helps me concentrate on the essentials of the application currently under development. Another explanation is that I am getting lazier with age.YAGNI tends to sell well with developers. It prunes needless work. However, with customers who ask for features, the YAGNI principle does not sit quite as well. People in general do not appreciate their </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/1483347107586247849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=1483347107586247849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1483347107586247849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1483347107586247849'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/06/selling-yagni.html' title='Selling YAGNI'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-1321389474324325503</id><published>2007-05-29T23:02:00.000+02:00</published><updated>2007-09-02T22:13:31.358+02:00</updated><title type='text'>Evolving a popular API</title><summary type='text'>Authoring an API which later becomes popular can be both a blessing and a curse. If your design was imperfect, which it is bound to be, you will be frequently flamed for flaws. Except for the most trivial systems, it is outright impossible to get an API right the first time. You will several iterations to perfect your design.Take Tapestry for example. It has evolved over seven years and five </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/1321389474324325503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=1321389474324325503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1321389474324325503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1321389474324325503'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/05/evolving-popular-api.html' title='Evolving a popular API'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-8101676853407746521</id><published>2007-05-18T19:50:00.001+02:00</published><updated>2008-11-11T14:00:45.857+01:00</updated><title type='text'>Dell delivers (not!)</title><summary type='text'>My company has been a Dell customer for many years, having purchased four computers in the last 12 months alone. A few weeks ago we decided to purchase a new laptop, more precisely Latitude D620. This baby comes with an Intel Core 2 Duo clocked at 2.0Ghz, a 14" inch screen with a resolution of 1440x900 pixels. Most importantly, it weighs 2.0Kg (4.4lbs).We signed the order on the 30th of April </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/8101676853407746521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=8101676853407746521' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8101676853407746521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/8101676853407746521'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/05/dell-delivers-not.html' title='Dell delivers (not!)'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-1070341690332197018</id><published>2007-03-02T14:30:00.000+01:00</published><updated>2007-03-02T20:55:48.181+01:00</updated><title type='text'>Reading XFire code</title><summary type='text'>The various SOAP and WS-* related specifications have the reputation of being tricky and difficult to understand.  The latest project I am involved in requires a relatively deep understanding of WS-*. One way to gain understanding of a specification is by closely studying an implementation of it. Spurred by my previous pleasant experience with it, XFire happens to be that implementation of choice</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/1070341690332197018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=1070341690332197018' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1070341690332197018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/1070341690332197018'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/03/reading-xfire-code.html' title='Reading XFire code'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-13814850300481776</id><published>2007-02-26T08:38:00.000+01:00</published><updated>2007-02-26T08:39:49.724+01:00</updated><title type='text'>Founders at work</title><summary type='text'>After reading the first 3 chapters of "Founders at work" by Jessica Livingston, I can't help but recommend this book. Compared to many other books where the fluff in the narrative ends up diluting the content, the direct language of the various founders is both refreshing and inspirational. Each story if filled with unsophisticated yet brilliant ideas, each resembling a small gem.     I can't </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/13814850300481776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=13814850300481776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/13814850300481776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/13814850300481776'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/02/founders-at-work.html' title='Founders at work'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-117105851900640193</id><published>2007-02-09T23:00:00.000+01:00</published><updated>2007-02-19T20:39:49.166+01:00</updated><title type='text'>SLF4J and logback gaining traction</title><summary type='text'>It does not mean much me saying so, but the SLF4J and logback projects are gaining traction. The project mailing lists are showing real signs of life and community interest, whereas the download statistics are showing significant upward trend.We are not at the same levels of popularity as commons-logging or log4j. Nevertheless, it is very encouraging to see users responding favorably to our work.</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/117105851900640193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=117105851900640193' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/117105851900640193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/117105851900640193'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/02/slf4j-and-logback-gaining-traction.html' title='SLF4J and logback gaining traction'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-117097244879949053</id><published>2007-02-08T22:59:00.000+01:00</published><updated>2007-02-08T23:15:48.903+01:00</updated><title type='text'>Advantage of open source</title><summary type='text'>I recently had to use two very comparable products, one open-source and the other closed-source. While the closed-source product had more verbose documentation, but I actually managed to get the open-source product running and not the closed-source product.More importantly, the API of the closed-source product, while very similar and accomplished the *identical* task, felt awkard. I guess that </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/117097244879949053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=117097244879949053' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/117097244879949053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/117097244879949053'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2007/02/advantage-of-open-source.html' title='Advantage of open source'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116669320972790040</id><published>2006-12-21T10:24:00.000+01:00</published><updated>2007-02-07T09:22:02.683+01:00</updated><title type='text'>Release procedures</title><summary type='text'>While lurking on the Maven dev mailing I came across a proposal for a release procedure. Given that the proposal is 3 pages long, in the ensuing discussion, the developers most heavily involved in the project, what one might call as the "doers", seemed to reserve a lukewarm welcome to the proposal.There is a growing need to increase productivity of development teams, an industrialization of sorts</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116669320972790040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116669320972790040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116669320972790040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116669320972790040'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/12/release-procedures.html' title='Release procedures'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116621211500988202</id><published>2006-12-15T20:46:00.000+01:00</published><updated>2006-12-21T10:29:24.500+01:00</updated><title type='text'>Migrate from log4j to logback in seconds</title><summary type='text'>It may sound insignificant but we migrated our most importantapplications in production from log4j 1.3 over to logback version 0.7. We have done this without changing a single line of code in our applications but by merely replacing the file log4j.jar with log4j-bridge.jar in the relevant WEB-INF/lib directories.Log4j-bridge intercepts calls to log4j's Logger class and transparently redirects </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116621211500988202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116621211500988202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116621211500988202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116621211500988202'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/12/migrate-from-log4j-to-logback-in.html' title='Migrate from log4j to logback in seconds'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116316646608441418</id><published>2006-11-10T14:46:00.000+01:00</published><updated>2006-11-30T16:59:41.736+01:00</updated><title type='text'>Continuum running and configured in 20 minutes</title><summary type='text'>Having been nagged by gump for ages, I've been reluctant to use a continuous integration system, at least until a few days ago. Notwithstanding my conservative attitude, colleagues have patiently and convincingly explained that having an automated system building and testing my projects, was a good thing. Taking their word, I've installed Continuum in about 5 minutes and had it configured for </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116316646608441418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116316646608441418' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116316646608441418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116316646608441418'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/11/continuum-running-and-configured-in-20.html' title='Continuum running and configured in 20 minutes'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116267774895850443</id><published>2006-11-04T22:55:00.000+01:00</published><updated>2007-02-14T14:33:46.116+01:00</updated><title type='text'>Solution to the Maven2 version number problem</title><summary type='text'>In the past few days, I've ranted profusely about the difficulty of changing version numbers of modules in Maven2. As things stand currently, when a module references its parent, it must explicitly state the parent's version in hard-coded form. Once that import is done, the natural thing to do is to define the current module's version by the version of the parent. The down side is that, when the </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116267774895850443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116267774895850443' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116267774895850443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116267774895850443'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/11/solution-to-maven2-version-number.html' title='Solution to the Maven2 version number problem'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116193316017287516</id><published>2006-10-27T09:06:00.000+02:00</published><updated>2006-10-27T09:22:16.030+02:00</updated><title type='text'>Version numbers in Maven</title><summary type='text'>I am probably the 50th person ranting about lack of inheritance of version numbers in Maven. Those who use Maven 2.0.4 will know what I am talking about. Maven developers plan to bring a solution with the next release, i.e. 2.1. Whatever the solution, it can't be worse than using the release plug-in, the officially recommended approach at present time. The release-plugin approach is both total </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116193316017287516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116193316017287516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116193316017287516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116193316017287516'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/10/version-numbers-in-maven.html' title='Version numbers in Maven'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116134853365201229</id><published>2006-10-20T14:46:00.000+02:00</published><updated>2006-10-20T16:19:52.090+02:00</updated><title type='text'>logback: a worthy successor to log4j?</title><summary type='text'>As you may have already heard, I have been working on a new projectcalled logback, intended as a worthy successor of log4j.On the 5th of December, I'll will be presenting (in French) the top 10reasons for migrating your projects to logback. Issues such asmigration strategy, new APIs, SLF4J and Joran will bediscussed. Emphasis will be given to practical aspects and a live demorather than </summary><link rel='related' href='http://tinyurl.com/yjcq33' title='logback: a worthy successor to log4j?'/><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116134853365201229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116134853365201229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116134853365201229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116134853365201229'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/10/logback-worthy-successor-to-log4j.html' title='logback: a worthy successor to log4j?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-116074338440651249</id><published>2006-10-13T14:38:00.000+02:00</published><updated>2006-10-19T21:38:00.570+02:00</updated><title type='text'>Repated configuration with Joran</title><summary type='text'>Developers have frequently express the need to output log files based on arbitrary runtime criteria such as by client, by task, etc.Given all the flexibility offered by logback, writing such an appender should be easy. Let us call this new appender, MultiAppender. In principle, all MultiAppender needs to do is to create a new file as necessary according to the evaluation of incoming logging </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/116074338440651249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=116074338440651249' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116074338440651249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/116074338440651249'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/10/repated-configuration-with-joran.html' title='Repated configuration with Joran'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-115770621492978646</id><published>2006-09-08T10:54:00.000+02:00</published><updated>2006-09-14T09:28:06.246+02:00</updated><title type='text'>Naked without eclipse</title><summary type='text'>I recently had to make a few changes to a java project. The computer at my disposal, Gentoo Linux AMD64 machine, did not have eclipse installed. So I turned to my reliable editor/IDE, i.e. Emacs. Considering that Emacs  was my IDE for several years in the past, I still felt astonishingly naked without Eclipse. Only under circumstances where a tool is withdrawn that one realizes how much comfort </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/115770621492978646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=115770621492978646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115770621492978646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115770621492978646'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/09/naked-without-eclipse.html' title='Naked without eclipse'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-115746104395707691</id><published>2006-09-05T14:56:00.000+02:00</published><updated>2006-09-05T15:19:35.396+02:00</updated><title type='text'>Migrating to Maven 2</title><summary type='text'>  In the last few weeks I had to dabble in Maven, either migrating existing projects or creating new ones. The experience has been conclusive. As long as I adhere to Maven's philosophy, I am able to get things accomplished.     For instance, after the experience gained in mavenizing logback, migrating SLF4J to Maven2 from Ant has taken only few hours. The resulting project structure is imho a </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/115746104395707691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=115746104395707691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115746104395707691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115746104395707691'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/09/migrating-to-maven-2.html' title='Migrating to Maven 2'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-115411050958188659</id><published>2006-07-28T20:04:00.000+02:00</published><updated>2006-07-28T21:11:27.160+02:00</updated><title type='text'>Logback version 0.1 just out the door</title><summary type='text'>Sebastien Pennec recently announced the release of logback version 0.1. As the version number suggests, the logback framework still needs a lot of work. Nevertheless, we had to start somewhere...For the next release, Sebastien and I will be concentrating on documentation and other essential features. The goal is to reach a maturity level such that developers can actually start using logback in </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/115411050958188659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=115411050958188659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115411050958188659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115411050958188659'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/07/logback-version-01-just-out-door.html' title='Logback version 0.1 just out the door'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-115256172225323356</id><published>2006-07-10T21:50:00.000+02:00</published><updated>2006-07-31T17:16:54.170+02:00</updated><title type='text'>Maven -- whether you like it or not</title><summary type='text'>As a relatively experienced Ant user, I usually try to avoid Maven, a build system intended to automate mundane and time consuming tasks such as project packaging and site generation.  Apparently, site generation is one of the most appreciated features of Maven. Given that the default site generated by Maven looks nice but otherwise is rather useless, you need to spend considerable amount of time</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/115256172225323356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=115256172225323356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115256172225323356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/115256172225323356'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/07/maven-whether-you-like-it-or-not.html' title='Maven -- whether you like it or not'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114899646473757802</id><published>2006-05-30T15:38:00.000+02:00</published><updated>2006-09-26T21:33:47.993+02:00</updated><title type='text'>C#, first impressions</title><summary type='text'>After several years of developing exclusively in Java, I recently ventured into the .Net/C# world. At a first glance, C# is eerily similar to Java. C# is not exactly Java, but almost. As for the development environment, I was expecting Visual Studio to be spiffier than Eclipse or IDEA. I don’t think that is the case. Surprisingly, the automated doc support, the equivalent of Java’s javadoc, </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114899646473757802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114899646473757802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114899646473757802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114899646473757802'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/05/c-first-impressions.html' title='C#, first impressions'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114616214245067018</id><published>2006-04-27T20:22:00.000+02:00</published><updated>2006-04-27T20:22:22.460+02:00</updated><title type='text'>VMWare and Gentoo</title><summary type='text'>I've been using Gentoo on my Linux servers for the past several years, and it's a very nifty piece of software/distribution. Although compiling all the required packages can be a bit slow, the installation process is very well documented. I can testify that that installing Gentoo takes less than 24 hours, the working days for a basic system (including X windows) and the night to compile KDE. The </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114616214245067018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114616214245067018' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114616214245067018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114616214245067018'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/04/vmware-and-gentoo.html' title='VMWare and Gentoo'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114596567614831341</id><published>2006-04-25T13:46:00.000+02:00</published><updated>2006-06-29T16:52:04.123+02:00</updated><title type='text'>1st chapter of Tapestry in Action</title><summary type='text'>I just finished reading the first chapter of "Tapestry in Action" by Howard M. Lewis Ship. I really like the style of the author. The introductory chapter clearly explains the conceptual differences between Struts, a servlet controlled framework, and Tapestry, a component controlled framework. The author also does a very good job of pointing out the weaknesses in Struts. After 4 years of Struts, </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114596567614831341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114596567614831341' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114596567614831341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114596567614831341'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/04/1st-chapter-of-tapestry-in-action.html' title='1st chapter of Tapestry in Action'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114590452904002249</id><published>2006-04-24T20:43:00.000+02:00</published><updated>2007-02-20T05:58:26.686+01:00</updated><title type='text'>XML ain't a programming language</title><summary type='text'>I happen to consider Spring a pretty nifty framework. Actually, many of the developers I know consider it nifty and I don't have any reasons to object. It is well-documented and rich in functionality. After spending a day reading the documentation, I came to the conclusion that I had not understood it well enough and resolved to reread it at a later time. The ability to configure a large </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114590452904002249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114590452904002249' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114590452904002249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114590452904002249'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/04/xml-aint-programming-language.html' title='XML ain&apos;t a programming language'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114424143343409420</id><published>2006-04-05T14:49:00.000+02:00</published><updated>2006-04-10T17:15:46.423+02:00</updated><title type='text'>Race condition at the post office</title><summary type='text'>Although only the fourth or fifth largest in Switzerland, the city of Lausanne currently possesses the biggest post office in the country. This post office is located at Place St-Francois at the center of the city. When you enter the post office, you are greeted by two ticketing machines, one at each entry of the office. After pressing a button, the machine spits out a ticket with a number </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114424143343409420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114424143343409420' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114424143343409420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114424143343409420'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/04/race-condition-at-post-office.html' title='Race condition at the post office'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114237902832097661</id><published>2006-03-15T00:27:00.000+01:00</published><updated>2007-02-22T18:17:41.400+01:00</updated><title type='text'>Fiction disguised as hands-on experience</title><summary type='text'>I am not a big fan of Hani Suleiman. The feeling is apparently mutual. In response to my recent post about SLF4J's first release on TSS, Hani replied with what he claims are facts based on his hands-on experience.Don't get me wrong, criticism is OK and even welcome. Accepting criticism is part of the open development process. It's fiction disguised as fact that I object to.First claim:Most </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114237902832097661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114237902832097661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114237902832097661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114237902832097661'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/03/fiction-disguised-as-hands-on.html' title='Fiction disguised as hands-on experience'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114192946806412197</id><published>2006-03-09T19:25:00.000+01:00</published><updated>2006-03-09T19:57:11.180+01:00</updated><title type='text'>SLF4J 1.0 (final) is finally out</title><summary type='text'>After 11 months of gestation, SLF4J version 1.0 (final) is finally out the door. For those who have not heard of it, SLF4J (Simple Logging Facade for Java) acts as a facade for various logging APIs allowing to the end-user to plug in the desired implementation at deployment time. A gradual migration path away from Jakarta Commons Logging (JCL) is also supported.SLF4J does not rely on any special </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114192946806412197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114192946806412197' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114192946806412197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114192946806412197'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/03/slf4j-10-final-is-finally-out.html' title='SLF4J 1.0 (final) is finally out'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114192287437790578</id><published>2006-03-09T16:10:00.001+01:00</published><updated>2006-03-09T19:50:33.523+01:00</updated><title type='text'>Shall we go JDK 1.5?</title><summary type='text'>Alex Karasulu of Apache Directory project recently floated this question in their development mailing lists. The ensuing discussion was open and interesting with many of the critical questions raised quickly and clearly. Certain users were concerned about JDK 1.5 support in Websphere, or lack thereof. Notwithstanding my personal reservations about generics, JDK 1.5 introduces truly useful </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114192287437790578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114192287437790578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114192287437790578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114192287437790578'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/03/shall-we-go-jdk-15_09.html' title='Shall we go JDK 1.5?'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114114187318254257</id><published>2006-02-28T16:17:00.000+01:00</published><updated>2006-03-09T16:10:02.843+01:00</updated><title type='text'>Problems on Algorithms</title><summary type='text'>While 99.9% of Sudoku puzzles can be solved using relatively simple techniques, certain very difficult Sudoku puzzles require more advanced methods. One of these techniques consists of searching the puzzle for hidden sets, i.e. couples, triples or quadruples. Again, puzzles which can only be resolved by searching for hidden sets occur very infrequently. Nevertheless, any self-respecting Sudoku </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114114187318254257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114114187318254257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114114187318254257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114114187318254257'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/02/problems-on-algorithms.html' title='Problems on Algorithms'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114113930455854991</id><published>2006-02-28T16:07:00.000+01:00</published><updated>2007-01-26T13:37:43.956+01:00</updated><title type='text'>The triumph of obscenity</title><summary type='text'>It appears that Hani Suleiman of bile blog fame has been elected to the Executive Committee of the Java Community Process. I find ithard to believe that the author of such extreme vulgarity and obscenity should be proposed, and even worse retained, to a position of influence in the java community.Given that the election process looks fair and square, the blame does not lie with Sun Inc. but the </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114113930455854991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114113930455854991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114113930455854991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114113930455854991'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/02/triumph-of-obscenity.html' title='The triumph of obscenity'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114087910158091947</id><published>2006-02-25T15:32:00.000+01:00</published><updated>2006-02-25T15:54:48.560+01:00</updated><title type='text'>Enhanced for Loop</title><summary type='text'>The enhanced for loop introduced in JDK 1.5 makes it easier to loop through arrays and collections. However, as some of the other features added later in the evolution of the Java language, the enhanced for loop can behave unexpectedly.For one, initializing array members within the enhanced for loop does not really initialize them. Thus, the following code  String[] sa = new String[2];  for(</summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114087910158091947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114087910158091947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114087910158091947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114087910158091947'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/02/enhanced-for-loop.html' title='Enhanced for Loop'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5797202.post-114087327494919251</id><published>2006-02-25T13:11:00.000+01:00</published><updated>2007-02-22T06:38:41.266+01:00</updated><title type='text'>Premature optimisation</title><summary type='text'>Donald Knuth once wrote that premature optimization was the root of all evil. As an immediate corollary, Knuth's principle implies that a programmer should not attempt to optimize code that does not need it. I think that is one of most valuable advice that can be given to a software developer.Of course, giving advice is cheap, following it is the harder part. For instance, I have this bad habit </summary><link rel='replies' type='application/atom+xml' href='http://ceki.blogspot.com/feeds/114087327494919251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5797202&amp;postID=114087327494919251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114087327494919251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5797202/posts/default/114087327494919251'/><link rel='alternate' type='text/html' href='http://ceki.blogspot.com/2006/02/premature-optimisation.html' title='Premature optimisation'/><author><name>Ceki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_HlyRYMFL7S8/SKxF4PAzheI/AAAAAAAAAAY/qIZOMENuV6I/S220/DSCN000m2.JPG'/></author><thr:total>0</thr:total></entry></feed>
