<?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-11558950</id><updated>2011-12-14T18:36:10.632-08:00</updated><title type='text'>Evaporating Thoughts</title><subtitle type='html'>Catching some thoughts before they evaporate.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11558950.post-1769544326922555439</id><published>2010-05-26T12:27:00.000-07:00</published><updated>2010-05-26T13:09:06.675-07:00</updated><title type='text'>MySQL User Access Setup</title><content type='html'>Setting up a database to be populated by &lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt; or some other O/R mapping tool usually requires the following inital setup when working with &lt;a href="http://www.mysql.com/?bydis_dis_index=1"&gt;MySQL&lt;/a&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create the database, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;mysqladmin -u root -p create foo&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a user and grant full access to the database from any machine, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;grant all on foo.* to 'homer'@'%' identified by 'simpson';&lt;br /&gt;grant all on foo.* to 'homer'@'localhost' identified by 'simpson';&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can always undo these permissions, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;revoke all on foo.* from 'homer'@'%';&lt;br /&gt;revoke all on foo.* from 'homer'@'localhost';&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Of course, there is a ton of documentation available to grant more fine-grained privileges and much more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-1769544326922555439?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.drap.homelinux.com/wiki/index.php/MySQL_Befehle' title='MySQL User Access Setup'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/1769544326922555439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=1769544326922555439&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/1769544326922555439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/1769544326922555439'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2010/05/mysql-user-access-setup.html' title='MySQL User Access Setup'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-2970554067550235787</id><published>2010-05-24T05:26:00.000-07:00</published><updated>2010-05-24T05:40:18.850-07:00</updated><title type='text'>Subversion Patches</title><content type='html'>Sometimes I need to create a patch for the local changes of my Subversion working copy. This can be achieved very easily using the following command (typically issued from the root directory of the checkout):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;svn diff &gt; ~/local_changes.diff&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The patch can then be applied on a different working copy by applying the command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;patch -p0 -i ~/local_changes.diff&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The command output will tell which parts of the patch have been applied successfully and which ones, if any, have failed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you work with &lt;a href="http://www.jetbrains.com/idea"&gt;IntelliJ IDEA&lt;/a&gt;, I suggest you both create and apply the patch with IDEA, since patches created by &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; do not work well when applied in IDEA.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-2970554067550235787?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/2970554067550235787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=2970554067550235787&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/2970554067550235787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/2970554067550235787'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2010/05/subversion-patches.html' title='Subversion Patches'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-4641598258414324100</id><published>2007-12-30T08:14:00.000-08:00</published><updated>2007-12-30T08:23:04.655-08:00</updated><title type='text'>Google Browser Sync</title><content type='html'>I came across the very useful &lt;a href="http://www.google.com/tools/firefox/browsersync/"&gt;Google Browser Sync&lt;/a&gt; Firefox extension which allows me to easily keep my bookmarks in sync between my desktop machine and my laptop. This totally transparent extension continuously synchronizes my browser settings – including bookmarks, history, persistent cookies, and saved passwords – across my computers. It also allows me to restore open tabs and windows across different machines and browser sessions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-4641598258414324100?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/tools/firefox/browsersync/' title='Google Browser Sync'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/4641598258414324100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=4641598258414324100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/4641598258414324100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/4641598258414324100'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2007/12/google-browser-sync.html' title='Google Browser Sync'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-4901386223234864985</id><published>2007-05-13T20:43:00.000-07:00</published><updated>2007-05-13T21:05:47.557-07:00</updated><title type='text'>MySQL Query Analysis</title><content type='html'>While reading an article on &lt;a href="http://www.databasejournal.com/features/mysql/article.php/10897_1382791_1"&gt;MySQL Query Optimization&lt;/a&gt;, I came across the EXPLAIN keyword. It's a built-in feature of MySQL that allows you to get some information on how a given query is used. This is of great help while optimizing queries to find out whether indexes are applied properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-4901386223234864985?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.databasejournal.com/features/mysql/article.php/10897_1382791_1' title='MySQL Query Analysis'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/4901386223234864985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=4901386223234864985&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/4901386223234864985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/4901386223234864985'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2007/05/mysql-query-analysis.html' title='MySQL Query Analysis'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-3135004724557697639</id><published>2007-02-22T09:24:00.000-08:00</published><updated>2007-02-22T09:41:24.310-08:00</updated><title type='text'>Temporary Email Addresses</title><content type='html'>For almost every online service offered by a website, you need to open an account with that website. They want your email address, your location, your salary, your favorite's pet name - you name it. That's when temporary email addresses come in very handy.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.spamgourmet.com/"&gt;Spamgourmet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://10minutemail.com/"&gt;10 Minute Mail&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; They allow you to provide an online service provider with a valid email address without having to reveal your true email address.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-3135004724557697639?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.spamgourmet.com/' title='Temporary Email Addresses'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/3135004724557697639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=3135004724557697639&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/3135004724557697639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/3135004724557697639'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2007/02/temporary-email-addresses.html' title='Temporary Email Addresses'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-3070973791283824987</id><published>2007-02-21T16:18:00.000-08:00</published><updated>2007-02-21T16:22:09.294-08:00</updated><title type='text'>Code As Design</title><content type='html'>An interesting collection of articles on &lt;a href="http://www.developerdotstar.com/mag/articles/reeves_design_main.html"&gt;&lt;span style="font-style: italic;"&gt;Code as Design&lt;/span&gt;&lt;/a&gt; by Jack W. Reeves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-3070973791283824987?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.developerdotstar.com/mag/articles/reeves_design_main.html' title='Code As Design'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/3070973791283824987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=3070973791283824987&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/3070973791283824987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/3070973791283824987'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2007/02/code-as-design.html' title='Code As Design'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-5168747397261613785</id><published>2007-02-17T18:47:00.000-08:00</published><updated>2007-02-17T19:42:17.471-08:00</updated><title type='text'>Subversion Repository</title><content type='html'>&lt;a href="http://subversion.tigris.org/"&gt;Subversion &lt;/a&gt; is one of the most beautiful pieces of software that I have ever worked with. This open-source version control system is well designed, it's robust and scalable, it's powerful while still  user-friendly, and it's also very well documented.&lt;br /&gt;&lt;br /&gt;Setting up a minimally configured subversion repository can be very easy:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://subversion.tigris.org/project_packages.html"&gt;Download&lt;/a&gt; subversion from the tigris website&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;http://subversion.tigris.org/&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a subversion repository at your desired location by applying the command &lt;span style="font-style: italic;"&gt;svnadmin create &amp;lt;location&gt;&lt;/span&gt;, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;svnadmin create c:\server\subversion\repos&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Optionally configure authentication and access-control in the &lt;span style="font-style: italic;"&gt;svnserve.conf&lt;/span&gt; file which is located in the &lt;span style="font-style:italic;"&gt;conf&lt;/span&gt; folder directly under the repository root, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;c:\server\subversion\repos\conf\svnserve.conf&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Star the svnserve server process by applying the command &lt;span style="font-style: italic;"&gt;svnserve -d -r &amp;lt;location&gt;&lt;/span&gt;, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;svnserve -d -r c:\server\subversion\repos&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can then access the repository from a subversion client using the &lt;span style="font-style:italic;"&gt;svn&lt;/span&gt; protocol, e.g.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;svn import c:\projects\foo svn://localhost/foo/trunk&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;You can learn all the details about subversion from the book &lt;span style="font-style:italic;"&gt;Version Control with Subversion&lt;/span&gt; which is also accessible &lt;a href="http://svnbook.red-bean.com/nightly/en/svn-book.html"&gt;online&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-5168747397261613785?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://subversion.tigris.org/' title='Subversion Repository'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/5168747397261613785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=5168747397261613785&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/5168747397261613785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/5168747397261613785'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2007/02/subversion-repository.html' title='Subversion Repository'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-115233267983119046</id><published>2006-07-07T19:52:00.000-07:00</published><updated>2006-07-07T21:33:50.816-07:00</updated><title type='text'>Unit Conversions</title><content type='html'>Growing up with the metric system, I'm still not used to think in Feet, Fahrenheit, and Ounces. While googling for yet another conversion tool, I've found out about &lt;a href="http://www.google.com/intl/en/help/features.html#calculator"&gt;Google Calculator&lt;/a&gt; which supports all kinds of conversions. Do a Google search for&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;5250 meters in feet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and you will get the answer right from the Google Calculator: 5250 meters = 17224.4094 feet. This also works for other types of conversion like &lt;span style="font-style: italic;"&gt;46 celsius in fahrenheit&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;2 ounces in grams&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.google.com/intl/en/help/features.html#currency"&gt;Google Currency Converter&lt;/a&gt; works very similarly. Search for&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;1 USD in CHF&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and Google will tell you how many Swiss Francs a US Dollar is currently worth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-115233267983119046?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/115233267983119046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=115233267983119046&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/115233267983119046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/115233267983119046'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2006/07/unit-conversions.html' title='Unit Conversions'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-114675859859798194</id><published>2006-05-04T08:51:00.000-07:00</published><updated>2006-05-17T23:58:40.173-07:00</updated><title type='text'>Time Zones Anomalies</title><content type='html'>Working with time zones is tricky per se, and even more when using the &lt;code&gt;Calendar&lt;/code&gt; classes that ship with the JDK. But when the Aussies Down Under decide to &lt;a href="http://java.sun.com/developer/technicalArticles/Intl/AusTimeZone/"&gt;extend the Daylight Savings Time (DST) in 2006&lt;/a&gt;, due to the Commonwealth Games, things get simply confusing. Luckily, Sun incorporated this anomaly in their JDK Updates for 1.3.x, 1.4.x, and 5.x.&lt;br /&gt;&lt;br /&gt;It might be worth to take a look at alternatives to deal with times and dates in Java applications, for example, the &lt;a href="http://joda-time.sourceforge.net/"&gt;Joda-Time&lt;/a&gt; library is a real jewel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-114675859859798194?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://java.sun.com/developer/technicalArticles/Intl/AusTimeZone/' title='Time Zones Anomalies'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/114675859859798194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=114675859859798194&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/114675859859798194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/114675859859798194'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2006/05/time-zones-anomalies.html' title='Time Zones Anomalies'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-113773587478023497</id><published>2006-01-19T21:37:00.000-08:00</published><updated>2006-04-01T04:51:53.743-08:00</updated><title type='text'>Firefox Hidden Preferences</title><content type='html'>Recently, I came across the &lt;span style="font-style: italic;"&gt;about:config&lt;/span&gt; URL which reveals many hidden Firefox preferences. Details about their meaning can be found in &lt;a href="http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries"&gt;MozillaZine&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-113773587478023497?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/113773587478023497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=113773587478023497&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113773587478023497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113773587478023497'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2006/01/firefox-hidden-preferences.html' title='Firefox Hidden Preferences'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-113682536131740781</id><published>2006-01-09T08:43:00.000-08:00</published><updated>2006-01-09T08:49:21.326-08:00</updated><title type='text'>Resolving Acronyms</title><content type='html'>I often receive emails loaded with acronyms that I don't understand. For example, &lt;span style="font-style: italic;"&gt;IMHO&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;HTH&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;AFAIK&lt;/span&gt;, OOTO, etc.  In order to resolve such acronyms, the &lt;a href="http://www.astro.umd.edu/%7Emarshall/abbrev.html"&gt;Canonical Abbreviation/Acronym Lis&lt;/a&gt;t compiled by James Marshall is very helpful.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.astro.umd.edu/%7Emarshall/abbrev.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-113682536131740781?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/113682536131740781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=113682536131740781&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113682536131740781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113682536131740781'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2006/01/resolving-acronyms.html' title='Resolving Acronyms'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-113494465491339587</id><published>2005-12-18T14:09:00.000-08:00</published><updated>2006-05-04T08:08:47.013-07:00</updated><title type='text'>Firefox Keyword Searches</title><content type='html'>Using &lt;a href="http://dict.leo.org/"&gt;LEO&lt;/a&gt; on a daily base, I tried to find a way to optimize looking up a translation through Firefox. I already knew that I can use a URL like &lt;span style="font-style: italic;"&gt;'g java&lt;/span&gt;' to do a Google search on 'Java', and I wanted to achieve the same functionality for LEO using '&lt;span style="font-style: italic;"&gt;l haus&lt;/span&gt;' since these keyword searches are super convenient.&lt;br /&gt;&lt;br /&gt;Surprisingly, it only took two minutes to google the web and find and apply a solution:&lt;br /&gt;&lt;a href="http://kb.mozillazine.org/Using_keyword_searches"&gt;http://kb.mozillazine.org/Using_keyword_searches&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bookmark Name: LEO&lt;br /&gt;Location: http://dict.leo.org/?search=%s&lt;br /&gt;Keyword: l&lt;br /&gt;&lt;br /&gt;This makes Ctrl-T Ctrl-L my favorite keyboard shortcut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-113494465491339587?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/113494465491339587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=113494465491339587&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113494465491339587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/113494465491339587'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/12/firefox-keyword-searches.html' title='Firefox Keyword Searches'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111255070433426490</id><published>2005-05-08T20:09:00.000-07:00</published><updated>2005-07-01T10:55:24.103-07:00</updated><title type='text'>Hiring Process</title><content type='html'>Recently, I got involved in the hiring process at the company I work for, mainly having to interview candidates. While preparing, I also went through some online resources.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href="http://www.joelonsoftware.com/articles/fog0000000073.html"&gt;Guerilla Guide to Interviewing&lt;/a&gt; had some interesting points. &lt;span style="font-style: italic;"&gt;Smart and gets things done&lt;/span&gt; is definitely a critical criteria to keep in mind. Joel's overly self-conscious writing style can be a bit tiring after a while, though. His &lt;a href="http://www.joelonsoftware.com/navLinks/fog0000000247.html"&gt;Growing a Team&lt;/a&gt; section has more interesting articles on this topic, i.e. the article on a &lt;a href="http://www.joelonsoftware.com/articles/fog0000000050.html"&gt;Programmer's Perspective&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The TSS article &lt;a href="http://www.javaworld.com/javaworld/jw-05-2005/jw-0509-architect.html"&gt;Hiring the Phantom Java Architect&lt;/a&gt; is worth reading before actually posting a vacant Java developer/architect job description. I don't really agree with the author on the architect/developer distinction he makes, but knowing what exactly you are seeking for is surely crucial.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;I don't think I would ask such kind of questions myself, but the &lt;a href="http://www.techinterview.org/"&gt;Technical Interview Questions &lt;/a&gt;are quite fun to solve (or at least to try to solve). Find some the solutions in Joel's &lt;a href="http://discuss.fogcreek.com/techinterview/"&gt;Forum&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Some of the experiences that I have gained so far from interviewing applicants are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;make them feel comfortable by letting them talk about their favourite project of the past&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;ask some questions specific to their resume to get a feeling of how well what is written in the resume matches the truth (I'm really disappointed when people put some cool technology in their resume and then you find out that they only used it once for exercise 1.b of their CS course)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;let them explain how the team setup and the interactions were at the former job and what their role was&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;make them write some code that must actually work (which is a big difference to writing some fuzzy diagrams with arrows, place holders, etc.)&lt;/li&gt;  &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;ask a technical question that they probably don't have the answer for and see how they approach this situation&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;observe whether they can give precise answers to precise questions&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;I still have a lot more to learn about interviewing efficiently&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111255070433426490?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111255070433426490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111255070433426490&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111255070433426490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111255070433426490'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/05/hiring-process.html' title='Hiring Process'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111552149344693765</id><published>2005-05-07T20:02:00.000-07:00</published><updated>2006-11-01T11:09:59.163-08:00</updated><title type='text'>Information Flood Management</title><content type='html'>Today, I almost constantly feel overwhelmed by all the information, messages, and questions I get flooded with each day. Mails, bug reports, blogs, ICQ messages, phone calls, shoulder tapping, etc. I still haven't quite figured out how to manage and control this flood of information input and the right tools are definitely only part of the solution. I think it's more a human problem than a technical problem of how to handle this situation. But the right tools definitely help.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt; I use to actively find information. Their concept of a simple search UI with a smart and powerful search engine behind it has definitely revolutionized the way many search UIs work today. By the way, &lt;a href="http://twingine.com/"&gt;TwinEngine&lt;/a&gt;, formerly known as YaGooHoo!gle, is as simple as it is interesting.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://desktop.google.com/index.html"&gt;GoogleDesktopSearch&lt;/a&gt; is the tool I use to search my local harddisk for mails and documents. It's super-fast and very easy to configure and use (as expected from a Google product). Often, I even prefer this tool to the built-in search of mail and web clients.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/products/firefox/"&gt;Firefox &lt;/a&gt;is the browser I use to browse the web. No more IE, no more Opera. Firefox is slim, fast, and I love the Themes/Extensions concept, e.g. the &lt;a href="https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&amp;category=Developer%20Tools&amp;amp;numpg=10&amp;id=60"&gt;Web Developer&lt;/a&gt; extension is great.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jetbrains.com/omea/reader/"&gt;OmeaReader&lt;/a&gt; by &lt;a href="http://www.jetbrains.com/"&gt;JetBrains&lt;/a&gt; is my favourite tool to handle the RSS feeds from blogs and newsletters that I have subscribed to (unfortunately, it only runs on Windows, yet). It's free, fast, and very configurable. The Clipping and Annotation features are cool, too. &lt;a href="http://www.mozilla.org/products/thunderbird/"&gt;Thunderbird&lt;/a&gt;'s RSS support would probably suffice but as a big fan of JetBrains&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;products it's clear I go with OmeaReader.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tadalist.com/"&gt;Tadalist&lt;/a&gt; by &lt;a href="http://www.37signals.com/"&gt;37signals &lt;/a&gt;is a neat little web application to keep my todos uptodate. I love their idea of removing as many features as possible instead of adding more features than needed. By the way, 37signals is the company that developed the &lt;a href="http://www.codezoo.com/"&gt;CodeZoo &lt;/a&gt;website.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.atlassian.com/software/jira/"&gt;JIRA &lt;/a&gt;by &lt;a href="http://www.atlassian.com/"&gt;Atlassian&lt;/a&gt; is what we use for bug tracking at the company I work for. It's the best bug tracking tool out there that I can imagine. Period. One could write a whole separate blog covering the functionality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111552149344693765?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111552149344693765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111552149344693765&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111552149344693765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111552149344693765'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/05/information-flood-management.html' title='Information Flood Management'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111509088578171863</id><published>2005-05-02T20:27:00.000-07:00</published><updated>2005-07-01T10:36:35.240-07:00</updated><title type='text'>Configurator Pattern</title><content type='html'>Recently, I was refactoring some code which I was not happy with at all: there were many 'if instance of...' statements and I was looking for a way to get rid of them. Since time pressure was high (what a lame excuse), I coded faster than my mind could think about the problem. In the end, I had invented the Configurator Pattern, which can be applied to almost every problem:&lt;br /&gt;&lt;pre&gt;public interface Configurator {&lt;br /&gt;   Object configure(Object inSource)&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;It allowed me to get rid of the 'instance of' checks and all I had to do is write some detailed JavaDoc for each implementation of the interface to make sure it's clear what the method expects as input parameter and what it returns as result.&lt;br /&gt;&lt;br /&gt;Once I was done, I finally took the time to look at the design. I liked it for about 20 seconds (I'm not that fast). After this period of relieve about having found a solution, I entered a much longer period of being puzzled: how could I have gotten so carried away and end up with such an odd solution? I still don't know and I'm still uncomfortable about it... But it was only 9pm, therefore, plenty of time to make history undone and to come up with something to be proud of - which I did, after sitting back and thinking more deeply about what the problem and the context are and only then implementing a satisfying solution I could come up with (it turned out ot be the Visitor pattern, but that's not the essence of this story).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111509088578171863?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111509088578171863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111509088578171863&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111509088578171863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111509088578171863'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/05/configurator-pattern.html' title='Configurator Pattern'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111237195705569419</id><published>2005-04-01T07:57:00.000-08:00</published><updated>2005-05-14T21:57:04.536-07:00</updated><title type='text'>Electronic Communication</title><content type='html'>When I was an exchange student in Canada more than a decade ago, I used to communicate with my friends and family through letters and - once in a while - through expensive phone calls (that irritating pulse sound chirping every few seconds still makes me shiver).&lt;br /&gt;&lt;br /&gt;Today, I'm again far away from home, but it doesn't feel like it from a communication perspective: through email, chat, and internet telephony I stay in touch with friends and family (some of them more than sixty years old!) on a regular base. It's odd, but when I open my chat client and see my friends in Europe being online, I somehow feel quite close to them - even though I only see their name flashing in bold letters.&lt;br /&gt;&lt;br /&gt;Recently, I started my own personal blog which allows me to keep my friends and family back home uptodate about what's happening on the other side of the planet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/products/thunderbird/"&gt;Thunderbird &lt;/a&gt;is my favourite POP email client (yeah, never again Outlook Express). Its spam filter works quite well for me, the search engine is fast, and I love the management of multiple email accounts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;a href="http://www.trillian.cc/"&gt;Trillian &lt;/a&gt;is definitely my favourite chat client since it allows to transparently merge several chat protocols into one client application. It has a very slick user interface, it's easy to configure and use, and it's even more reliable than some of the standard chat clients.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.skype.com/"&gt;Skype&lt;/a&gt; is a great tool for internet telephony and it works perfectly well right out of the box. Even though I only have a very shabby microphone built-in to my laptop, the quality is highly sufficient. Besides, it's very funny when people look at you with a very puzzled face because they think you are going insane talking to your laptop screen loud and clear.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com"&gt;Blogger.com&lt;/a&gt; is an awesome site to have your own free blog and it's very simple to sign up and set up. I think this blogging provider is so successful because they make the process from writing to publishing so straight-forward, they provide text editing that makes you forget that you work with an HTML application, and they still keep many things very configurable for advanced users. By the way, it's now Google-owned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111237195705569419?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111237195705569419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111237195705569419&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111237195705569419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111237195705569419'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/04/electronic-communication.html' title='Electronic Communication'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111211452495896431</id><published>2005-03-29T08:40:00.000-08:00</published><updated>2005-03-29T09:15:14.560-08:00</updated><title type='text'>JDJ Running out of Topics</title><content type='html'>Today, I had the &lt;a href="http://sys-con.com/java"&gt;JDJ &lt;/a&gt;March issue on my desk and I was stunned by its cover story: "log4j vs. java.util.logging". Has the Java world become that boring? Is an absolutely trivial 3-page story on logging framework comparison the most exciting topic they can come up with today to put on the cover of their Java magazine? I don't think so!&lt;br /&gt;&lt;br /&gt;But I don't really care for the JDJ - besides all the online resources like &lt;a href="http://www.javalobby.org/"&gt;Javlobby&lt;/a&gt;, &lt;a href="http://www.theserverside.com/"&gt;TSS&lt;/a&gt;, etc., I prefer the &lt;a href="http://www.javamagazin.de/"&gt;Javamagazin&lt;/a&gt; for written material anyways.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111211452495896431?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111211452495896431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111211452495896431&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111211452495896431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111211452495896431'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/03/jdj-running-out-of-topics.html' title='JDJ Running out of Topics'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111168173582312289</id><published>2005-03-24T08:22:00.000-08:00</published><updated>2005-05-09T21:02:16.003-07:00</updated><title type='text'>Early Access Programs</title><content type='html'>The first time I got in touch with the concept of EAP (Early Access Program) was after switching to &lt;a href="http://www.jetbrains.com/idea/"&gt;IntelliJ IDEA&lt;/a&gt; back in 2001. Tools like &lt;a href="http://tmatesoft.com/"&gt;TMate&lt;/a&gt;, &lt;a href="http://www.smartcvs.com/"&gt;SmartCVS&lt;/a&gt;, &lt;a href="http://www.yourkit.com/"&gt;Yourkit&lt;/a&gt;, etc. have followed this approach as well. I know, the idea of letting people test your software before you release it is not new at all, but these EAPs are based on a different philosophy:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;everybody can participate&lt;/li&gt;   &lt;li&gt;participation is free&lt;/li&gt;   &lt;li&gt;new builds are available almost on a weekly base&lt;/li&gt;   &lt;li&gt;users report bugs and feature requests&lt;/li&gt;   &lt;li&gt;bugs get fixed&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;users can vote on feature requests&lt;br /&gt;&lt;/li&gt;&lt;li&gt;users and developers comment on entered issues&lt;/li&gt;&lt;li&gt;forum for questions, opinions, and ideas&lt;br /&gt;&lt;/li&gt;   &lt;/ul&gt;Looking at the relased versions of such tools, it becomes obvious that they do benefit from the community feedback and the interaction between users and developers:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;robust with low bug rate&lt;/li&gt;   &lt;li&gt;very high usability&lt;/li&gt;   &lt;li&gt;many nice-to-have features&lt;/li&gt;&lt;li&gt;fun to work with&lt;br /&gt;&lt;/li&gt;  &lt;/ul&gt; Therefore, I hope that many more tools will follow the JetBrains-style EAP pattern of software development.&lt;br /&gt;&lt;br /&gt;But, of course, there is also a downside to using EAP software. Sometimes, builds are not very stable or a working feature is suddenly broken in a later build. I got burnt a few times developing with IDEA 5.0 EAP and finally decided not to use it at work anymore due to critical IDE features being broken which reduced my productivity significantly. From experience, my strategy is now "EAPs @ home - official releases @ work".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111168173582312289?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.intellij.net/' title='Early Access Programs'/><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111168173582312289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111168173582312289&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111168173582312289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111168173582312289'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/03/early-access-programs.html' title='Early Access Programs'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11558950.post-111137194411960485</id><published>2005-03-20T18:25:00.000-08:00</published><updated>2005-03-27T17:16:48.880-08:00</updated><title type='text'>Catching the Thoughts</title><content type='html'>Everyday, I have many thoughts that pass my mind and soon evaporate. Most of them are nonsense, but some of them I would like to catch and follow up. In addition, expressing thoughts feels relieving and allows room for new thoughts.&lt;br /&gt;&lt;br /&gt;Okay, that's the philosophical loosy goosy explanation for the title of this blog. The truth is, after trying more than probably thirty blog names on blogspot.com, that's the best name I could come up with (my favourites were &lt;em&gt;tinythoughts&lt;/em&gt; and &lt;em&gt;mindwanderer)&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Anyways, I'll use this blog to persist observations, opinions, and ideas on issues from the world of information technology. Feedback is welcome at all times, but, more likely, no third-party person will ever stumble on this blog other than by chance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11558950-111137194411960485?l=evaporatingthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://evaporatingthoughts.blogspot.com/feeds/111137194411960485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11558950&amp;postID=111137194411960485&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111137194411960485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11558950/posts/default/111137194411960485'/><link rel='alternate' type='text/html' href='http://evaporatingthoughts.blogspot.com/2005/03/catching-thoughts.html' title='Catching the Thoughts'/><author><name>Etienne Studer</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/3811/869/1600/diving.jpg'/></author><thr:total>0</thr:total></entry></feed>
