<?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-2323778827208550110</id><updated>2012-02-17T03:00:44.351+01:00</updated><category term='Firefox'/><category term='Jenkins'/><category term='Galaxy Tab'/><category term='Java EE'/><category term='Maven'/><category term='VirtualBox'/><category term='GlassFish'/><category term='Selenium'/><category term='Ubuntu'/><category term='Windows'/><category term='Java'/><category term='Mercurial'/><category term='WebDriver'/><category term='Books'/><title type='text'>Eirik's public note to self</title><subtitle type='html'>A place where I can place useful notes and ideas so that they are easily accessible and maybe be useful to others.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.relativt.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-7045726640309995059</id><published>2011-12-01T17:08:00.001+01:00</published><updated>2011-12-01T17:13:51.673+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jenkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Mercurial'/><title type='text'>How to trigger a build in Jenkins for each commit in Mercurial</title><content type='html'>Just add the following to the &lt;a href="http://www.selenic.com/mercurial/hgrc.5.html"&gt;hgrc file&lt;/a&gt; in the project's hg directory:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;[hooks]&lt;br /&gt;commit.jenkins = java -jar &amp;lt;path to jenkins-cli.jar&amp;gt; -s http://&amp;lt;Jenkins URL&amp;gt;/ build -c &amp;lt;project name&amp;gt;&lt;/blockquote&gt;To get the jenkins-cli.jar file, follow the instructions in this &lt;a href="http://blog.relativt.net/2011/12/how-to-trigger-jenkins-build-from.html"&gt;post&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;More information on &lt;a href="http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html"&gt;Mercurial hooks&lt;/a&gt; can be found in &lt;a href="http://hgbook.red-bean.com/"&gt;Mercurial: The Definitive Guide&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-7045726640309995059?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/7045726640309995059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/12/how-to-trigger-build-in-jenkins-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/7045726640309995059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/7045726640309995059'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/12/how-to-trigger-build-in-jenkins-for.html' title='How to trigger a build in Jenkins for each commit in Mercurial'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-3044855009741423086</id><published>2011-12-01T17:00:00.001+01:00</published><updated>2011-12-01T17:06:18.414+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jenkins'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>How to trigger a Jenkins build from command-line</title><content type='html'>To trigger a Jenkins build from command-line is pretty simple. In *nix, you can use wget to trigger the build via a HTTP request. If you don't have that kind of tool available on your platform (e.g. Windows), the CLI-client is a useful option.&lt;br /&gt;&lt;br /&gt;First you need to download the client jar file; you can get this from http://&amp;lt;your Jenkins server&amp;gt;/cli. Place the jar file in an accessible location.&lt;br /&gt;&lt;br /&gt;To start the build, just issue the command:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;java -jar jenkins-cli.jar -s http://&amp;lt;your Jenkins server&amp;gt;/ build &amp;lt;project name&amp;gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-3044855009741423086?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/3044855009741423086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/12/how-to-trigger-jenkins-build-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3044855009741423086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3044855009741423086'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/12/how-to-trigger-jenkins-build-from.html' title='How to trigger a Jenkins build from command-line'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-3541853651454616374</id><published>2011-09-04T04:09:00.001+02:00</published><updated>2011-09-04T04:10:10.151+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GlassFish'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>GlassFish v3: Picky about where the libraries in an EAR are located</title><content type='html'>While trying to deploy an EAR-application on GlassFish v3, I got an error about missing class files. The mentioned class files where from external libraries packaged along with my EJB inside the ear-file. I found this strange since the same ear-file deployed just fine on GlassFish v2. Strange...&lt;br /&gt;&lt;br /&gt;After a couple of hours with trial-and-error and my favorite troubleshooter (Google), I came across another guy who had &lt;a href="http://stackoverflow.com/questions/4721793/how-to-deploy-a-library-with-java-ee-6-glassfish-3-x"&gt;similar problems&lt;/a&gt;. It turned out that GlassFish v3 is more picky about where libraries are located. The short answer: Just add a simple line in the pom.xml:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;library-directory&amp;gt;lib&amp;lt;/library-directory&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-3541853651454616374?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/3541853651454616374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/09/glassfish-v3-picky-about-where.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3541853651454616374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3541853651454616374'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/09/glassfish-v3-picky-about-where.html' title='GlassFish v3: Picky about where the libraries in an EAR are located'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-5387594324496531231</id><published>2011-09-04T03:59:00.000+02:00</published><updated>2011-09-04T03:59:34.648+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>killall in Windows</title><content type='html'>Recently I ran into a serious annoyance while using a Windows computer at work. Something triggered a cascade of processes that crashed and spawned other Dr Watson-threads. This bugged down my computer enough to be pain in the ass, and I didn't want to use the reset button on my computer, so I opened the Task Manager and looked for something that resembled &lt;i&gt;killall&lt;/i&gt; from Unix. No such luck.&lt;br /&gt;&lt;br /&gt;Once more Google provided me with a solution. How-to Geek had written an &lt;a href="http://www.howtogeek.com/howto/windows-vista/how-do-i-kill-all-the-iexploreexe-processes-at-once/"&gt;article&lt;/a&gt; about the taskkill utility in Windows:&lt;br /&gt;&lt;blockquote&gt;taskkill /F /IM &amp;lt;processname.exe&amp;gt; /T&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-5387594324496531231?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/5387594324496531231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/09/killall-in-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/5387594324496531231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/5387594324496531231'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/09/killall-in-windows.html' title='killall in Windows'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-6321466585116197512</id><published>2011-09-04T03:48:00.000+02:00</published><updated>2011-09-04T03:48:13.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mercurial'/><title type='text'>How to use a global ignore file in Mercurial</title><content type='html'>I got tired of manually adding common elements to the .hgignore-file, so after some quick research the option for a global ignore file presented itself as the solution to my problem.&lt;br /&gt;&lt;br /&gt;Just a few lines in the Mercurial user file is needed:&lt;br /&gt;&lt;blockquote&gt;[ui]&lt;br /&gt;ignore = C:\&amp;lt;some path&amp;gt;\mercurial.ignore&lt;/blockquote&gt;Example content for the ignore-file:&lt;br /&gt;&lt;blockquote&gt;target&lt;/blockquote&gt;&amp;nbsp;This information is also available in the &lt;a href="http://www.selenic.com/mercurial/hgrc.5.html"&gt;user manual&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-6321466585116197512?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/6321466585116197512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/09/how-to-use-global-ignore-file-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/6321466585116197512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/6321466585116197512'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/09/how-to-use-global-ignore-file-in.html' title='How to use a global ignore file in Mercurial'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-1419652111754878305</id><published>2011-07-08T22:57:00.001+02:00</published><updated>2011-07-08T23:14:39.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='WebDriver'/><category scheme='http://www.blogger.com/atom/ns#' term='Selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Web harvesting and GUI testing with WebDriver</title><content type='html'>For a spare time project I've been working on lately, I had to web harvest (also known as screen scraping) a couple of web pages to get the information I needed. A coworker recommended WebDriver, a part of &lt;a href="http://seleniumhq.org/"&gt;Selenium&lt;/a&gt; testing framework.&lt;br /&gt;&lt;br /&gt;In a nutshell, WebDriver is a library that controls your browser from code. This can be useful when doing GUI testing or when you want to simulate a web browser to fetch something from the web.&lt;br /&gt;&lt;br /&gt;You can control different browsers (Firefox, Chrome, etc). In my experiment I used Firefox. WebDriver currently only support version 3 of Firefox, so I had to download it and point WebDriver to where it was located.&lt;br /&gt;&lt;br /&gt;WebDriver worked very well for my project and even though I'm not a big fan of web harvesting the overall result was good enough.&lt;br /&gt;&lt;br /&gt;How I pointed WebDriver to Firefox 3 and turned on autodownload for Excel spreadsheets:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.setProperty("webdriver.firefox.bin", "/opt/firefox-3.6/firefox/firefox");&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FirefoxProfile fp = new FirefoxProfile();&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp.setPreference("browser.download.dir", "/tmp/firefox-webdriver");&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp.setPreference("browser.download.folderList", 2);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/mx-msdownload");&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebDriver driver = new FirefoxDriver(fp);&lt;/span&gt;&lt;/blockquote&gt;The Maven dependency looks like this:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;org.seleniumhq.webdriver&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;webdriver-firefox&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;version&amp;gt;0.9.7376&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-1419652111754878305?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/1419652111754878305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/07/web-harvesting-and-gui-testing-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/1419652111754878305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/1419652111754878305'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/07/web-harvesting-and-gui-testing-with.html' title='Web harvesting and GUI testing with WebDriver'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-8446439758570071365</id><published>2011-07-05T01:52:00.000+02:00</published><updated>2011-07-05T01:52:35.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>My list of recomended reading for software developers</title><content type='html'>Here is a list of books and online resources that I would recommend to fellow developers. &lt;br /&gt;&lt;br /&gt;General books&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/"&gt;The Pragmatic Programmer: From Journeyman to Master&lt;/a&gt; by Andrew Hunt and David Thomas&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/"&gt;Code Complete: A Practical Handbook of Software Construction&lt;/a&gt; by Steve McConnell&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439/"&gt;Peopleware: Productive Projects and Teams&lt;/a&gt; by Tom DeMarco and Timothy Lister&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Facts-Fallacies-Software-Engineering-Robert/dp/0321117425/"&gt;Facts and Fallacies of Software Engineering&lt;/a&gt; by Robert L. Glass&lt;/li&gt;&lt;/ul&gt;Java books &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/"&gt;Effective Java (2nd Edition)&lt;/a&gt; by Joshua Bloch&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/2323778827208550110-8446439758570071365?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/8446439758570071365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/07/my-list-of-recomended-reading-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/8446439758570071365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/8446439758570071365'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/07/my-list-of-recomended-reading-for.html' title='My list of recomended reading for software developers'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-1125160857161513249</id><published>2011-07-03T20:51:00.000+02:00</published><updated>2011-07-03T20:51:13.934+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How to install Ubuntu 11.04 in VirtualBox</title><content type='html'>I wanted to have a clean environment where I could try different things and decided to install &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; on my desktop.&lt;br /&gt;&lt;br /&gt;To install the host software under Ubuntu was easy. Just a simple apt-get command:&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install virtualbox-ose&lt;/blockquote&gt;The installation of the guest OS was easy enough, just point and click. But when I tried to install the guest additions (so that the guest OS could access folders on the host) the guest OS would not boot up again. This happened a few times and the result was reinstall the guest OS. Next time I will remember to take a snapshot just after the install finishes.&lt;br /&gt;&lt;br /&gt;After a simple google search, I found a &lt;a href="http://flnkr.com/2011/04/29/installing-virtualbox-guest-additions-on-ubuntu-11-04/"&gt;blog entry&lt;/a&gt; on how to install the guest additions via apt-get:&lt;br /&gt;&lt;blockquote&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install virtualbox-ose-guest-utils&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-1125160857161513249?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/1125160857161513249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/07/how-to-install-ubuntu-1104-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/1125160857161513249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/1125160857161513249'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/07/how-to-install-ubuntu-1104-in.html' title='How to install Ubuntu 11.04 in VirtualBox'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2323778827208550110.post-3063942606854596483</id><published>2011-07-02T19:46:00.001+02:00</published><updated>2011-07-02T20:04:01.381+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Galaxy Tab'/><title type='text'>How to change default browser on Samsung Galaxy Tab</title><content type='html'>I wanted to change the default browser on my Galaxy Tab to Firefox, but couldn't find a setting for it (in an intuitive way). So after some googling and trial and error, I found what I was looking for.&lt;br /&gt;&lt;br /&gt;The solution: Programs -&amp;gt; Settings -&amp;gt; Applications -&amp;gt; Administer programs -&amp;gt; All -&amp;gt; Select the current default browser -&amp;gt; Clear standard&lt;br /&gt;&lt;br /&gt;Note: The user interface on my tablet is in norwegian, so I had to translate the menu items into english. I think the translations should be close enough to get others on the right track.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2323778827208550110-3063942606854596483?l=blog.relativt.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.relativt.net/feeds/3063942606854596483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.relativt.net/2011/07/how-to-change-default-browser-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3063942606854596483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2323778827208550110/posts/default/3063942606854596483'/><link rel='alternate' type='text/html' href='http://blog.relativt.net/2011/07/how-to-change-default-browser-on.html' title='How to change default browser on Samsung Galaxy Tab'/><author><name>Eirik Tenold</name><uri>http://www.blogger.com/profile/15078255247809702276</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://3.bp.blogspot.com/-cZjeTwMVj_Q/ThJVh5sPR3I/AAAAAAAAAAU/SAtyQk38cZU/s220/IMG_0120_cropped.JPG'/></author><thr:total>1</thr:total></entry></feed>
