<?xml version="1.0" encoding="UTF-8"?>
<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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>dow.ngra.de</title>
	
	<link>http://dow.ngra.de</link>
	<description>no buzzwords allowed</description>
	<lastBuildDate>Thu, 18 Feb 2010 13:00:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dow_ngra_de" /><feedburner:info uri="dow_ngra_de" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>A job offer and a kinda cool puzzle</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/PtW7tQCjVvY/</link>
		<comments>http://dow.ngra.de/2010/02/18/a-job-offer-and-a-kinda-cool-puzzle/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 12:59:51 +0000</pubDate>
		<dc:creator>Jevgeni Kabanov</dc:creator>
				<category><![CDATA[cool]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1211</guid>
		<description><![CDATA[ZeroTurnaround is looking for an infrastructure engineer in Tartu (http://bit.ly/zt-infra-eng). If you want to apply or just have a little fun, solve this puzzle:
UEsDBBQAAAAIAIVyUjx/yWgsbQIAAP0CAAAHABwAcHJvYmxlbVVUCQADeTB9S3ow
fUt1eAsAAQToAwAABOgDAAAdUsmumlAA3fcrGtNFX1zABblgXm2jOACXSRBEY9Jc
5knmSb6+vi7OkJyzO+fXnx8T6W4WrB3LbiuOBxXMfNRNW8Wn9NipMa4QbVv8MQVL
05STYRfqADEysKpWFm/3mViqu5EtXlzGPVl6zauMly7vUNt3S9ji1LESwdn63jCN
DZkNHrzCc78lb8/mucZtFFM45ckrs1XnmtOYo34WENfnXkzC9vQ6s3sJEpCifalp
BtvFDjI50bJunpHhegTuhAKuKsh49uGhN9tXPJpkNxknpCaHjgoxivp4MNg4YQSG
V+K8IXs3KvSzK2IcaJOxvWny89ztEn66vIpYcNpw1jnkr7CplWUCGGNneZ0Y3mdK
du/0Ss2S8Zqve2ZQWWQcIsDMh/spoPTCEujcunKTWHZ9JZryK6YlAqi7Z+4noaHM
+SC2KyYws6Vk3gqt4FuqESqyfQ6jSjfkIO0yXJgXr6zUI0L6+CKOcmjZvkFyrmxd
92QoKQ0WHcmRqgiKJ7+I6J0xK8d70ALbNBQh8LMlPLlBefMRVfOVkupsao181s+X
alqrQprbp3QH0CuTxEminYhUtGLm8htNsEVWaVvbzxrTTGTuAqlSEbsXQiMdjSCh
SxWaNYe6hknmS6ND+6g01+aoFnZ/qaURCYTRQBEf9vEp9UmrIxTb7bnzMOFzaFE1
cagV4M+WbexrQrDLPf/eqjROlTqeNYFVbwpYLvV+HTgdbcxavlan9ZhtFp/vb3qb
hYsfE0sHcPXXf0yQeYAV/dbQfxvmfyfYLKIHYKkHYMA7Cd6Ab3i4Cxaf34MB5z+/
Wl/kfZH78fHx+ef3t39QSwECHgMUAAAACACFclI8f8loLG0CAAD9AgAABwAYAAAA
AAABAAAApIEAAAAAcHJvYmxlbVVUBQADeTB9S3V4CwABBOgDAAAE6AMAAFBLBQYA
AAAAAQABAE0AAACuAgAAAAA=
Please don&#8217;t post the answer in the comments, but you&#8217;re welcome to tell what game is the quote from and how long did it take you to solve it.
]]></description>
			<content:encoded><![CDATA[<p>ZeroTurnaround is looking for an infrastructure engineer in Tartu (<a href="http://bit.ly/zt-infra-eng">http://bit.ly/zt-infra-eng</a>). If you want to apply or just have a little fun, solve this puzzle:</p>
<p>UEsDBBQAAAAIAIVyUjx/yWgsbQIAAP0CAAAHABwAcHJvYmxlbVVUCQADeTB9S3ow<br />
fUt1eAsAAQToAwAABOgDAAAdUsmumlAA3fcrGtNFX1zABblgXm2jOACXSRBEY9Jc<br />
5knmSb6+vi7OkJyzO+fXnx8T6W4WrB3LbiuOBxXMfNRNW8Wn9NipMa4QbVv8MQVL<br />
05STYRfqADEysKpWFm/3mViqu5EtXlzGPVl6zauMly7vUNt3S9ji1LESwdn63jCN<br />
DZkNHrzCc78lb8/mucZtFFM45ckrs1XnmtOYo34WENfnXkzC9vQ6s3sJEpCifalp<br />
BtvFDjI50bJunpHhegTuhAKuKsh49uGhN9tXPJpkNxknpCaHjgoxivp4MNg4YQSG<br />
V+K8IXs3KvSzK2IcaJOxvWny89ztEn66vIpYcNpw1jnkr7CplWUCGGNneZ0Y3mdK<br />
du/0Ss2S8Zqve2ZQWWQcIsDMh/spoPTCEujcunKTWHZ9JZryK6YlAqi7Z+4noaHM<br />
+SC2KyYws6Vk3gqt4FuqESqyfQ6jSjfkIO0yXJgXr6zUI0L6+CKOcmjZvkFyrmxd<br />
92QoKQ0WHcmRqgiKJ7+I6J0xK8d70ALbNBQh8LMlPLlBefMRVfOVkupsao181s+X<br />
alqrQprbp3QH0CuTxEminYhUtGLm8htNsEVWaVvbzxrTTGTuAqlSEbsXQiMdjSCh<br />
SxWaNYe6hknmS6ND+6g01+aoFnZ/qaURCYTRQBEf9vEp9UmrIxTb7bnzMOFzaFE1<br />
cagV4M+WbexrQrDLPf/eqjROlTqeNYFVbwpYLvV+HTgdbcxavlan9ZhtFp/vb3qb<br />
hYsfE0sHcPXXf0yQeYAV/dbQfxvmfyfYLKIHYKkHYMA7Cd6Ab3i4Cxaf34MB5z+/<br />
Wl/kfZH78fHx+ef3t39QSwECHgMUAAAACACFclI8f8loLG0CAAD9AgAABwAYAAAA<br />
AAABAAAApIEAAAAAcHJvYmxlbVVUBQADeTB9S3V4CwABBOgDAAAE6AMAAFBLBQYA<br />
AAAAAQABAE0AAACuAgAAAAA=</p>
<p>Please don&#8217;t post the answer in the comments, but you&#8217;re welcome to tell what game is the quote from and how long did it take you to solve it.</p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/PtW7tQCjVvY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2010/02/18/a-job-offer-and-a-kinda-cool-puzzle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2010/02/18/a-job-offer-and-a-kinda-cool-puzzle/</feedburner:origLink></item>
		<item>
		<title>Story of a startup: How to Convert a Pair of Glasses into Fame and Fortune?</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/FsbYEl_-tVE/</link>
		<comments>http://dow.ngra.de/2010/02/09/story-of-a-startup-how-to-convert-a-pair-of-glasses-into-fame-and-fortune/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 18:05:16 +0000</pubDate>
		<dc:creator>Ivo Mägi</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[crosspost]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[glasses]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[phb]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1200</guid>
		<description><![CDATA[Another guest post from our PHB. Obviously he has been reading too much Techcrunch, just discovered icanhascheezburger.com and slacking off during his day job.
This is a story of a start-up built around the nerdiest glasses on earth. If you wonder why and how we&#8217;re doing it, how exactly will we make millions of dollars off [...]]]></description>
			<content:encoded><![CDATA[<p><em>Another guest post from our PHB. Obviously he has been reading too much <a href="http://www.techcrunch.com">Techcrunch</a>, just discovered <a href="http://icanhascheezburger.com">icanhascheezburger.com</a> and slacking off during his day job.</em></p>
<p><a href="http://dow.ngra.de/wp-content/uploads/2010/02/glasses.png"><img src="http://dow.ngra.de/wp-content/uploads/2010/02/glasses-300x126.png" alt="" title="glasses" width="300" height="126" class="alignleft size-medium wp-image-1201" /></a>This is a story of a start-up built around the nerdiest glasses on earth. If you wonder why and how we&#8217;re doing it, how exactly will we make millions of dollars off of it then you&#8217;re in luck. We&#8217;re planning to document and publish everything on our website and we have just released the first in the series, <a href="http://spotthenerd.com/2010/02/09/converting-a-pair-of-glasses-into-fame-and-fortune/">Converting a pair of glasses into fame and fortune</a>.</p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/FsbYEl_-tVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2010/02/09/story-of-a-startup-how-to-convert-a-pair-of-glasses-into-fame-and-fortune/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2010/02/09/story-of-a-startup-how-to-convert-a-pair-of-glasses-into-fame-and-fortune/</feedburner:origLink></item>
		<item>
		<title>Bleeding edge of development – upgrading system and ANT stops working</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/1wzgXdFfiW0/</link>
		<comments>http://dow.ngra.de/2009/12/28/bleeding-edge-of-development-upgrading-system-and-ant-stops-working/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 14:32:15 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1185</guid>
		<description><![CDATA[I run Debian Unstable as my main desktop system. I shoot myself in the foot couple of times a year with the upgrades but I like using the bleeding edge of development.
Today after my &#8220;regular&#8221; upgrade I noticed that one of the ANT tasks did not perform as I would have expected.

/home/toomasr/workspace/project/build.xml:459: The following error [...]]]></description>
			<content:encoded><![CDATA[<p>I run Debian <a href="http://www.debian.org/releases/unstable/">Unstable</a> as my main desktop system. I shoot myself in the foot couple of times a year with the upgrades but I like using the bleeding edge of development.</p>
<p>Today after my &#8220;regular&#8221; upgrade I noticed that one of the ANT tasks did not perform as I would have expected.</p>

<div class="wp_syntax"><div class="code"><pre class="ant" style="font-family:monospace;">/home/toomasr/workspace/project/build.xml:459: The following error occurred while executing this line:
/home/toomasr/workspace/project/changelogic-build.xml:72: Please check the correctness of the root url property. The server returned HTTP response code 300 or above for the URL http://172.17.57.242/lib/changelogic-build.xml</pre></div></div>

<p>A quick <code>ant -debug</code> did not help me much.</p>

<div class="wp_syntax"><div class="code"><pre class="ant" style="font-family:monospace;">/home/toomasr/workspace/project/build.xml:459: The following error occurred while executing this line:
/home/toomasr/workspace/project/changelogic-build.xml:72: Please check the correctness of the root url property. The server returned HTTP response code 300 or above for the URL http://172.17.57.242/lib/changelogic-build.xml                                                                                                                                       
        at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:508)                                                                                   
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:369)                                                                                                                  
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)                                                                                                     
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                                                              
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)                                                                                            
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)                                                                                    
        at java.lang.reflect.Method.invoke(Method.java:597)                                                                                                                         
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)                                                                                              
        at org.apache.tools.ant.Task.perform(Task.java:348)                                                                                                                         
        at org.apache.tools.ant.Target.execute(Target.java:357)                                                                                                                     
        at org.apache.tools.ant.Target.performTasks(Target.java:385)                                                                                                                
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: /home/toomasr/workspace/project/changelogic-build.xml:72: Please check the correctness of the root url property. The server returned HTTP response code 300 or above for the URL http://172.17.57.242/lib/changelogic-build.xml
        at org.apache.tools.ant.taskdefs.Exit.execute(Exit.java:142)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
        at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:367)
        ... 17 more
--- Nested Exception ---
/home/toomasr/workspace/project/changelogic-build.xml:72: Please check the correctness of the root url property. The server returned HTTP response code 300 or above for the URL http://172.17.57.242/lib/changelogic-build.xml
        at org.apache.tools.ant.taskdefs.Exit.execute(Exit.java:142)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
        at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:367)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
&nbsp;
Total time: 3 seconds</pre></div></div>

<p>The access log on the server did not show anything for the request. Browsing to the url with FireFox worked just fine. Where to even start debugging this? The simple <code>env</code> did not show any proxies configured either. Quite lost.</p>
<p>At last I decided to trace the problem with <a href="http://en.wikipedia.org/wiki/Strace">strace</a>. <code>strace -f ant my_target > result 2>&#038;1</code> produced 35 892 lines of output. Searching for the ip showed me the message</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">35596 [pid 13544] connect(46, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, &quot;::ffff:172.17.57.242&quot;, &amp;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNR      EACH (Network is unreachable)</pre></div></div>

<p>Weehah, I&#8217;m getting somewhere! Googling a bit showed me <a href="http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/ced099cf65123551">multiple</a> <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560142">solutions</a>. Either a system wide <code>sysctl -w net.ipv6.bindv6only=0</code> or just <code>-Djava.net.preferIPv4Stack=true</code> will do the trick. I hope this helps somebody.</p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/1wzgXdFfiW0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/12/28/bleeding-edge-of-development-upgrading-system-and-ant-stops-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/12/28/bleeding-edge-of-development-upgrading-system-and-ant-stops-working/</feedburner:origLink></item>
		<item>
		<title>Hacking with IDE plugins – fun art of binary patching</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/5ZLW-ARua6M/</link>
		<comments>http://dow.ngra.de/2009/12/11/hacking-with-ide-plugins-fun-art-of-binary-patching/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 15:34:26 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Java Virtual Machine]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[patching]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1158</guid>
		<description><![CDATA[Today&#8217;s software is so much about integration. You can have a cool Java utility but if you don&#8217;t have an Eclipse plugin for that, a large % of Eclipse users won&#8217;t adopt (IDEA &#38; NetBeans users require plugins just as much).  In the consumer market the same goes for browser extensions and iPhone apps [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s software is so much about integration. You can have a cool Java utility but if you don&#8217;t have an Eclipse plugin for that, a large % of Eclipse users won&#8217;t adopt (IDEA &amp; NetBeans users require plugins just as much).  In the consumer market the same goes for browser extensions and iPhone apps that support the main service with better accessibility.</p>
<p>There are different ways for integration. Usually it is done via an <a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a>. The host platform offers some hooks into the system and you can use them to add some custom functionality on top of the host (or maybe just integrate your own product with the host). The result of this in the IDE world is a <b>plugin</b>. <a href="http://www.jrebel.com">JRebel</a> (the product our team is spending the most development time on) has plugins for application servers, frameworks and even IDEs.</p>
<p>If you&#8217;re in luck you can achieve everything with the API, if not you need other tricks. If the API does not offer certain public methods or access to some internal fields you can go in with <a href="http://en.wikipedia.org/wiki/Reflection_%28computer_science%29">reflection</a> and still use them (of course there are no guarantees if the internals stay the same on version changes).</p>
<p>One step further to the darkside is binary patching. By binary patching I mean adding/changing/removing methods/fields/classes in runtime. This is the approach that we had to take when writing the JRebel <a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=22254">NetBeans plugin</a>.</p>
<p>On NetBeans startup we lookup a debugger class and on success try to patch it. In 2009 and using the JVM (not native apps) it is quite an easy task, at least for the most part. No assembler involved (of course you could be using a bytecode generation library), no need to do jumps to correct offsets or even read assembler (or bytecode).</p>
<p>In our case we use the <a href="http://en.wikipedia.org/wiki/Javassist">Javassist</a> library. It is a matter of inserting Java code embedded into a String to methods looked up via reflection. For example the following code adds some new code into the beginning of a method.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">ctc.<span style="color: #006600;">getDeclaredMethod</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;setRequests&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">insertAfter</span><span style="color: #66cc66;">&#40;</span>
  <span style="color: #ff0000;">&quot;org.netbeans.api.debugger.jpda.LineBreakpoint _breakpoint = getBreakpoint();&quot;</span> +
  <span style="color: #ff0000;">&quot;java.lang.String _className = _breakpoint.getPreferredClassName();&quot;</span> +
  <span style="color: #ff0000;">&quot;if (_className == null) {&quot;</span> +
  <span style="color: #ff0000;">&quot;  _className = reader.findCachedClassName(_breakpoint);&quot;</span> +
  <span style="color: #ff0000;">&quot;  if (_className == null) {&quot;</span> +
  <span style="color: #ff0000;">&quot;    _className = org.netbeans.modules.debugger.jpda.EditorContextBridge.getContext().getClassName (&quot;</span> +
  <span style="color: #ff0000;">&quot;      _breakpoint.getURL (),&quot;</span> +
  <span style="color: #ff0000;">&quot;      lineNumber);&quot;</span> +
  <span style="color: #ff0000;">&quot;    if (_className != null &amp;amp;&amp;amp; _className.length() &amp;gt; 0) {&quot;</span> +
  <span style="color: #ff0000;">&quot;      reader.storeCachedClassName(_breakpoint, _className);&quot;</span> +
  <span style="color: #ff0000;">&quot;    }&quot;</span> +
  <span style="color: #ff0000;">&quot;  }&quot;</span> +
  <span style="color: #ff0000;">&quot;}&quot;</span></pre></div></div>

<p>For the complete source code of the patch see the src folder of the <a href="http://repos.zeroturnaround.com/svn/jr-ide-support/nb-plugin/">nb-plugin</a>.</p>
<p>In conclusion, the best way to integrate with any system is via the API it provides. If it does not cut it then look into reflection and start using internals. You will lose on maintainability of course. Still not happy? Look into binary patching and have your fingers crossed whenever the target platform releases a new version.</p>
<div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/ab7f8433-9fe0-4f91-bee1-521e253034c3/" title="Reblog this post [with Zemanta]"><img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=ab7f8433-9fe0-4f91-bee1-521e253034c3" alt="Reblog this post [with Zemanta]"></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/5ZLW-ARua6M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/12/11/hacking-with-ide-plugins-fun-art-of-binary-patching/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/12/11/hacking-with-ide-plugins-fun-art-of-binary-patching/</feedburner:origLink></item>
		<item>
		<title>Configuring Eclipse – “fail fast”</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/aH7Vqnxv9Us/</link>
		<comments>http://dow.ngra.de/2009/11/27/configuring-eclipse-fail-fast/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 10:33:21 +0000</pubDate>
		<dc:creator>Ivo Mägi</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1139</guid>
		<description><![CDATA[Another guest post from our favorite PHB. I don&#8217;t have the slightest idea why he has Eclipse installed or better yet, why is he trying to run it. Probably overheard something from devs at the water-cooler and wants some free time from PowerPoint.
My Eclipse instance starts with a warning popup. Well, most likely it picked [...]]]></description>
			<content:encoded><![CDATA[<p><em>Another guest post from our favorite PHB. I don&#8217;t have the slightest idea why he has Eclipse installed or better yet, why is he trying to run it. Probably overheard something from devs at the water-cooler and wants some free time from PowerPoint.</em></p>
<p>My Eclipse instance starts with a warning popup. Well, most likely it picked up a JRE instead of the usual JDK specified in my environment variables. But hey, I know how to handle property files (ed: seriously?), and they are actually pointing me towards the <code>eclipse.ini</code>.</p>
<p><img src="http://dow.ngra.de/wp-content/uploads/2009/11/image002.jpg" alt="JDK vs JRE" title="JDK vs JRE" width="441" height="190"/></p>
<p>Clicking the link on the warning popup does not open the file itself though, so I have to manually navigate to the C:\Programs\eclipse folder and find <code>eclipse.ini</code> from there containing:</p>
<div class="igBar"><span id="lcode-3"><a href="#" onclick="javascript:showPlainTxt('code-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-3">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-showsplash</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">org.<span style="">eclipse</span>.<span style="">platform</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&#8211;launcher.<span style="">XXMaxPermSize</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">256M</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-framework</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">plugins\org.<span style="">eclipse</span>.<span style="">osgi_3</span>.<span style="color:#800000;color:#800000;">4</span>.<span style="color:#800000;color:#800000;">2</span>.<span style="">R34x_v20080826</span>-<span style="color:#800000;color:#800000;">1230</span>.<span style="">jar</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-vmargs</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Dosgi.<span style="">requiredJavaVersion</span>=<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">5</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Xms40m</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Xmx256m </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Adding <code>–vm C:\Program Files\Java\jdk1.6.0_14</code> to the end of the configuration and restarting. Well – nothing has changed. OK, let’s open up Google.</p>
<p>Proposed solution: <code>-vm</code> option has to be specified before the <code>–vmargs</code> option. Still no help, Eclipse will start with the previously mentioned warning.</p>
<p>Second solution – there has to be a line break between <code>–vm</code> and the value specified – BINGO. We are getting somewhere –</p>
<p><img src="http://dow.ngra.de/wp-content/uploads/2009/11/image001.jpg" alt="Trainwreck" title="Trainwreck" width="344" height="172"/></p>
<p>Now let’s just change it to:</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showPlainTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-showsplash</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">org.<span style="">eclipse</span>.<span style="">platform</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&#8211;launcher.<span style="">XXMaxPermSize</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">256M</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-framework</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">plugins\org.<span style="">eclipse</span>.<span style="">osgi_3</span>.<span style="color:#800000;color:#800000;">4</span>.<span style="color:#800000;color:#800000;">2</span>.<span style="">R34x_v20080826</span>-<span style="color:#800000;color:#800000;">1230</span>.<span style="">jar</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-vm</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">C:\Program Files\Java\jdk1.<span style="color:#800000;color:#800000;">6</span>.<span style="color:#800000;color:#800000;">0</span>_14\bin\javaw.<span style="">exe</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-vmargs</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Dosgi.<span style="">requiredJavaVersion</span>=<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">5</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Xms40m</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-Xmx256m </div>
</li>
</ol>
</div>
</div>
</div>
<p> </p>
<p>And it just works. But for heaven’s sake – why on earth do I have to figure out</p>
<ul>
<li>where is the configuration I have to change</li>
<li>in which order do I have to specify the parameters</li>
<li>that the key-value options must be separated with the line break</li>
</ul>
<p>Considering the last warning dialog – why cannot the whole configuration be validated and initialization failed properly? If this were a tool used in-house or only by small number of freaks, then – let it be. But this is Eclipse we are speaking about – there are millions of people working their asses off on a daily bases with this tool. Can’t imagine the time wasted for problems like this …</p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/aH7Vqnxv9Us" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/11/27/configuring-eclipse-fail-fast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/11/27/configuring-eclipse-fail-fast/</feedburner:origLink></item>
		<item>
		<title>Live from Devoxx: Agile Mythbusters by Scott Ambler</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/PZgmy5cFVkk/</link>
		<comments>http://dow.ngra.de/2009/11/18/live-from-devoxx-agile-mythbusters-by-scott-ambler/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 13:50:58 +0000</pubDate>
		<dc:creator>Jevgeni Kabanov</dc:creator>
				<category><![CDATA[cool]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1133</guid>
		<description><![CDATA[I haven&#8217;t been interested in Agile (or any other methodologies) for a long while. Partially because I found the things that work for me and my team and partially because there was a lot of marketing BS not confirmed by any actual results. This talk promised to deliver some hard data, so I was interested [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t been interested in Agile (or any other methodologies) for a long while. Partially because I found the things that work for me and my team and partially because there was a lot of marketing BS not confirmed by any actual results. This talk promised to deliver some hard data, so I was interested how it goes together with the consulting mumbo-jumbo.</p>
<p>The talk borrows the title and format from the Mythbuster TV show, where experts recreate the urban legend situations to check if they are plausible or not. Scott confirms or busts one myth at a time using the data from the surveys that come from a variety of sources, some of them more trustworthy, some less. </p>
<p>The reasons I couldn&#8217;t take some of the conclusions seriously were:<br />
1) Agile is not well defined. There&#8217;s a large number of practices considered Agile, and many people will claim that they&#8217;re doing agile e.g. if they have a build server.<br />
2) Surveys only tell what people think is happening. If you want to know how long is the <a href="http://imaginatorium.org/stuff/nose.htm">nose of the emperor of China</a> you don&#8217;t walk around asking people. Worse a lot of those surveys are conducted only among the Agile or TDD community, which gives them a high bias against traditional development.<br />
3) Comparing Agilists to Traditionalists is like comparing Tide to the Usual Washing Powder. There&#8217;s no such thing as a traditional methodology, there&#8217;s a bunch of them with very different approaches.</p>
<p>Note that here I give only my interpretation of Scotts talk and data, so please don&#8217;t treat it as anything else, but my own opinion.</p>
<h3>Myth 1: The majority of organizations are now doing Agile.</h3>
<p>Survey shows that 76% of organizations <em>claim</em> they are doing Agile. </p>
<p><b>CONFIRMED!</b></p>
<h3>Myth 2: The majority of project teams are doing Agile.</h3>
<p>In the 76% of the organizations claiming to do Agile only 44% of teams report using it. That translates to roughly 33% of the &#8220;popular vote&#8221; for Agile. Therefore 66% of developers are not even claiming to do Agile..</p>
<p><b>BUSTED!</b></p>
<h3>Myth 3: Agile is all about development</h3>
<p>In the list of Agile practices the <em>only</em> one that is used by more than half of developers claiming to do Agile is Continuous integration (65%). That kind of underlines the fact </p>
<p><b>PLAUSIBLE?</b></p>
<h3>Myth 4: Agile is just for small teams</h3>
<p>A lot of large projects are confirmed succeeding with Agile. In fact success rate isn&#8217;t that different from small ones. Would be interesting to see the breakdown of different practices used in small v/s large projects.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 5: Agile doesn&#8217;t work in a regulatory environment</h3>
<p>To clarify here are meant environments where errors are critical and thus are regulated by legal or engineering requirements. Surprisingly 33% are using Agile in a regulatory environment. Again a breakdown of practices would be very interesting as there&#8217;s bound to be some difference.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 6: Agile &#038; CMMI don&#8217;t work together.</h3>
<p>Only 9% reported using Agile. I think Scott put this as BUSTED, but 9% sounds like CONFIRMED to me :)</p>
<h3>Myth 7: Agile approaches are &#8220;empirical&#8221;.</h3>
<p>Very weirdly phrased claim. The survey shown was 51% of respondents collecting manual metrics, 19% collecting automatic metrics and the result was CONFIRMED.</p>
<h3>Myth 8: Agile teams are mostly building from scratch.</h3>
<p>78% of respondents work with legacy at least on some level. Scott had a pretty interesting digression on how Agile practices handle well the legacy code (with tests, refactoring, etc), but don&#8217;t give that much attention to the quality of legacy data.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 9: Agile certification is a good idea.</h3>
<p>78% of respondents think certification is meaningless, wonder how many of them are certified (as does Scott). An interesting digression about a guy having both PhD and Scrum master on his business card, as if their value were the same. Certification that doesn&#8217;t require any real effort is greatly overvalued in the community.</p>
<p>However although Scott considers the myth busted, I don&#8217;t think it makes sense to ask this question from everyone. If this&#8217;d be a poll among hiring managers it would make much more sense.</p>
<p><b>BUSTED?</b></p>
<h3>Myth 10: Agile teams are colocated.</h3>
<p>Survey shows that only 42% are colocated. </p>
<p><b>BUSTED!</b></p>
<h3>Myth 11: Agile doesn&#8217;t do up-front estimates.</h3>
<p>In the world of budgets this premiss always sounded ridiculous. And unsurprisingly 89% of teams have to provide an up-front estimate (with different level of certainty). </p>
<p><b>BUSTED!</b></p>
<h3>Myth 12: Agile teams just start coding.</h3>
<p>No kickoff is another thing I never believed. From the data about a month of kickoff is usual before starting the actual coding. </p>
<p><b>BUSTED!</b></p>
<h3>Myth 13: Agilists follow common dev conventions.</h3>
<p>Data is a bit confusing, but seems that 59% have some kind of conventions. </p>
<p><b>PLAUSIBLE?</b></p>
<h3>Myth 14: Rights &#038; responsibilities are part of the agile culture.</h3>
<p>The question is quite weird and the data isn&#8217;t really connected to it. </p>
<p><b>PLAUSIBLE?</b></p>
<h3>Myth 15: Agilists test often and test early.</h3>
<p>Only 71% in the TDD community are actually doing TDD. WTF? And agile guys are still having integration tests (45%) and hired testers (36%). This confirms my suspicions that unit tests are not the silver bullet as many suppose them to be. </p>
<p><b>CONFIRMED!</b></p>
<h3>Myth 16: Agilists don&#8217;t do up-front requirements modeling.</h3>
<p>76% are doing high-level up-front requirement modeling. This correlates with Myth 11, because to provide reliable estimates you need to have an idea what you&#8217;re going to be doing.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 17: Agilists don&#8217;t do up-front architecture.</h3>
<p>70% do architecture design. This explains the month of kickoff along with the requirement gathering.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 18: Agilists write some &#8220;interim&#8221; docs.</h3>
<p>Not sure if anyone doubted it, but 56% agree.</p>
<p><b>CONFIRMED</b></p>
<h3>Myth 19: Agilists don&#8217;t do supporting docs.</h3>
<p>The numbers are slightly lower than &#8220;Traditionalists&#8221;.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 20: Traditionalists write better docs.</h3>
<p>Equally bad at writing docs according to polls. I can believe that :)</p>
<p><b>BUSTED!</b></p>
<h3>Myth 21: More difficult to add members to Agile projects.</h3>
<p>Data shows that it&#8217;s slightly easier to add in Agile. Promiscuous pairing makes it even easier, so make sure to be promiscuous.</p>
<p>Frankly I heard the other myth that it&#8217;s easy to add members to Agile projects, that is busted as well.</p>
<p><b>BUSTED!</b></p>
<h3>Myth 22: Agile works better than traditional approaches.</h3>
<p>The ultimate question :) Success rate over different approaches:</p>
<ul>
<li>Iterative &#8212; 71%</li>
<li>Agile &#8212; 70%</li>
<li>Traditional &#8212; 66%</li>
<li>Ad-hoc &#8212; 62%</li>
</ul>
<p>Personally, I think that the variation is pretty small and it&#8217;s more important that 30% of projects fail no matter what than the 4% of difference between Agile and &#8220;Traditional&#8221;. </p>
<p>However when broken down on specific aspects (like cost, time, quality), it seemed that Agile was considerably better. I&#8217;d take it with a grain of salt though, as a lot of people take Agile as a religion and measure success accordingly :)</p>
<p><b>CONFIRMED?</b></p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/PZgmy5cFVkk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/11/18/live-from-devoxx-agile-mythbusters-by-scott-ambler/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/11/18/live-from-devoxx-agile-mythbusters-by-scott-ambler/</feedburner:origLink></item>
		<item>
		<title>Spinning off with style (pictorial report)</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/4Zc641VdVvU/</link>
		<comments>http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 10:13:28 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1106</guid>
		<description><![CDATA[ZeroTurnaround is a spin-off of Webmedia (fastest growing software development company in the Baltic States since 2000). Before JRebel (our flagship product) we worked in the R&#038;D team of Webmedia. Then came JRebel, JSPWeaver, ZeroTurnaround and now we&#8217;ve spinned off and are at a new office.
A spin-off is a new organization or entity formed by [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zeroturnaround.com">ZeroTurnaround</a> is a <a href="http://en.wikipedia.org/wiki/Spin-off">spin-off</a> of <a href="http://www.webmedia.eu">Webmedia</a> (fastest growing software development company in the Baltic States since 2000). Before JRebel (our flagship product) we worked in the R&#038;D team of Webmedia. Then came JRebel, JSPWeaver, ZeroTurnaround and now we&#8217;ve spinned off and are at a new office.</p>
<blockquote style="font-size:9pt;color:grey"><p>A spin-off is a new organization or entity formed by a split from a larger one, such as television series based on a pre-existing one, or a new company formed from a university research group or business incubator.</p></blockquote>
<p>Moving is work, getting stuff into boxes, moving the boxes and getting the stuff out of the boxes. We were able to add a fun factor to the process. The evening before the move our team was having beers at a <a href="http://www.bcplace.ee/">local bar</a> and one thing lead to another and the next moment we were at the old office with a <b>knife</b>, <b>pillow</b> and <b>3 eggs</b> and it was 1AM.</p>
<p><img src="http://dow.ngra.de/wp-content/uploads/post.png" alt="Knife, pillow and 3 eggs" title="Knife, pillow and 3 eggs" width="476" height="77" class="aligncenter size-full wp-image-1122" /></p>
<p>So in the middle of the night, at the office, 3 guys with the mentioned equipment and a plan! The plan was simple. Webmedia CEO&#8217;s name is <b>Eagle</b> (at least in the Estonian language) and what if we prep his office for a proper leaving. Stage it as <b>birdies</b> leaving the <b>nest</b>, <b>feathers</b>, <b>egg-shells</b>. Awesome plan from just 4 beers!</p>
<p>Pictures follow.<br />

<a href='http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/img_0351/' title='Entering the office'><img width="150" height="150" src="http://dow.ngra.de/wp-content/uploads/2009/11/img_0351-150x150.jpg" class="attachment-thumbnail" alt="" title="Entering the office" /></a>
<a href='http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/img_0350/' title='Step by step'><img width="150" height="150" src="http://dow.ngra.de/wp-content/uploads/2009/11/img_0350-150x150.jpg" class="attachment-thumbnail" alt="" title="Step by step" /></a>
<a href='http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/img_0349/' title='One step closer'><img width="150" height="150" src="http://dow.ngra.de/wp-content/uploads/2009/11/img_0349-150x150.jpg" class="attachment-thumbnail" alt="" title="One step closer" /></a>
<a href='http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/img_0348/' title='Closer look at the desk'><img width="150" height="150" src="http://dow.ngra.de/wp-content/uploads/2009/11/img_0348-150x150.jpg" class="attachment-thumbnail" alt="" title="Closer look at the desk" /></a>
<a href='http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/img_0347/' title='The message'><img width="150" height="150" src="http://dow.ngra.de/wp-content/uploads/2009/11/img_0347-150x150.jpg" class="attachment-thumbnail" alt="" title="The message" /></a>
</p>
<ul>
<li>The sign says <em>ZeroTurnaround guys have left the nest. Thanks!</em></li>
<li>Yeah, all the feathers come from a single pillow</li>
<li>Yes, I&#8217;m missing a pillow</li>
<li>Yes, we had to clean it up (well, just me, because everybody else supposedly had more important tasks at hand).</li>
</ul>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/4Zc641VdVvU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/11/04/spinning-off-with-style-pictorial-report/</feedburner:origLink></item>
		<item>
		<title>A PHB + a startup + dilbert = SALES are up!</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/QoLKdZvjHm4/</link>
		<comments>http://dow.ngra.de/2009/10/31/a-phb-a-startup-dilbert-sales-are-up/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 14:35:13 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1083</guid>
		<description><![CDATA[Looking at the numbers I can say that it is working but wearing the extra nose is not as easy as it seems.


]]></description>
			<content:encoded><![CDATA[<p>Looking at the numbers I can say that it is working but wearing the extra nose is not as easy as it seems.</p>
<p><a href="http://dow.ngra.de/wp-content/uploads/2009/10/71290strip.gif"><img src="http://dow.ngra.de/wp-content/uploads/2009/10/71290strip-300x93.gif" alt="Dilbert strip" title="Dilbert strip" width="300" height="93" class="aligncenter size-medium wp-image-1086" /></a></p>
<p><a href="http://dow.ngra.de/wp-content/uploads/2009/10/photo.jpg"><img src="http://dow.ngra.de/wp-content/uploads/2009/10/photo-300x225.jpg" alt="Making sales" title="Making sales" width="300" height="225" class="aligncenter size-medium wp-image-1089" /></a></p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/QoLKdZvjHm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/10/31/a-phb-a-startup-dilbert-sales-are-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/10/31/a-phb-a-startup-dilbert-sales-are-up/</feedburner:origLink></item>
		<item>
		<title>1st of April Joke Gone Wild (updated)</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/w7aEP7mYFKU/</link>
		<comments>http://dow.ngra.de/2009/10/26/1st-of-april-joke-gone-wild/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 11:59:19 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[humour]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1055</guid>
		<description><![CDATA[1st of April is a great day, lots of cool hoaxes all day around. We at ZeroTurnaround have contributed with DNArebel &#8211; Improve Yourself Today and JavaRebel Goes AI. Usually everything ends once the day is over.
This year&#8217;s dow.ngra.de hoax, Microsoft acquires ZeroTurnaround for undisclosed amount has amused us even months later. Couple of weeks [...]]]></description>
			<content:encoded><![CDATA[<p>1st of April is a great day, lots of <a href="http://en.wikipedia.org/wiki/Google's_hoaxes">cool</a> <a href="http://www.museumofhoaxes.com/hoax/aprilfool/">hoaxes</a> all day around. We at <a href="http://www.zeroturnaround.com">ZeroTurnaround</a> have contributed with <a href="http://www.zeroturnaround.com/blog/dnarebel-improve-yourself-today/">DNArebel &#8211; Improve Yourself Today</a> and <a href="http://www.zeroturnaround.com/blog/javarebel-goes-ai/">JavaRebel Goes AI</a>. Usually everything ends once the day is over.</p>
<p>This year&#8217;s <strong>dow.ngra.de</strong> hoax, <a href="http://dow.ngra.de/2009/04/01/microsoft-acquires-zeroturnaround-for-undisclosed-amount/">Microsoft acquires ZeroTurnaround for undisclosed amount</a> has amused us even months later. Couple of weeks ago we spotted a Chinese article that listed all the acquisitions of Microsoft during the past year. And we made the list!</p>
<p>Today we found the news from a business systems news &#038; analysis page, <a href="http://www.fsn.co.uk">FSN</a>.</p>
<blockquote><p>FSN provides finance professionals around the globe with independent news, <strong>vital analysis</strong> and <strong>deep insight</strong> about key developments in the world of business and accounting systems.  We <strong>debunk the technical jargon of the IT world</strong> and present leading-edge issues in a way that is accessible and relevant to business decision makers.</p></blockquote>
<p>We&#8217;re in the article <a href="http://www.fsn.co.uk/channel_enterprise_financials/shifting_sands">Shifting Sands</a> (<b>EDIT:</b> link is dead now) with players like Salesforce, Digita, Google, Oracle, Microsoft and HP :)</p>
<p>A fact taken from a blog post on 1st of April, not confirmed from either parties and presented in an article with <strong>vital analysis</strong> and <strong>deep insight</strong>.</p>
<p>Of course there is an easy fix. Either Microsoft acquires the Java productivity tooling company ZeroTurnaround or FSN notices a referrer from this blog and makes changes. I&#8217;ll keep you posted on who wins the race.</p>
<p><a href="http://dow.ngra.de/wp-content/uploads/2009/10/microsoftacquireszeroturnaround.png"><img src="http://dow.ngra.de/wp-content/uploads/2009/10/microsoftacquireszeroturnaround-300x122.png" alt="Microsoft acquired ZeroTurnaround by FSN" title="Microsoft acquired ZeroTurnaround by FSN" width="300" height="122" class="size-medium wp-image-1070" /></a></p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/w7aEP7mYFKU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/10/26/1st-of-april-joke-gone-wild/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/10/26/1st-of-april-joke-gone-wild/</feedburner:origLink></item>
		<item>
		<title>Pointy haired boss &amp; the HR lady</title>
		<link>http://feedproxy.google.com/~r/dow_ngra_de/~3/B6gdYEzQZHs/</link>
		<comments>http://dow.ngra.de/2009/10/21/pointy-haired-boss-hr-lady/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 09:25:34 +0000</pubDate>
		<dc:creator>Toomas Römer</dc:creator>
				<category><![CDATA[humour]]></category>

		<guid isPermaLink="false">http://dow.ngra.de/?p=1041</guid>
		<description><![CDATA[A week ago I worked on a dashboard project. One of the dashboard views showed the SLOC and the size of the VCS of the company. Yesterday I overheard the pointy haired boss explaining the dashboard to the HR lady. 
PHB: Here we have the lines of code in the repository and the total size [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago I worked on a dashboard project. One of the dashboard views showed the <a href="http://en.wikipedia.org/wiki/Source_lines_of_code">SLOC</a> and the size of the <a href="http://en.wikipedia.org/wiki/Revision_control">VCS</a> of the company. Yesterday I overheard the <a href="http://en.wikipedia.org/wiki/Pointy-Haired_Boss">pointy haired boss</a> explaining the dashboard to the <a href="http://en.wikipedia.org/wiki/Human_resources">HR</a> lady. </p>
<p><strong>PHB</strong>: <em>Here we have the lines of code in the repository and the total size of the repository shown through time in gigabytes.</em></p>
<p>HR lady had a puzzled look at the graphs and the numbers.</p>
<p><strong>HR</strong>: <em>How much more of those can we fit in the repository?</em></p>
<img src="http://feeds.feedburner.com/~r/dow_ngra_de/~4/B6gdYEzQZHs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dow.ngra.de/2009/10/21/pointy-haired-boss-hr-lady/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://dow.ngra.de/2009/10/21/pointy-haired-boss-hr-lady/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.537 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-18 16:02:58 -->
