<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>devgrind &#187; development</title>
	<atom:link href="http://devgrind.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgrind.com</link>
	<description>thinking outside the { }</description>
	<lastBuildDate>Fri, 04 Nov 2011 10:42:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Developer Frustrations</title>
		<link>http://devgrind.com/2009/02/04/developer-frustrations/</link>
		<comments>http://devgrind.com/2009/02/04/developer-frustrations/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 12:42:29 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=60</guid>
		<description><![CDATA[I need unit tests for my unit tests testing whether the unit tests do correct tests or not. And a decent TestNG documentation.]]></description>
			<content:encoded><![CDATA[<p>I need unit tests for my unit tests testing whether the unit tests do correct tests or not. And a decent TestNG documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2009/02/04/developer-frustrations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Frustrations</title>
		<link>http://devgrind.com/2009/01/22/developers-frustrations/</link>
		<comments>http://devgrind.com/2009/01/22/developers-frustrations/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:59:38 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[humor]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=58</guid>
		<description><![CDATA[Constructing software surely is satisfying work. But these days I dream of constructing airships. What if you could actually see the product of your very own hands, climb into it, loose the tag lines and fly away?]]></description>
			<content:encoded><![CDATA[<p>Constructing software surely is satisfying work. But these days I dream of constructing airships. What if you could actually see the product of your very own hands, climb into it, loose the tag lines and fly away?</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2009/01/22/developers-frustrations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Rethrow, Please</title>
		<link>http://devgrind.com/2008/09/08/dont-rethrow-please/</link>
		<comments>http://devgrind.com/2008/09/08/dont-rethrow-please/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 13:36:26 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=51</guid>
		<description><![CDATA[Dear fellow Ruby developers, please kick the habit of catching  and rethrowing exceptions, thus ridding your users of the expeptions&#8217; stack traces. Recently I had to patch the source code of an ActiveRecord adapter as well as the underlying DBI implementation in order to find out where one particular exception was originating from. This makes [...]]]></description>
			<content:encoded><![CDATA[<p>Dear fellow Ruby developers, please kick the habit of catching  and rethrowing exceptions, thus ridding your users of the expeptions&#8217; stack traces. Recently I had to patch the source code of an ActiveRecord adapter as well as the underlying DBI implementation in order to find out where <em>one</em> particular exception was originating from. This makes debugging code really a hassle. I haven&#8217;t had this kind of problem in Java since nested exceptions.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/09/08/dont-rethrow-please/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Ultimate Code Browser</title>
		<link>http://devgrind.com/2008/06/10/the-ultimate-code-browser/</link>
		<comments>http://devgrind.com/2008/06/10/the-ultimate-code-browser/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 19:55:29 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=43</guid>
		<description><![CDATA[I want a Firefox Plugin that recognizes that the page I&#8217;m looking at contains Java, does syntax highlighting and, most of all, inserts links to the classes and methods referenced in the code. The plugin (or a server it can ask) should know where the source code of a class like org.springframework.beans.factory.BeanFactory can be found. [...]]]></description>
			<content:encoded><![CDATA[<p>I want a Firefox Plugin that recognizes that the page I&#8217;m looking at contains Java, does syntax highlighting and, most of all, inserts links to the classes and methods referenced in the code. The plugin (or a server it can ask) should know where the source code of a class like <a href="http://springframework.cvs.sourceforge.net/springframework/spring/src/org/springframework/beans/factory/BeanFactory.java?view=co">org.springframework.beans.factory.BeanFactory</a> can be found.</p>
<p>First I thought that such a plugin would need (or could at least profit from) <em>sem***ic web</em> technologies (no dirty words on this blog, please), but it probably wouldn&#8217;t. All we need is a global registry that maps package names to the URLs of the web interfaces of the respective source repositories. (Maybe <a href="http://www.google.com/codesearch">Google Code Search</a> could be such a repository, but its results are often pretty bad.) The plugin would also have to include a reasonably good Java parser, and maybe a heuristic to distinguish betweeen Java and non-Java text.</p>
<p>Why would I want such a thing? Well, I often have to dig through the code of some open source library in order to understand a bug, or just to figure out what I can do with it, and how, because the documentation is incomplete or wrong. Usually I create an Eclipse project and import the code from the source repository, but that&#8217;s quite a lot of overhead if I just need to browse the code for ten minutes or so. On the other hand, digging through source code on web pages, without the help of links between the pages, is just a nuisance.</p>
<p>And wouldn&#8217;t it just be so cool to have one of the most important features of an IDE as a browser plugin, enhanced by the power of the world wide web?</p>
<p>P.S.: Or maybe I don&#8217;t want a browser plugin &#8211; maybe I just want Google to put some more effort into Code Search? Come on, guys, you&#8217;ve got all it takes &#8211; the global repository, the parsers, the heuristics&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/06/10/the-ultimate-code-browser/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pandora&#8217;s Box</title>
		<link>http://devgrind.com/2007/09/13/pandoras-box/</link>
		<comments>http://devgrind.com/2007/09/13/pandoras-box/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 14:00:08 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/09/13/pandoras-box/</guid>
		<description><![CDATA[Even a simple HTML parser library today comes with hundreds of dependent archives, adding up to a nice 4 MB download. Which should be no problem, but at home I am blessed with an ISDN connection. Is there anything as a library package management system like in Python, Perl or Ruby for Java? If anyone [...]]]></description>
			<content:encoded><![CDATA[<p>Even a simple HTML parser library today comes with hundreds of dependent archives, adding up to a nice 4 MB download. Which should be no problem, but at home I am blessed with an ISDN connection. Is there anything as a library package management system like in Python, Perl or Ruby for Java? If anyone has seen this, let me know. If there is none, this would be the time to stand up and implement!</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/09/13/pandoras-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quite Groovy</title>
		<link>http://devgrind.com/2007/07/07/quite-groovy/</link>
		<comments>http://devgrind.com/2007/07/07/quite-groovy/#comments</comments>
		<pubDate>Sat, 07 Jul 2007 11:51:54 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/07/07/quite-groovy/</guid>
		<description><![CDATA[In the recent weeks, both of my co-bloggers told me independently of each other about Groovy, the new hipster language which brings the scripting goodness of dynamic languages like Ruby and Smalltalk to the JVM Sweet JVM, so I finally couldn&#8217;t resist but take a look at it. To be honest, I didn&#8217;t like its [...]]]></description>
			<content:encoded><![CDATA[<p>In the recent weeks, both of my co-bloggers told me independently of each other about <a href="http://groovy.codehaus.org/">Groovy</a>, the new hipster language which brings the scripting goodness of dynamic languages like Ruby and Smalltalk to the <em>JVM Sweet JVM</em>, so I finally couldn&#8217;t resist but take a look at it. To be honest, I didn&#8217;t like its Java-like syntax from the beginning, with all the parentheses, lowerCamelCaseIdentifiers and such, but that was just because I prefer Ruby&#8217;s very lean syntax. Its concepts are very close to Ruby (modification of objects and classes at runtime, blocks/closures, etc.) and of course it integrates well with the Java platform and its rich libraries, since this is the purpose for which it was created, to add a scripting facility to the Java platform. Groovy scripts are compiled into bytecode before execution and thus run on a normal JVM.</p>
<p>A crucial part for dynamic languages today (at least in my eyes) is the creation of domain-specific language, which Groovy also supports. <a href="http://groovy.codehaus.org/Gant">Gant</a>, for example, is a Groovy DSL for Ant scripts. Another example (take from the Tutorial <a href="glaforge.free.fr/groovy/QCon-Tutorial-Groovy-DSL-2-colour.pdf">Domain-Specific Languages in Groovy</a>, PDF) I find very practical is a DSL for creating query criteria for Hibernate in the <a href="http://grails.codehaus.org/">Grails</a> framework (formerly known as Groovy on Rails, so its purpose should be clear):</p>
<pre>
def c = Account.createCriteria()
def results = c {
  like("holderFirstName", "Fred%")
  and {
    between("balance", 500, 1000)
    eq("branch", "London")
  }
  maxResults(10)
  order("holderLastName", "desc")
}</pre>
<p>A good thing, but looks too java-y for my taste, I miss the feeling I get when using a Ruby DSL, such as <a href="http://sqldsl.rubyforge.org/">SQL-DSL</a>, for example:</p>
<pre>
statement = Select[:column1, 'book', 10].from[:table1, :table2].where do
  equal :column1, 99
  not_equal :column1, 100
  less_than :column2, 'foo'
  less_than_or_equal :column3, :column4
  greater_than :column1, 0
  greater_than_or_equal :column2, 'bar'
  like :column1, 'any'
  is_not_null :column1
  is_in :column1, [1,2]
  is_not_in :column2, [3, 4]
  exists 0
  not_exists 0
end</pre>
<p>But maybe that&#8217;s just personal preference.</p>
<p>From a few first glance I get the impression, that Groovy is quite successful as a scripting sidekick to Java and I&#8217;m curious to learn more about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/07/07/quite-groovy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Survey on Web Development Platforms</title>
		<link>http://devgrind.com/2007/06/27/plat_forms-survey/</link>
		<comments>http://devgrind.com/2007/06/27/plat_forms-survey/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 13:11:43 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/06/27/plat_forms-survey/</guid>
		<description><![CDATA[The software engineering folks at our institute, who hosted the Plat_Forms contest, are conducting a survey on platforms for web development. So if you are familiar with developing web applications in at least two programming languages and would like to contribute to research in this area please take the survey, it will take about 10-15 [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.inf.fu-berlin.de/en/groups/ag-se/index.html">software engineering folks</a> at <a href="http://www.inf.fu-berlin.de/en/index.html">our institute</a>, who hosted the <a href="http://devgrind.com/2007/06/20/comparing-web-development-platforms/">Plat_Forms contest</a>, are conducting a <a href="http://www.plat-forms.org/survey/">survey on platforms for web development</a>. So if you are familiar with developing web applications in at least two programming languages and would like to contribute to research in this area please take the survey, it will take about 10-15 minutes.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/06/27/plat_forms-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing Web Development Platforms</title>
		<link>http://devgrind.com/2007/06/20/comparing-web-development-platforms/</link>
		<comments>http://devgrind.com/2007/06/20/comparing-web-development-platforms/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 12:20:58 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/06/20/comparing-web-development-platforms/</guid>
		<description><![CDATA[I would like to point you to a study a professor of my university (i.e. my workplace) did with his team. One goal, nine teams, thirty hours, three platforms &#8211; J2EE, Perl and PHP. Why they did not evaluate Ruby or Python is far out of my knowledge (and why anyone would do actually web [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to point you to a study a professor of my university (i.e. my workplace) did with his team. One goal, nine teams, thirty hours, three platforms &#8211; J2EE, Perl and PHP. Why they did not evaluate Ruby or Python is far out of my knowledge (and why anyone would do actually web devopment in Perl), but the setting is interesting enough. A rather lengthy report <a href="http://www.plat-forms.org/2007/documents/platformsTR.pdf">can be found here</a>.</p>
<p><strong>Update</strong>: I did not read the document thoroughly enough. The answers to my questions:</p>
<blockquote><p>&#8220;We had some contact with potential teams from the Python arena, but there were not sufficiently many who were qualified enough. In the end, only one formal request for participation was submitted, so we did not admit Python into the contest.&#8221;<br />
&#8220;It was impossible to find Ruby-on-Rails teams (â€œwe are too busyâ€?). &#8220;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/06/20/comparing-web-development-platforms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Between Heaven and Earth</title>
		<link>http://devgrind.com/2007/05/04/between-heaven-and-earth/</link>
		<comments>http://devgrind.com/2007/05/04/between-heaven-and-earth/#comments</comments>
		<pubDate>Fri, 04 May 2007 12:22:53 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[agility]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/05/04/between-heaven-and-earth/</guid>
		<description><![CDATA[Today I stumbled upon another source of developer wisdom, Des Traynor&#8217;s Programming Theorems. One of the theorems rings especially true for me after the recent insights into developing a Sudoku solver the TDD way: For every Architecture Astronaut out there, there is at least one coder who thinks that being &#8220;Agile&#8221; is a perfect substitute [...]]]></description>
			<content:encoded><![CDATA[<p>Today I stumbled upon another source of developer wisdom, Des Traynor&#8217;s <a href="http://www.destraynor.com/serendipity/index.php?/archives/102-Programming-Theorems.html">Programming Theorems</a>. One of the theorems rings especially true for me after the recent insights into <a href="http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/">developing a Sudoku solver the TDD way</a>:</p>
<p>
<blockquote>For every Architecture Astronaut out there, there is at least one coder who thinks that being &#8220;Agile&#8221; is a perfect substitute for foresight.</p></blockquote>
<p>If you wonder what Architecture Astronauts are, its a term coined by <a href="http://www.joelonsoftware.com/articles/fog0000000018.html">Joel Spolsky</a> with regard to people climbing up the abstraction ladder a little too far:</p>
<p>
<blockquote>When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don&#8217;t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don&#8217;t actually mean anything at all. These are the people I call Architecture Astronauts.</p></blockquote>
<p>I know that I tend to be an Architecture Astronaut sometimes, probably it&#8217;s because <em>thinking meta</em> keeps me from the exhausting work of bothering with all the real-world problems. I wouldn&#8217;t be surprised if this was the main reason for developers to become Architecture Astronauts at all.</p>
<p>But Architectural Outer Space isn&#8217;t a place where I stay very long usually, because its my experience that the lack of oxygen disrupts any attempts of getting actually something done. And that&#8217;s where agility fits in: If I get the whole idea of agility right, it&#8217;s all about getting things done (unless you use it as an excuse to shutdown your brain).</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/05/04/between-heaven-and-earth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Green and Calm</title>
		<link>http://devgrind.com/2007/05/02/green-and-calm/</link>
		<comments>http://devgrind.com/2007/05/02/green-and-calm/#comments</comments>
		<pubDate>Wed, 02 May 2007 09:04:09 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/05/02/green-and-calm/</guid>
		<description><![CDATA[There are few things in this world more soothing than the green bar of a project-embracing JUnit test suite after moving to a new platform.]]></description>
			<content:encoded><![CDATA[<p>There are few things in this world more soothing than the <span style="background-color: green">green bar</span> of a project-embracing JUnit test suite after moving to a new platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/05/02/green-and-calm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

