<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>A Wicket Diary</title>
	
	<link>http://martijndashorst.com/blog</link>
	<description>Ramblings on Java, Wicket, cats and other stuff</description>
	<lastBuildDate>Thu, 24 Nov 2011 22:54:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AWicketDiary" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="awicketdiary" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Connecting to MongoLabs on heroku</title>
		<link>http://martijndashorst.com/blog/2011/11/24/connecting-to-mongolabs-on-heroku/</link>
		<comments>http://martijndashorst.com/blog/2011/11/24/connecting-to-mongolabs-on-heroku/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 22:54:41 +0000</pubDate>
		<dc:creator>Martijn Dashorst</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[wicket]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoLabs]]></category>

		<guid isPermaLink="false">http://martijndashorst.com/blog/?p=501</guid>
		<description><![CDATA[For an internal Topicus application I wanted to deploy to Heroku and utilize MongoDB through MongoLabs. The main reason to use MongoLabs: they have a free 240MB database plan, and I wanted to try MongoDB to see how it would &#8230; <a href="http://martijndashorst.com/blog/2011/11/24/connecting-to-mongolabs-on-heroku/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For an internal Topicus application I wanted to deploy to <a href="http://heroku.com">Heroku</a> and utilize MongoDB through <a href="http://devcenter.heroku.com/articles/mongolab">MongoLabs</a>. The main reason to use MongoLabs: they have a free 240MB database plan, and I wanted to try MongoDB to see how it would work.</p>
<p>Getting it to run on Heroku was kind of a challenge since I want to build a Java/Wicket application, and most documentation relies on Ruby deployments. In order to connect to MongoLabs you need to do the following:</p>
<pre>MongoURI mongoURI = new MongoURI(System.getenv("MONGOLAB_URI"));
DB connectedDB = mongoURI.connectDB();
connectedDB.authenticate(mongoURI.getUsername(), mongoURI.getPassword());</pre>
<p>What evaded me was that you need to explicitly authenticate using the provided username and password, otherwise you will get authorization errors. The documentation didn&#8217;t show this as a required step unfortunately.</p>
<p>Of course you should check if authentication succeeded, and that no error occurred.</p>
<img src="http://feeds.feedburner.com/~r/AWicketDiary/~4/KQTZSnS-OXs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://martijndashorst.com/blog/2011/11/24/connecting-to-mongolabs-on-heroku/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OS X Java 6 update 5: how to reconnect the source…</title>
		<link>http://martijndashorst.com/blog/2011/07/01/os-x-java-6-update-5-how-to-reconnect-the-source/</link>
		<comments>http://martijndashorst.com/blog/2011/07/01/os-x-java-6-update-5-how-to-reconnect-the-source/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 11:36:02 +0000</pubDate>
		<dc:creator>Martijn Dashorst</dc:creator>
				<category><![CDATA[wicket]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[os x]]></category>

		<guid isPermaLink="false">http://martijndashorst.com/blog/?p=485</guid>
		<description><![CDATA[With each update of Java on OS X, Apple nukes all the things you have done to ensure a proper ability to peruse the JDK source files. Which is a pita being a Java developer. How do you get the &#8230; <a href="http://martijndashorst.com/blog/2011/07/01/os-x-java-6-update-5-how-to-reconnect-the-source/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With each update of Java on OS X, Apple nukes all the things you have done to ensure a proper ability to peruse the JDK source files. Which is a pita being a Java developer. How do you get the source again in your IDE (in my case Eclipse Indigo):</p>
<ul>
<li>Download and install the javadeveloper_for_mac_os_x_10.6__10m3425.dmg from developer.apple.com (free registration required)</li>
<li>Install the client update (comes from the automatic update functionality in OS X), it doesn&#8217;t matter in which order you do these two steps)</li>
</ul>
<p>Next run the following commands in a terminal:</p>
<pre>cd /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
sudo ln -s /Library/Java/JavaVirtualMachines/1.6.0_26-b03-384.jdk/Contents/Home/src.jar
sudo ln -s /Library/Java/JavaVirtualMachines/1.6.0_26-b03-384.jdk/Contents/Home/docs.jar</pre>
<p>Eclipse will now be able to find the sources for the Java classes.</p>
<p>If you have problems finding the OS X Java developer downloads:</p>
<ul>
<li>Go to: <a href="http://developer.apple.com/resources/">Resources</a></li>
<li>Click on &#8220;developer downloads&#8221;</li>
<li>Click on &#8220;Java&#8221; in the right side menu</li>
</ul>
<p>Apple made it impossible to provide a direct link, so you&#8217;ll have to navigate the developer website yourself.</p>
<p>(updated with navigation to Java downloads)</p>
<img src="http://feeds.feedburner.com/~r/AWicketDiary/~4/eiBlLI0iDfM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://martijndashorst.com/blog/2011/07/01/os-x-java-6-update-5-how-to-reconnect-the-source/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>EHCache and Quartz phone home during startup</title>
		<link>http://martijndashorst.com/blog/2011/02/21/ehcache-and-quartz-phone-home-during-startup/</link>
		<comments>http://martijndashorst.com/blog/2011/02/21/ehcache-and-quartz-phone-home-during-startup/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 16:05:16 +0000</pubDate>
		<dc:creator>Martijn Dashorst</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[ehcache]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[terracotta]]></category>
		<category><![CDATA[trust]]></category>

		<guid isPermaLink="false">http://martijndashorst.com/blog/?p=482</guid>
		<description><![CDATA[One might call EHCache (the Java caching library everybody loves) ET-Cache, since it keeps phoning home during startup. While probably just implemented as a usability feature, I find it quite nefarious, especially since Quartz (the job queuing library everybody loves) &#8230; <a href="http://martijndashorst.com/blog/2011/02/21/ehcache-and-quartz-phone-home-during-startup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One might call EHCache (the Java caching library everybody loves) ET-Cache, since it keeps phoning home during startup. While probably just implemented as a usability feature, I find it quite nefarious, especially since Quartz (the job queuing library everybody loves) does *exactly* the same.</p>
<p>The culprit lies in <tt>net.sf.ehcache.util.UpdateChecker</tt> and <tt>org.quartz.util.UpdateChecker</tt>.</p>
<p>Information sent to Terracotta HQ include:</p>
<ul>
<li>a client ID taken from your local IP</li>
<li>os.name</li>
<li>java.vm.name</li>
<li>java.version</li>
<li>os.arch</li>
<li>QuartzVersion</li>
<li>EhCache version</li>
<li>something about source</li>
<li>uptime-secs</li>
<li>patch level from Quartz/EhCache</li>
</ul>
<p>Needless to say, this is something that should not be enabled by default, and only with a big opt-in questionnaire&#8230; This also sparks the question if the cache doesn&#8217;t send *more* information home than just the update information? It is after all a product designed to send information across the network—what is one extra node more in the grand scheme of things? Has anybody audited the code for nefarious code?</p>
<p>In any case: to disable phoning home everybody should start their applications with the following command line parameters:</p>
<ul>
<li><tt>-Dnet.sf.ehcache.skipUpdateCheck=true</tt></li>
<li><tt>-Dorg.terracotta.quartz.skipUpdateCheck=true</tt></li>
</ul>
<p>Or you can configure it in your <tt>ehcache.xml</tt> according <a href="http://www.ehcache.org/documentation/configuration.html#Update_Checker">to the user manual</a>. Quartz is <a href="http://www.quartz-scheduler.org/docs/configuration/ConfigMain.html">similarly configurable in the quartz.properties</a>.</p>
<p>According to <a href="http://tech.puredanger.com/2010/07/28/open-source-bargain/">Alex Miller</a>, a former Terracotta employee, it is not evil and a price we need to pay to use open source software.</p>
<p>I disagree strongly: this undermines the premise of trustworthy open source. The download page doesn&#8217;t mention the phoning home, neither does the announcement of ehcache 2.2 (last july), it is summarily mentioned in the configuration part of the manual, which you typically don&#8217;t read when you just upgrade your dependency to the latest version and see that everything still works as usual. The same goes for Quartz: it was apparently added in quartz 1.7.3, but no mention of this in the release notes. Neither of the possibility to disable phoning home which was <a href="http://jira.codehaus.org/browse/GRAILSPLUGINS-2221">added in quartz 1.8</a>.</p>
<p>In my opinion, this is unacceptable behavior for any open source product, which severely undermines the trust we spent building in the last couple of years making open source a viable alternative to closed software.</p>
<p>SHAME ON YOU TERRACOTTA!</p>
<img src="http://feeds.feedburner.com/~r/AWicketDiary/~4/2oDUbVsYneQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://martijndashorst.com/blog/2011/02/21/ehcache-and-quartz-phone-home-during-startup/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Oracle tells JCP EC to fuck off and bow to its will</title>
		<link>http://martijndashorst.com/blog/2010/12/23/oracle-tells-jcp-ec-to-fuck-off-and-bow-to-its-will/</link>
		<comments>http://martijndashorst.com/blog/2010/12/23/oracle-tells-jcp-ec-to-fuck-off-and-bow-to-its-will/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 09:21:23 +0000</pubDate>
		<dc:creator>Martijn Dashorst</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://martijndashorst.com/blog/?p=476</guid>
		<description><![CDATA[At the <a href="http://jcp.org/aboutJava/communityprocess/summaries/2010/October2010-public-minutes.html">JCP EC meeting</a> in October 2010 Oracle stated that "allowing the conversation to go forward" is more important than abiding by the JSPA rules, forcing Doug Lea to <a href="http://gee.cs.oswego.edu/dl/html/jcp22oct10.html">resign his position on the JCP EC</a>. <a href="http://martijndashorst.com/blog/2010/12/23/oracle-tells-jcp-ec-to-fuck-off-and-bow-to-its-will/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://jcp.org/aboutJava/communityprocess/summaries/2010/October2010-public-minutes.html">published minutes</a> of the JCP EC meeting in Bonn last October, the complete (might I say <a href="http://thebestpageintheuniverse.net/c.cgi?u=epic">epic</a>) failure of Oracle&#8217;s Java Community stewardship becomes visible (emphasis mine):</p>
<blockquote><p>Doug asked Oracle to acknowledge that it was asking the ECs to <b>condone breaking the JSPA rules</b>. He said that if he was put in a position where he had to condone breaking the rules he would have to resign. Ken said that he understood, and would regret it if Doug resigned, but pointed out the <b>importance of allowing the conversation to go forward</b>.</p></blockquote>
<p>Doug Lea <a href="http://gee.cs.oswego.edu/dl/html/jcp22oct10.html">resigned from the JCP EC</a> on 22 October 2010.</p>
<p>How is <b>that</b> for <a href="http://www.theserverside.com/news/thread.tss?thread_id=61409#341434">being positive and constructive</a>?</p>
<img src="http://feeds.feedburner.com/~r/AWicketDiary/~4/KwFMtSZUbGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://martijndashorst.com/blog/2010/12/23/oracle-tells-jcp-ec-to-fuck-off-and-bow-to-its-will/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Atlassian Ultimate Wallboard competition comes to an end</title>
		<link>http://martijndashorst.com/blog/2010/12/13/atlassian-ultimate-wallboard-competition-comes-to-an-end/</link>
		<comments>http://martijndashorst.com/blog/2010/12/13/atlassian-ultimate-wallboard-competition-comes-to-an-end/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 22:36:08 +0000</pubDate>
		<dc:creator>Martijn Dashorst</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://martijndashorst.com/blog/?p=471</guid>
		<description><![CDATA[This wallboard also boasts a very clean and simple design with sexy animations.  Products stats, builds and issue details are complimented by local railway schedules, twitter, weather, and google calendars -- including birthdays and beer time! <a href="http://martijndashorst.com/blog/2010/12/13/atlassian-ultimate-wallboard-competition-comes-to-an-end/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last month we submitted an internal project at Topicus into an international competition hosted by <a href="http://ultimatewallboard.com/">Atlassian concerning so called Wallboards</a>. Wallboards are (agile) information radiators which show stuff like build status, sprint planning and other interesting metrics. While we didn&#8217;t win the competition (congratulations Vodafone Web Team!), we are glad to have participated in this competition!</p>
<p><iframe src="http://player.vimeo.com/video/17780865?byline=0&amp;portrait=0" width="400" height="300" frameborder="0"></iframe></p>
<p>Our board was heavily inspired by the <a href="http://www.panic.com/blog/2010/03/the-panic-status-board/">Panic Status Board</a>, and we took their premise and went a bit overboard. Our dashboard (dubbed &#8220;Topicus Board&#8221;) shows our project status: production server status, average request times, number of concurrent users, requests per minute, Hudson build status, number of unit tests, server uptime, deployed application versions, a list of servers with status indication (up/down), etc. Added to that we show departure times of trains of our local train station (the Topicus offices are next to the Deventer central station), SVN commits and mantis issues, Google calendar events and the local weather.</p>
<p>We built our board with Java using Apache Wicket (raise your hand if you thought we&#8217;d use something else <img src='http://martijndashorst.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , jquery (wiquery), CSS3 and HTML5. The board animates the living daylights out of our Dell workstation (Intel embedded graphics and Linux drivers don&#8217;t work too great). The code is open source (GPL) and available from <a href="https://github.com/dashorst/dashboard">https://github.com/dashorst/dashboard</a>.</p>
<p>When we started with the project Atlassian hosted a contest for the ultimate wallboard, so we figured to enter the competition, and get ourselves a nice deadline. The competition closed November 24th. And today the results finally came in. Unfortunately our wallboard didn&#8217;t take the grand prize for being the ultimate wallboard, but we did manage to<a href="http://blogs.atlassian.com/news/2010/12/ultimate-wallboard-winner.html"> get a honorable mention</a>:</p>
<blockquote><p>This wallboard also boasts a very clean and simple design with sexy animations.  Products stats, builds and issue details are complimented by local railway schedules, twitter, weather, and google calendars &#8212; including birthdays and beer time!</p></blockquote>
<p>Judge <a href="http://ultimatewallboard.com/judges#judge-807">Dick Wall</a> added:</p>
<blockquote><p>Features like tracking transport delays, the excellent two speed ticker at the bottom, and the polish of the CSS animations all stand out in this demo.</p></blockquote>
<p>We thank Atlassian for hosting this competition and hope they&#8217;ll host one next year.</p>
<img src="http://feeds.feedburner.com/~r/AWicketDiary/~4/8iWZsY4FTKg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://martijndashorst.com/blog/2010/12/13/atlassian-ultimate-wallboard-competition-comes-to-an-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 1.501 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-24 14:39:07 -->

