<?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>Above, Below, and Beyond Tech Talk</title>
	<atom:link href="http://netzwerg.ch/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://netzwerg.ch</link>
	<description>by Rahel Lüthy</description>
	<lastBuildDate>Sun, 19 Feb 2012 12:38:14 +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>Mac Tips &amp; Tricks #8: Changing application icons</title>
		<link>http://netzwerg.ch/?p=317</link>
		<comments>http://netzwerg.ch/?p=317#comments</comments>
		<pubDate>Sun, 19 Feb 2012 12:24:50 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://netzwerg.ch/?p=317</guid>
		<description><![CDATA[There are many reasons why you might want to change an application&#8217;s icon. In my case, I wanted to be able to distinguish the stable IntelliJ IDEA 11 version from an early access 11.1 build: Here&#8217;s how I changed the &#8230; <a href="http://netzwerg.ch/?p=317">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are many reasons why you might want to change an application&#8217;s icon. In my case, I wanted to be able to distinguish the stable IntelliJ IDEA 11 version from an early access 11.1 build:</p>
<p><img src="http://farm8.staticflickr.com/7203/6902127275_c10ef73479.jpg" width="327" height="92"></p>
<p>Here&#8217;s how I changed the default (blue) icon to the new (pink) one:</p>
<p>First, reveal the application&#8217;s installation location in <em>Finder</em> (from the <em>Dock</em> context menu: <em>Options > Show in Finder</em>). From within <em>Finder</em>, invoke the context menu on the selected application, and <em>Show Package Contents</em>. Locate the icon file (<em>*.icns</em>) inside <em>Contents > Resources</em>. Make a backup copy, edit the icon in your favorite image editor (I simply overlaid a red color filter in <a href="http://flyingmeat.com/acorn/">Acorn</a>), and save it as a <em>*.png</em>.</p>
<p>Now comes the tricky part: <a href="http://en.wikipedia.org/wiki/Apple_Icon_Image_format">Apple&#8217;s icon format</a> includes more than just an image, it actually contains a collection of images in different sizes, resolutions &#038; states. To create a new <em>*.icns</em> file, launch <em>Icon Composer</em> (which ships with OSX). Open the original application icon to check which sizes your new icon should support:<br />
<img src="http://farm8.staticflickr.com/7039/6902159071_c70aca6812.jpg" width="500" height="402" alt="Icon Composer"></p>
<p>Create a new file, drag &#038; drop your edited <em>*.png</em> to the required image size containers, and save the result. Re-launch your application &mdash; tada!</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=317</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IntelliJ IDEA: Reveal in Terminal</title>
		<link>http://netzwerg.ch/?p=307</link>
		<comments>http://netzwerg.ch/?p=307#comments</comments>
		<pubDate>Wed, 08 Feb 2012 17:51:26 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[IDEA]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[iTerm2]]></category>

		<guid isPermaLink="false">http://netzwerg.ch/?p=307</guid>
		<description><![CDATA[IntelliJ IDEA ships with a very handy &#8220;Reveal in Finder&#8221; action, but unfortunately, I am still a terminal person. Today I put together a tiny AppleScript which creates a new iTerm2 session and changes to a directory of choice: on &#8230; <a href="http://netzwerg.ch/?p=307">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>IntelliJ IDEA ships with a very handy <em>&#8220;Reveal in Finder&#8221;</em> action, but unfortunately, I am still a terminal person. Today I put together a tiny AppleScript which creates a new <a href="http://www.iterm2.com">iTerm2</a> session and changes to a directory of choice:</p>
<pre name="code" class="applescript">
on run dir
  tell application "iTerm"
    activate
    tell last terminal
      set mysession to (make new session at the beginning of sessions)
      tell mysession
        set name to "Default"
        exec command "/bin/bash -l"
      end tell
      tell mysession
        write text "cd " &#038; dir
      end tell
    end tell
  end tell
end run
</pre>
<p>IDEA allows to add custom actions via <em>Settings > External Tools</em>. Save the above script to a file (e.g. <code>launchTerminalAndChangeDir.scpt</code>) and configure a new <em>&#8220;Reveal in Terminal&#8221;</em> action as follows:</p>
<p>
<img src="http://farm8.staticflickr.com/7146/6841401625_c6cb2f4d54.jpg" width="500" height="171" alt="Intellij IDEA: Reveal in Terminal">
</p>
<p>Additionally, you may want to associate a key binding via <em>Settings > Keymap</em>. I chose <em>Ctrl-Shift-T</em>, which seems intuitive and is not conflicting with any OSX defaults.</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=307</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Setup</title>
		<link>http://netzwerg.ch/?p=296</link>
		<comments>http://netzwerg.ch/?p=296#comments</comments>
		<pubDate>Sat, 10 Dec 2011 12:45:50 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://netzwerg.ch/?p=296</guid>
		<description><![CDATA[I started my new job at edorasware last week, with a new &#038; shiny 15-inch MacBook Pro. A fresh computer with a blank OS is both, a blessing and a curse &#8212; it takes quite a while until it feels &#8230; <a href="http://netzwerg.ch/?p=296">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I started my new job at <a href="http://edorasware.com">edorasware</a> last week, with a new &#038; shiny 15-inch MacBook Pro. A fresh computer with a blank OS is both, a blessing and a curse &mdash; it takes quite a while until it feels like home again. And even after a week, I still miss a few configuration settings or shortcuts here and there.</p>
<p>Setting up the new machine was certainly an opportunity to consolidate the apps and tools I like and need. Inspired by <a href="http://usesthis.com">The Setup</a>, here&#8217;s what I currently use to get things done:</p>
<p>As a Java developer, I spend most of my time in <a href="http://www.jetbrains.com/idea">IntelliJ IDEA</a>, the best IDE ever (weight this statement by the fact that I used Eclipse for 7+ years before). My second home is the command line. I use <a href="http://www.iterm2.com">iTerm2</a>, which has excellent search support, provides mouseless copying, and is more unixy than the official <em>Terminal</em>. I&#8217;m still learning to use <em>Finder</em> efficiently. The <a href="http://totalfinder.binaryage.com">TotalFinder</a> plug-in, with tab support and its <em>Folders on Top</em> mode, is my latest attempt at making friends.</p>
<p>A few crucial things help me organize &#038; navigate my workspace: I use three virtual desktops (via <em>Mission Control</em>) which I access by keyboard shortcuts &mdash; 1 for Mail/Calendar, 2 for Browser, and 3 for IDEA. A launcher helps me kick-start applications. I switched from Quicksilver to <a href="http://alfredapp.com">Alfred</a> &mdash; it provides the same features and is under active development. <a href="http://mizage.com">Divvy</a> tames all window sizes &#038; positions, clearly a missing feature in OSX.</p>
<p>Transitioning from <em>Snow Leopard</em> to <em>Lion</em> was more challenging than anticipated, mainly because of its different mouse usage paradigms. Most of the built-in gestures are easy to use, but some of them collide with my old habits (how the heck can I turn off horizontal scrolling in order to re-map the swipe gesture to back/forward navigation in IDEA?!). A while back I forced myself to exclusively use taps (rather than clicks) on the trackpad. Wow &mdash; the absence of the mechanical noise makes such a difference, everything suddenly feels very light and smooth!</p>
<p>These are pretty much the apps at the core. In addition, I like <a href="http://www.google.ch/chrome">Chrome</a>, <a href="http://agilebits.com/onepassword">1Password</a>, <a href="http://macromates.com">TextMate</a>, <a href="http://dropbox.com">Dropbox</a>, <a href="http://skype.com">Skype</a>, <a href="http://spotify.com">Spotify</a>, <a href="http://flyingmeat.com/acorn">Acorn</a>, <a href="http://inkscape.org">Inkscape</a>, <a href="http://www.adobe.com/products/photoshoplightroom">Lightroom</a> and <a href="http://www.omnigroup.com/products/omnigraffle">OmniGraffle</a> &mdash; just to name a few.</p>
<p>What are your favorite tools we should all know about?</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=296</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Groovy Gems #1: Generating Data Matrices</title>
		<link>http://netzwerg.ch/?p=287</link>
		<comments>http://netzwerg.ch/?p=287#comments</comments>
		<pubDate>Wed, 28 Sep 2011 13:03:38 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://netzwerg.ch/?p=287</guid>
		<description><![CDATA[In contrast to its Scala friend, this Groovy one-liner is handy and readable:]]></description>
			<content:encoded><![CDATA[<p>In contrast to its <a href="http://netzwerg.ch/?p=193">Scala friend</a>, this Groovy one-liner is handy <em>and</em> readable:</p>
<pre class="brush: groovy; title: ; notranslate">
7.times { 3.times { print(&quot;X\t&quot;) } print(&quot;\n&quot;) }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=287</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GAE + Gson + AngularJS</title>
		<link>http://netzwerg.ch/?p=259</link>
		<comments>http://netzwerg.ch/?p=259#comments</comments>
		<pubDate>Thu, 01 Sep 2011 18:51:03 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://netzwerg.ch/?p=259</guid>
		<description><![CDATA[I have been playing with AngularJS lately. It is a JavaScript library with the following tag line: What HTML would have been had it been designed for web apps. All I can say after a few hours: HTML would haven &#8230; <a href="http://netzwerg.ch/?p=259">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been playing with <a href="http://angularjs.org">AngularJS</a> lately. It is a JavaScript library with the following tag line:</p>
<blockquote><p>What HTML would have been had it been designed for web apps.</p></blockquote>
<p>All I can say after a few hours: HTML would haven been great! It would have had a clear MVC separation, data binding, dependency-injection, and it would have kept development simple &amp; fun.</p>
<p>My web app know-how is very rusty, so I hacked together a simple proof-of-concept, just to see how AngularJS actually <em>feels</em>. Here are the crucial snippets from my Google App Engine Java back-end (to generate JSON), and the HTML/AngularJS view (to render it).</p>
<p>The Servlet part:</p>
<pre class="brush: java; gutter: true; title: ; notranslate">protected void doGet(...) {
  response.setContentType(&quot;text/plain&quot;);
  String[] movies = new String[]{
    &quot;Buffalo 66&quot;,
    &quot;Jackie Brown&quot;,
    &quot;Vicky Cristina Barcelona&quot;};
  response.getWriter().print(new Gson().toJson(movies));
}</pre>
<p>The AngularJS Controller (controller.js):</p>
<pre class="brush: jscript; gutter: true; title: ; notranslate">function MovieListCtrl($xhr) {
  var self = this;
  $xhr('GET', 'http://localhost:8080/json',
    function(code, response) {
      self.movies = response;
    }
  );
}</pre>
<p>The HTML/AngularJS View (index.html):</p>
<pre class="brush: xml; gutter: true; title: ; notranslate">&lt;body ng:controller=&quot;MovieListCtrl&quot;&gt;
  Rahel's favorite movies:
  &lt;ul&gt;
    &lt;li ng:repeat=&quot;movie in movies&quot;&gt;
      {{movie}}
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/body&gt;</pre>
<p>Check out the official <a href="http://docs.angularjs.org/#!/tutorial">AngularJS Tutorial</a> for more details and a ton of cool examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=259</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blank Slate</title>
		<link>http://netzwerg.ch/?p=250</link>
		<comments>http://netzwerg.ch/?p=250#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:27:25 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://netzwerg.startlogic.com/wordpress/?p=250</guid>
		<description><![CDATA[Inspired by Tammy Strobel&#8217;s post on digital decluttering, this blog is starting fresh — with a simple design, and only a few posts left.]]></description>
			<content:encoded><![CDATA[<p>Inspired by <a href="http://rowdykittens.com/2011/08/digital-clutter-confessions/">Tammy Strobel&#8217;s post on digital decluttering</a>, this blog is starting fresh — with a simple design, and only a few posts left.</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=250</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala Gems #4: Generating Data Matrices</title>
		<link>http://netzwerg.ch/?p=193</link>
		<comments>http://netzwerg.ch/?p=193#comments</comments>
		<pubDate>Tue, 23 Aug 2011 10:15:00 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://heiterebeck.wordpress.com/2011/08/23/scala-gems-4-generating-data-matrices</guid>
		<description><![CDATA[Generating matrix-shaped test data is easy in any spreadsheet application: Enter a few cell values and use the fill handle to complete all others. But firing up a spreadsheet somehow feels lame. This Scala three-liner can do the same: Is &#8230; <a href="http://netzwerg.ch/?p=193">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Generating matrix-shaped test data is easy in any spreadsheet application: Enter a few cell values and use the fill handle to complete all others. But firing up a spreadsheet somehow feels lame. This Scala three-liner can do the same:</p>
<pre class="brush: scala; title: ; notranslate">println(Array.fill(7, 3)(&quot;X&quot;).map(
  _.mkString(&quot;\t&quot;)).mkString(&quot;\n&quot;)
)</pre>
<p>Is it readable? No. Is it handy? Yes!</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala Gems #3: Named Parameters</title>
		<link>http://netzwerg.ch/?p=192</link>
		<comments>http://netzwerg.ch/?p=192#comments</comments>
		<pubDate>Fri, 22 Apr 2011 20:21:00 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://heiterebeck.wordpress.com/2011/04/22/scala-gems-3-named-parameters</guid>
		<description><![CDATA[Just a quick one this time (it&#8217;s easter holiday and the weather is simply too beautiful to waste time in front of a computer). Anyway, have a look at this constructor call: Unless you&#8217;re Swiss and just know that I&#8217;m &#8230; <a href="http://netzwerg.ch/?p=192">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a quick one this time (it&#8217;s easter holiday and the weather is simply too beautiful to waste time in front of a computer). Anyway, have a look at this constructor call:</p>
<pre class="brush: scala; title: ; notranslate">MigrosEgg(GREEN, BLUE)</pre>
<p>Unless you&#8217;re Swiss and just <span style="font-style:italic;">know</span> that I&#8217;m referring to the &#8220;Extra&#8221; variant, wouldn&#8217;t it be a lot less ambiguous to write</p>
<pre class="brush: scala; title: ; notranslate">val aMigrosEgg = MigrosEgg(dotColor = GREEN, bgColor = BLUE)</pre>
<p>As of Scala 2.8 you can name your arguments. You can also leave out those which have default values, shuffle their order &mdash; or you can simply have another one of those little suckers:</p>
<pre class="brush: scala; title: ; notranslate">val notAMigrosEgg = aMigrosEgg.copy(dotColor = PINK)</pre>
<p>Happy easter everyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=192</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scala Gems #2: Getting Functional</title>
		<link>http://netzwerg.ch/?p=191</link>
		<comments>http://netzwerg.ch/?p=191#comments</comments>
		<pubDate>Thu, 14 Apr 2011 16:43:00 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://heiterebeck.wordpress.com/2011/04/14/scala-gems-2-getting-functional</guid>
		<description><![CDATA[As promised, here is the second post in my haphazardly thrown together Scala series. Over the past few days I have read some chapters in Odersky&#8217;s Programming in Scala, and most importantly, I have written my first ~100 lines of &#8230; <a href="http://netzwerg.ch/?p=191">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As promised, here is the second post in my haphazardly thrown together Scala series. Over the past few days I have read some chapters in Odersky&#8217;s <a href="http://www.artima.com/shop/programming_in_scala_2ed">Programming in Scala</a>, and most importantly, I have written my first ~100 lines of code (a basic Minesweeper app with a simple Swing UI). It&#8217;s been a lot of fun, and I am still very enthusiastic about many new concepts &amp; constructs. When coding, the biggest challenge is to <span style="font-weight:bold;">not</span> fall back to imperative Java style, but really use the functional concepts wherever applicable. I am probably still not radical enough, but for the time being, here is my take on revealing non-mined cells:</p>
<pre class="brush: scala; title: ; notranslate">
def reveal = {
  if (revealed == false) {
    revealed = true
    if (adjacentMineCount == 0) {
      adjacentCells.foreach (cell =&gt; cell.reveal)
    }
  }
}</pre>
<p>In summary: 1 usage of <code>=&gt;</code> (and even a recursion <img src='http://netzwerg.startlogic.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=191</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scala Gems: #1</title>
		<link>http://netzwerg.ch/?p=190</link>
		<comments>http://netzwerg.ch/?p=190#comments</comments>
		<pubDate>Fri, 08 Apr 2011 05:01:00 +0000</pubDate>
		<dc:creator>Rahel Lüthy</dc:creator>
				<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://heiterebeck.wordpress.com/2011/04/08/scala-gems-1</guid>
		<description><![CDATA[This article finally did it: &#8220;Guardian.co.uk Switching from Java to Scala&#8221; &#8212; it made me jump head first into the Scala newbie pool. Of course I wanted to learn Scala for quite some time already, but I somehow never managed &#8230; <a href="http://netzwerg.ch/?p=190">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This article finally did it: <a href="http://www.infoq.com/articles/guardian_scala">&#8220;Guardian.co.uk Switching from Java to Scala&#8221;</a> &mdash; it made me jump head first into the Scala newbie pool. Of course I wanted to learn Scala for quite some time already, but I somehow never managed to get my act together.</p>
<p>Life as a Java programmer had gotten harder over the last few years. Not that I don&#8217;t enjoy my job anymore, to the contrary, but reading about all these highly dynamic youngsters hacking together their Python/Ruby/Groovy wizardy at the speed of light has made me feel even older than I already am. Old-fashionedness at its finest: I absolutely can&#8217;t relate to all this enthusiasm for dynamic languages. Ok, I admit that some script-fu will certainly help getting this nasty little problem solved quickly, but how the heck will a huge Rails project be maintainable over 10+ years? Or do we still have to wait longer for time to tell that it will fail? Do these people write tests for each and every thing that otherwise would be checked by a compiler? Isn&#8217;t this a rather high price for a little duck-typing?</p>
<p>I am obviously being cynical, but luckily I am not the only one in doubt. Some great brains also think that throwing away the type system is not the best compromise to make in order to get rid of Java&#8217;s (admittedly extensive) boilerplate. In <a href="http://www.parleys.com/#st=5&amp;sl=1&amp;id=10">this excellent talk</a>, Bill Venners speaks about his preference for typed languages. He mentions &#8220;deterministic refactoring&#8221; as the main benefit, which he explains like this:<br />
<blockquote>I don&#8217;t like types because I think they proof my program correct [...] but  because they can proof <span style="font-weight:bold;">changes</span> that I make to my programs are correct</p></blockquote>
<p>Coming back to Scala: It seems to combine the best of all worlds &mdash; strictly typed, functional &amp; object-oriented, radically concise, and just close enough to the Java world for old-timers to transition gradually <img src='http://netzwerg.startlogic.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>To keep my new Scala heart beating, I will start posting weekly Scala gems. Let me start with the example given in the above interview &mdash; just to illustrate what &#8220;no boilerplate&#8221; and &#8220;concise&#8221; really mean:</p>
<p>Java:</p>
<pre class="brush: java; title: ; notranslate">
public class HowdyClass {

    private String name;

    public HowdyClass(String name) {
        this.name = name;
    }

    public String sayHowdy() {
        return &quot;Howdy &quot; + name;
    }
}
</pre>
<p>and in Scala:</p>
<pre class="brush: scala; title: ; notranslate">
class HowdyClass(name: String) {
    def sayHowdy = &quot;Howdy &quot; + name
}</pre>
<p>The second example is my personal highlight after roughly two hours of playing around with the interpreter: Initializing a two-dimensional grid with indexed cells:</p>
<pre class="brush: scala; title: ; notranslate">
class Cell(x: Int, y: Int)
Seq.tabulate(3, 9)(new Cell(_, _))
</pre>
<p>This is actually almost too concise (or at least as a functional noob it took me quite some time to understand it). Here&#8217;s a verbose equivalent which is a bit more self explanatory:</p>
<pre class="brush: scala; title: ; notranslate">
Seq.tabulate(3, 9)((x: Int, y: Int) =&gt; new Cell(x, y))
</pre>
<p>And now <a href="http://www.scala-lang.org/">go get it</a> and have a lot of fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://netzwerg.ch/?feed=rss2&#038;p=190</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

