<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-EN">
  <title>finnlabs • software architects - Blog</title>
  <id>tag:www.finn.de,2010:mephisto/blog</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  
  <link href="http://www.finn.de/blog" rel="alternate" type="text/html" />
  <updated>2010-01-24T18:23:13Z</updated>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/finn/blog" /><feedburner:info uri="finn/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2010-01-24:87</id>
    <published>2010-01-24T18:09:00Z</published>
    <updated>2010-01-24T18:23:13Z</updated>
    <category term="Blog" />
    <category term="berlin" />
    <category term="real estate" />
    <category term="research" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/164B9qvhsBQ/the-cost-of-liberty-the-collapse-of-berlin-s-housing-market" rel="alternate" type="text/html" />
    <title>Euphoria and disillusionment: The collapse of Berlin's housing market.</title>
<content type="html">
            &lt;p&gt;Professor John Clapp (University of Connecticut) and I are currently working on a new version of our study on &lt;a href="http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1537397"&gt;real option value in hedonic regression frameworks&lt;/a&gt;. In short: we suggest an improved index estimation technique which we apply on data from Berlin home sales. The paper is still very “pre-alpha”, but one result is so fascinating that I would like to share it already.&lt;/p&gt;


	&lt;h3&gt;West-Berlin’s home values 1978-2007: prices in free fall.&lt;/h3&gt;


	&lt;p&gt;&lt;/p&gt;


&lt;p&gt; (Hedonic index estimated on individual transaction data provided by Berlin’s &lt;a href="https://www.gutachterausschuss-berlin.de/gaaonline/index.html"&gt;Gutachterausschuß für Grundstückswerte&lt;/a&gt;. For a full discussion please see &lt;a href="http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1537397"&gt;working paper&lt;/a&gt;.)&lt;p&gt;

	&lt;p&gt;It does not come as a surprise that Berlin home values did perform well in the last years. The extend of the decline, however, is breath-taking: &lt;b&gt;Berlin home values lost a staggering 46% in real terms since its all-time peak in 1993&lt;/b&gt;. If you know of any major city in the world that experienced a similar melt-down, please let me know.&lt;/p&gt;


	&lt;p&gt;The loss is even more severe against the background of strong real estate markets in most other European capitals. What went wrong in Berlin?&lt;/p&gt;


	&lt;h3&gt;Berlin’s home values compared to selected European peers.&lt;/h3&gt;


	&lt;p&gt;&lt;/p&gt;


&lt;p&gt; All prices are in nominal terms. Peers were selected on data availability. For sources &amp;rarr; &lt;a href="http://spreadsheets.google.com/pub?key=t6_UvpJYyLaWweDvHmaTm4w&amp;amp;gid=2"&gt;click here&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/164B9qvhsBQ" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2010/1/24/the-cost-of-liberty-the-collapse-of-berlin-s-housing-market</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-11-24:80</id>
    <published>2009-11-24T14:22:00Z</published>
    <updated>2009-12-01T15:10:41Z</updated>
    <category term="Blog" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/s8Xu7-5AbVg/finnlabs-provided-for-one-of-jruby-s-success-stories" rel="alternate" type="text/html" />
    <title>finnlabs provided for one of JRuby's success stories</title>
<content type="html">
            &lt;p&gt;Yes, we made it into the list of JRuby reference cases:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.engineyard.com/about/press/09-11-18-engine-yard-announces-momentum-of-jruby"&gt;http://www.engineyard.com/about/press/09-11-18-engine-yard-announces-momentum-of-jruby&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The &lt;a href="http://www.pons.eu"&gt;&lt;span class="caps"&gt;PONS&lt;/span&gt;.eu&lt;/a&gt; online dictionary’s design combines the best of two worlds: Components requiring high-performance (search etc.) are written in Java, giving the system high speed and a low computing power footprint. Services with more extensive functionality but lower performance requirements were realised in Ruby, capitalising on its low development costs. For the seamless intergration of these two different programming languages we rely on JRuby. &lt;i&gt;finnlabs&lt;/i&gt; is proud to develop for and to host &lt;span class="caps"&gt;PONS&lt;/span&gt;.eu.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/s8Xu7-5AbVg" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/11/24/finnlabs-provided-for-one-of-jruby-s-success-stories</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>f.geller</name>
    </author>
    <id>tag:www.finn.de,2009-10-13:71</id>
    <published>2009-10-13T11:01:00Z</published>
    <updated>2009-10-14T14:33:59Z</updated>
    <category term="Blog" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/f3qPze6Yqw8/climbing-the-ridge-2" rel="alternate" type="text/html" />
    <title>finnlabs mountaineering - Piz Bernina and the Bianco Ridge</title>
<summary type="html">&lt;p&gt;On August 23rd 2009 three &lt;i&gt;finnlabs&lt;/i&gt; colleagues aimed high – and climbed the Piz Bernina (4049m) from the legendary white northern Bianco Ridge. Piz Bernina is the highest summit in the Engadin region and lies close to the resorts of St. Moritz and Pontresina. It is one of the few isolated 4000m peaks in the Alps.
The Bianco Ridge is surely the most famous route to the summit being more difficult and more exposed than the “normal” route.&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“View on Piz Bernina with Bianco Ridge.” &lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;On August 23rd 2009 three &lt;i&gt;finnlabs&lt;/i&gt; colleagues aimed high – and climbed the Piz Bernina (4049m) from the legendary white northern Bianco Ridge. Piz Bernina is the highest summit in the Engadin region and lies close to the resorts of St. Moritz and Pontresina. It is one of the few isolated 4000m peaks in the Alps.
The Bianco Ridge is surely the most famous route to the summit being more difficult and more exposed than the “normal” route.&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“View on Piz Bernina with Bianco Ridge.” &lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;
&lt;h3&gt;Meeting in Pontresina&lt;/em&gt;&lt;/h3&gt;


	&lt;p&gt;“We began our tour in Pontresina, heading out for several days of
hiking and climbing sitting in the back of a horse carriage with an
all-blonde cockpit. Enjoying the beautiful weather and scenery, we had
a rather easy-going start. We got off at the Hotel Roseg and
finally started hiking up to &lt;a href="http://www.vs-wallis.ch/graubuend/huetverz/tschiervah.html"&gt;Chamanna da Tschierva&lt;/a&gt; (2583m) which was to be our home for the night. Sitting on the hut’s terrace for lunch,
we looked up to the beautiful Bianco Rige with anticipation, making
plans for the next day over a glass of wine before heading to bed.&lt;/p&gt;


	&lt;h3&gt;Climbing Piz Bernina&lt;/h3&gt;


	&lt;p&gt;The alarm rang at 2:45. After a brief breakfast and a last check of our equipment we started in three groups using our
headlamps to find our way through stony passages until the first morning light rose. After an easy hike in order to wake up this early, we crossed a small glacier before starting to climb up to the Fuorcla Prievlusa where we could grasp a first sight onto the white ridge. When finally reaching the col, we were awarded by early sunlight and a spectacular view onto Morteratsch Glacier and Piz Palü. We continued to climb up the last meters before reaching the flank of the Bianco Ridge. After hanging in the icy flank for some memorable moments, we finally reached the beautiful ridge and
started to climb up the stairway to heaven.&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“Truely, a stairway to heaven…”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“Hanging in the ice flank.”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“On the ridge.”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;


	&lt;p&gt;At the end of the snow covered ridge we reached Piz Bianco (3995m) before continuing to climb the last challenging and quite exposed part up to Piz Bernina (4048m). The view from the peak was clear and we managed to enjoy several minutes by ourselves, before fellow Italian mountaineers caught up. Some of us started planning the descent with “anticipation” while some just rested and enjoyed the peaceful silence, but all of us were amazed by the view and the luck we had with the weather. Crossing a “slackline” at 4000m was surely an experience, when we started our descent along the exposed Spalla Ridge. We reached the &lt;a href="http://www.summitpost.org/hut/campground/359701/rifugio-marco-e-rosa.html"&gt;Rifugio Marco e Rosa&lt;/a&gt; (3609m) under a warm afternoon sun and started celebrating our hike with a beautiful view from the hut’s
terrace. After enjoying delicious meal, we concluded the evening with a bottle of red wine to commemorate our
first peak higher than 4000m.&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“Slackline experience at 4000m!”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“Abseiling on the way back.”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;


	&lt;h3&gt;Returning to Pontresina&lt;/h3&gt;


	&lt;p&gt;We started our hike back to Pontresina before sunrise, across the
glaciers to the Bellavista Terrace. Enjoying the beautiful view back
to Piz Bernina and across the glacier reflecting the first sunrays we
blissfully continued our hike. We happily carried on, crossing the
Fortezza Ridge and the Pers Glacier. After a joyful final spurt up to
the Diavolezza Hut we finally reached the end point of our tour.  Even
the amazingly uncourteous host at the Diavolezza Hut was not able to
taint the amazing atmosphere given the incredibly beautiful view
back. A comfy train ride back to Pontresina was the end of this
unforgettable weekend.”&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;&lt;td&gt;

&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;

	&lt;p&gt;&lt;i&gt;“Morning mood on the Bellavista Terrace with view on the Ortler massif.”&lt;/i&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/f3qPze6Yqw8" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/10/13/climbing-the-ridge-2</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-09-04:60</id>
    <published>2009-09-04T19:07:00Z</published>
    <updated>2009-09-09T12:53:55Z</updated>
    <category term="Blog" />
    <category term="coaching" />
    <category term="innovation" />
    <category term="strategy" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/llEFC2lIF1o/blog-pressemeldung-advisory-board" rel="alternate" type="text/html" />
    <title>finnlabs international advisory board</title>
<content type="html">
            &lt;p&gt;The statement is dangerously close to a platitude from the management consultancy literature. Nevertheless, it holds true: &lt;i&gt;finnlabs is constantly re-inventing itself&lt;/i&gt;. The business environment we are operating in has radically changed during the last years. The opportunities offered during the dot-com euphoria a decade ago were very different from the painful sobering up later on. The industry professionalized and today a very different set of abilities is expected from a company to thrive.&lt;/p&gt;


	&lt;p&gt;Ever since the infancy of our business, a network of experienced friends supported us in almost any dimension of our work. As visionaries, sharing their business ideas and discussing ours. As experts, providing insights into new technologies. As experienced managers, telling us how to run operations. As friends, whose advise is always an invaluable help.&lt;/p&gt;


	&lt;p&gt;Even in the 10th year of operations we have not reached a state of “business as usual”. Our customers’ needs and the technological possibilities evolve constantly. Swift adaptation is the key to serve our clients in the best way possible. Thinking ahead, developing visions, new products and possible scenarios is still as crucial as during the first days. We are therefore grateful for the continuous conversation with “our” network which is a constant source of innovation.&lt;/p&gt;


	&lt;p&gt;&lt;i&gt;finnlabs&lt;/i&gt; is establishing a more formal &lt;a href="http://www.finn.de/team#advisoryboard"&gt;Board of Advisors&lt;/a&gt;.  Institutionalising the exchange of knowledge and ideas intensifies the links within the network even more. Additionally it gives us a chance to thank and credit our advisors publicly.&lt;/p&gt;


	&lt;p&gt;The first members of the advisory board are:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://finn.de/team#p.eichholtz"&gt;Prof. Dr. Piet Eichholtz&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://finn.de/team#t.hawkins"&gt;Tom Hawkins&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://finn.de/team#k.reichert"&gt;Dr. Klaus Reichert&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://finn.de/team#w.meusel"&gt;Dr. Winfrid Meusel&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


&lt;hr class="team_member_line"&gt;
&lt;b&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt; (Sep. 8, 2009)&lt;/b&gt;

	&lt;p&gt;Dr. Meusel has published a &lt;a href="http://www.i3-ps.de/news/dr-winfrid-meusel-in-das-international-advisory-board-der-finn-gmbh-berlin-berufen"&gt;press release&lt;/a&gt; about the establishment of the international advisory board. Thank you very much, Winfrid!
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/llEFC2lIF1o" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/9/4/blog-pressemeldung-advisory-board</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>g.schmidt</name>
    </author>
    <id>tag:www.finn.de,2009-07-22:50</id>
    <published>2009-07-22T14:00:00Z</published>
    <updated>2009-09-29T07:04:28Z</updated>
    <category term="Blog" />
    <category term="continuous integration" />
    <category term="opensource" />
    <category term="plugin" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/L0x1ZNOpmyo/push-notifications-of-continious-integration-to-your-iphone" rel="alternate" type="text/html" />
    <title>Push notifications of continuous integration to your iPhone</title>
<content type="html">
            &lt;p&gt;The iPhone OS 3.0 brought push notifications to most of finnlabs’ mobile devices (iPhone is dominating here). Since we are big fans of  &lt;a href="http://en.wikipedia.org/wiki/Continuous_integration"&gt;Continuous Integration&lt;/a&gt;, I wanted to see whether or not we could get notifications about our build status to our phones. It turned out to be rather simple. By combining a) a great iPhone application, b) simple APIs, and c) open source work by others, we were able to achieve this goal.&lt;/p&gt;

&lt;h3&gt;The Ingredients&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://prowl.weks.net/"&gt;Prowl&lt;/a&gt; is an iPhone application, that allows to forward &lt;a href="http://growl.info/"&gt;Growl&lt;/a&gt; notifications to your iPhone via Apple’s push notification technology. In fact, your message is passed from Growl to the Prowl-Growl-Plugin to a Prowl server to an Apple server to your phone. Additionally Prowl offers an API for third party applications such that you are able to use the Prowl infrastructure (servers and iPhone client) for your own good, independent from a running OS X machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/pixeltrix/prowler/"&gt;Prowler&lt;/a&gt; is a RubyGem, that wraps a simple Ruby API around Prowl’s web service. This enables every ruby application to sent push notifications using any given Prowl API key.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://shorturl.rubyforge.org"&gt;ShortURL&lt;/a&gt; is a RubyGem, that wraps an even simpler Ruby API around multiple URL shortening services. Its as simple as that.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cruisecontrolrb.thoughtworks.com/"&gt;CruiseControl.rb&lt;/a&gt; is our favorite Continuous Integration server. We are hosting an instance for over a year now here at finnlabs. Every project is hooked up there. Generally we are monitoring the build status using the build server’s web page or &lt;a href="http://ccmenu.sourceforge.net/"&gt;CCMenu&lt;/a&gt;. Actually, we never set up the email notifications for build changes, since there was no need to do so. &lt;/p&gt;

&lt;h3&gt;What we did&lt;/h3&gt;

&lt;p&gt;CruiseControl.rb knows a simple yet powerful plugin architecture, which allows arbitrary ruby code to be executed on certain build events. By using the above mentioned Prowler gem and the the EmailNotifier bundled with CruiseControl.rb itself, we were able to implement a simple CruiseControl.rb plugin called ProwlNotification. It sends notifications each time the build status of a certain project changes.&lt;/p&gt;

&lt;p&gt;If configured correctly, the message will include a link to the project page on your CruiseControl.rb server, so that all necessary information is right at hand. If present, ProwlNotification uses the ShortURL gem to shorten the link.&lt;/p&gt;

&lt;h3&gt;Get it as well&lt;/h3&gt;

&lt;p&gt;All that was left to do was writing documentation and installation instructions. You may find everything on the &lt;a href="http://github.com/finnlabs/prowl_notifier/"&gt;GitHub project page&lt;/a&gt;. The code is published under an MIT-style license, so you are able to change and tweak it to your needs. Of course, we would love to here, how you like it.&lt;/p&gt;

&lt;p&gt;Enjoy.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/L0x1ZNOpmyo" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/7/22/push-notifications-of-continious-integration-to-your-iphone</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-07-19:53</id>
    <published>2009-07-19T15:25:00Z</published>
    <updated>2009-07-20T18:03:07Z</updated>
    <category term="Blog" />
    <category term="birthday" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/bY31HReqJ8s/9th-birthday-sin-finn-gmbh" rel="alternate" type="text/html" />
    <title>Hurray: 9th birthday SiN/Finn GmbH!</title>
<content type="html">
            &lt;p&gt;
Last week, Finn GmbH celebrated its 9th birthday. We have come a long way since then. Founded as a provider of educational content and webservices in the heydays of the dot-com euphoria, we soon offered software development to a distinct group of clients. Solid craftsmanship and fast adaptation was recession-proof. We continued to flourish even when many fellow-companies had to shift several gears down in the following years. Today, finnlabs offers a broad range of services and own products – and is more fun than ever.&lt;/p&gt;


	&lt;p&gt;This is a good moment to thank our team and clients, our business partners and advisors, our friends and family for their excellent teamwork, support, help, and inspiration. Cheers to everyone!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/bY31HReqJ8s" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/7/19/9th-birthday-sin-finn-gmbh</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>g.schmidt</name>
    </author>
    <id>tag:www.finn.de,2009-07-16:51</id>
    <published>2009-07-16T10:07:00Z</published>
    <updated>2009-07-16T10:27:06Z</updated>
    <category term="Blog" />
    <category term="html5" />
    <category term="javascript" />
    <category term="jquery" />
    <category term="opensource" />
    <category term="plugin" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/UV7d0y-huVg/leveraging-html-5-features-for-every-browser-today" rel="alternate" type="text/html" />
    <title>Bringing HTML 5 features to every browser, today</title>
<content type="html">
            &lt;p&gt;Just like &lt;a href="http://www.sitepoint.com/article/html-5-snapshot-2009/"&gt;Bruce Lawson on sitepoint.com&lt;/a&gt; says: &amp;laquo;Yes, You Can Use HTML 5 Today!&amp;raquo; Besides new HTML elements, &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;HTML 5&lt;/a&gt; brings lots of new features to JavaScript and the DOM-API as well. One of these new features is the &lt;a href="http://dev.w3.org/html5/spec/Overview.html#handler-window-onhashchange"&gt;hashchange&lt;/a&gt; event.&lt;/p&gt;

&lt;h3&gt;The hashchange event&lt;/h3&gt;

&lt;p&gt;Whenever you follow an internal link on a website, the portion of the URL behind the &lt;code&gt;#&lt;/code&gt; in the location bar and the browser’s history is updated. This enables easy browsing within large documents. With AJAX-enabled websites, changing the location hash was also used to store a certain navigation step with the same page, without being directly related to page internal links. This technique brings history support and bookmarkability - two important features of a browser - to these sites. The DOM-API implemented in current browsers simply does not allow for capturing changes of the location hash directly. &lt;/p&gt;

&lt;p&gt;HTML 5 will overcome this shortcoming. Here, every time the location hash changes (either by following an internal link, using the Back button, a bookmark, or by changing the hash in the location bar) an event will be triggered that can be listened to by any JavaScript function.&lt;/p&gt;

&lt;h3&gt;Current state&lt;/h3&gt;

&lt;p&gt;As of today, only &lt;a href="http://msdn.microsoft.com/en-us/library/cc288209%28VS.85%29.aspx"&gt;Internet Explorer 8&lt;/a&gt; supports the new event. In all other browser this behavior needs to be simulated. This is generally done by constantly polling the state of the location hash and comparing stored and current values. Managing the polling function and triggering the right actions may become tedious, especially when multiple actions need to be run.&lt;/p&gt;

&lt;h3&gt;jQuery.observeHashChange plugin&lt;/h3&gt;

&lt;p&gt;In order to make use of the new functionality in HTML 5 and Internet Explorer 8 while still supporting older browsers, we compiled a jQuery plugin that gives you a cross platform, jQuery-like API. The API always tries to use the best possible function, so when other browsers start to support for the hashchange event, your application will benefit automagically.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://finnlabs.github.com/jquery.observehashchange/"&gt;This page&lt;/a&gt; provides a live example. Besides our new plugin, the site features new HTML 5 elements to structure the content. It already works in all major browsers, today. (Please note, that the layout won’t work in Internet Explorer 6, but this is related to missing CSS features.)&lt;/p&gt;

&lt;p&gt;As usual, we have released the plugin on &lt;a href="http://github.com/finnlabs/jquery.observehashchange/"&gt;GitHub page&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/UV7d0y-huVg" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/7/16/leveraging-html-5-features-for-every-browser-today</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>h.just</name>
    </author>
    <id>tag:www.finn.de,2009-06-26:46</id>
    <published>2009-06-26T15:00:00Z</published>
    <updated>2009-06-26T15:07:54Z</updated>
    <category term="Blog" />
    <category term="haproxy" />
    <category term="load balancing" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/d-fuwkzPht8/modularize-haproxy-s-configuration-files" rel="alternate" type="text/html" />
    <title>Modularise HAProxy's configuration files</title>
<content type="html">
            &lt;p&gt;finnlabs uses &lt;a href="http://haproxy.1wt.eu/"&gt;HAProxy&lt;/a&gt; to balance the requests on the application servers powering our clients web applications. We recommend this fantastic piece of software to anybody as it scales almost infinitely in terms of throughput and concurrent connections. It is even that efficiently designed that under extreme loads most of the times not HAProxy becomes the bottleneck but the underlying operating system.&lt;/p&gt;

&lt;p&gt;Unfortunately, HAProxy’s configuration is not very flexible. What was missing the most is some kind of “include” mechanism to split up the single large configuration file into smaller modules (at least in my opinion and according to posts of others in the &lt;a href="http://haproxy.1wt.eu/#tact"&gt;mailing list&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;As a workaround I developed a small python script which takes bits of configuration from a well-defined directory structure and assembles the single configuration file. Including a call to this script into the init script of HAProxy mimics an include mechanism. The script can be downloaded from &lt;a href="http://github.com/finnlabs/haproxy/tree/master"&gt;github&lt;/a&gt;. A modified init script based on the one which comes with the HAProxy package of Debian (originally written by Arnaud Cornet) can also be found there. You might need to update the path values in the script.&lt;/p&gt;

&lt;p&gt;The script expects a certain fixed directory hierarchy. The top-level directory names are fixed. The other names can be chosen arbitrarily. Note that the second level directory names end up as section names in the final configuration file. Choose your names so that they are accepted by HAProxy. An example directory tree for the configuration is given below. If you put that tree below the &lt;code&gt;/etc/haproxy&lt;/code&gt; the script will work out of the box and create the &lt;code&gt;/etc/haproxy/haproxy.cfg&lt;/code&gt; file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;global
&lt;ul&gt;
&lt;li&gt;00-base&lt;/li&gt;
&lt;li&gt;10-log&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;defaults
&lt;ul&gt;
&lt;li&gt;00-base&lt;/li&gt;
&lt;li&gt;10-errorfiles&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;frontends
&lt;ul&gt;
&lt;li&gt;my-first-frontend
&lt;ul&gt;
&lt;li&gt;00-ports&lt;/li&gt;
&lt;li&gt;10-acls&lt;/li&gt;
&lt;li&gt;20-backend1&lt;/li&gt;
&lt;li&gt;21-backend2&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;my-second-frontend
&lt;ul&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;listen
&lt;ul&gt;
&lt;li&gt;sect1
&lt;ul&gt;
&lt;li&gt;00-base&lt;/li&gt;
&lt;li&gt;10-backend1&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;sect2
&lt;ul&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;backends
&lt;ul&gt;
&lt;li&gt;my-first-backend
&lt;ul&gt;
&lt;li&gt;00-base&lt;/li&gt;
&lt;li&gt;10-server1&lt;/li&gt;
&lt;li&gt;11-server2&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;my-second-backend
&lt;ul&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/d-fuwkzPht8" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/6/26/modularize-haproxy-s-configuration-files</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-06-02:45</id>
    <published>2009-06-02T18:25:00Z</published>
    <updated>2009-06-02T21:11:37Z</updated>
    <category term="Blog" />
    <category term="news" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/Hqcb9vf4gZs/dnnd-de-in-the-meedia" rel="alternate" type="text/html" />
    <title>DNND.de in the "meedia"</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://dnnd.de"&gt;DNND&lt;/a&gt; caught the attention of &lt;a href="http://www.meedia.de"&gt;Meedia.de&lt;/a&gt; - a portal serving German news professionals with in-depth coverage of the industry. With a sympathetic dose of understatement Meedia.de introduces itself as a “source of information for anyone interested in the media sector”.&lt;/p&gt;

&lt;p&gt;DNND  is a hobby-horse project of the finnlabs founders. It aggregates the top headlines of German and international news providers on one page. The service is special as it picks those headlines that have been selected to be most important by the professional editors of the different sources (and not e.g. select on publication date only). This crowdsourcing approach gives a unique cross-section through the current state of the public discourse.&lt;/p&gt;

&lt;p&gt;DNND is online for 10 years by now. Yes, it is a web 1.0 dinosaur.&lt;/p&gt;

&lt;p&gt;The full interview (in German) can be found &lt;a href="http://meedia.de/nc/details/article/dnndde--bester-news-berblick-im-web_100020715.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/Hqcb9vf4gZs" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/6/2/dnnd-de-in-the-meedia</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>g.schmidt</name>
    </author>
    <id>tag:www.finn.de,2009-05-28:37</id>
    <published>2009-05-28T12:00:00Z</published>
    <updated>2009-05-28T13:20:38Z</updated>
    <category term="Blog" />
    <category term="javascript" />
    <category term="jquery" />
    <category term="opensource" />
    <category term="plugin" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/inXAq-dCG08/fixing-jquery-autocomplete-plugin-for-opera-browsers" rel="alternate" type="text/html" />
    <title>Fixing jQuery autocomplete plugin for Opera browsers</title>
<content type="html">
            &lt;p&gt;At finnlabs we are using the &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; library in all current web development projects. JQuery allows for writing the functionality we need in fewer lines of code and thus eases maintainability and minimizes bugs and errors. The great variety of available JQuery plugins offers us the possibility to stand with our JavaScript applications “on the shoulders of giants”.&lt;/p&gt;

&lt;p&gt;Autocompletion of text fields is a very common task and thanks to the &lt;a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/"&gt;jQuery autocomplete plugin&lt;/a&gt; straight forward to implement for most modern web browsers. It works great in most use cases and has enough hooks and whistles to extend its functionality for individual needs.&lt;/p&gt;

&lt;p&gt;Unfortunately all Opera browsers at hand (Version 9.x) show an annoying bug. When the Ajax request returns without results, the suggestion list is removed and the cursor is placed &lt;strong&gt;at the beginning&lt;/strong&gt; of the text input. This is a real burden for power users.&lt;/p&gt;

&lt;p&gt;During a quick investigation it turned out, that &lt;code&gt;$.Autocompleter.Selection&lt;/code&gt; is causing the trouble. The main purpose of this function is either to select portions of text in the autocompleted input element (when the &lt;code&gt;autoFill&lt;/code&gt; option is used) or to place the cursor behind the last character (when an element is selected from the suggestions list). With the help of &lt;a href="https://developer.mozilla.org/en/Browser_Detection_and_Cross_Browser_Support#Use_feature_oriented_object_detection"&gt;feature detection&lt;/a&gt; the best implementation is selected.&lt;/p&gt;

&lt;pre&gt;
$.Autocompleter.Selection = function(field, start, end) {
    if( field.createTextRange ){
        var selRange = field.createTextRange();
        selRange.collapse(true);
        selRange.moveStart("character", start);
        selRange.moveEnd("character", end);
        selRange.select();
    } else if( field.setSelectionRange ){
        field.setSelectionRange(start, end);
    } else {
        if( field.selectionStart ){
            field.selectionStart = start;
            field.selectionEnd = end;
        }
    }
    field.focus();
};
&lt;/pre&gt;

&lt;p&gt;I’m not an expert concerning feature detection. I always try to avoid browser dependent code and use cross-platform libraries instead. Here is no way around, so I started guessing: &lt;code&gt;createTextRange&lt;/code&gt; is Microsoft’s approach, &lt;code&gt;setSelectionRange&lt;/code&gt; and &lt;code&gt;selectionStart&lt;/code&gt; are both the Mozilla way. Opera seems to support &lt;code&gt;createTextRange&lt;/code&gt;, but obviously not in the right way, hence the bug. By simply switching priorities and starting to look for &lt;code&gt;setSelectionRange&lt;/code&gt; first everything magically started to work fine. Here is our new version:&lt;/p&gt;

&lt;pre&gt;
$.Autocompleter.Selection = function(field, start, end) {
    if( field.setSelectionRange ){
        field.setSelectionRange(start, end);
    } else if( field.createTextRange ){
        var selRange = field.createTextRange();
        selRange.collapse(true);
        selRange.moveStart("character", start);
        selRange.moveEnd("character", end);
        selRange.select();
    } else if( field.selectionStart ){
        field.selectionStart = start;
        field.selectionEnd = end;
    }
    field.focus();
};
&lt;/pre&gt;

&lt;p&gt;Sometimes it is that simple.&lt;/p&gt;

&lt;p&gt;In order to better track the code changes, we just released the fixed code in our &lt;a href="http://github.com/finnlabs/jquery-plugins/tree/master"&gt;GitHub repository&lt;/a&gt;.  You can find minimized and packed versions of our updates there as well.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/inXAq-dCG08" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/5/28/fixing-jquery-autocomplete-plugin-for-opera-browsers</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-04-28:5</id>
    <published>2009-04-28T11:32:00Z</published>
    <updated>2009-05-16T10:30:20Z</updated>
    <category term="Blog" />
    <category term="finance" />
    <category term="mbs" />
    <category term="xbrl" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/WdyU27RIwlA/crisis-as-a-chance-for-it" rel="alternate" type="text/html" />
    <title>Understanding the financial crisis as a chance for IT: More transparency for more trust.</title>
<content type="html">
            &lt;p&gt;Philip Moyer (CEO &lt;a href="http://www.edgar-online.com"&gt;EdgarOnline&lt;/a&gt; and member of the board &lt;a href="http://xbrl.us"&gt;&lt;span class="caps"&gt;XBRL US&lt;/span&gt;&lt;/a&gt;) explains in &lt;a href="http://xbrl.us/Pages/whitepaper.aspx"&gt;this manifesto&lt;/a&gt; how &lt;span class="caps"&gt;XML&lt;/span&gt;/XBRL could help to overcome the loss in mutual trust causing (inter alia) the global financial crisis.&lt;/p&gt;


	&lt;p&gt;The bottom line of the easily  accessible white paper is: Transparency is at least as important as regulation. &lt;span class="caps"&gt;XML&lt;/span&gt;-based, standardised documentation of all steps in the mortgage securitisation could reduce investors risk. Knowing the underlying cash flows allows for reliable pricing of the securities. This could jump start the market for Mortgage Backed Securities (MBS) again.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/WdyU27RIwlA" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/4/28/crisis-as-a-chance-for-it</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-04-28:6</id>
    <published>2009-04-28T11:31:00Z</published>
    <updated>2009-05-16T10:31:24Z</updated>
    <category term="Blog" />
    <category term="gis" />
    <category term="google maps" />
    <category term="spatial analysis" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/N_q9t41HDu0/using-google-maps-for-geocoding-of-spatial-datasets" rel="alternate" type="text/html" />
    <title>Using Google Maps for geocoding of spatial datasets</title>
<content type="html">
            Google Maps offers a great API that can help spatial researchers to find the corresponding coordinates (longitude/latitude) of addresses. With a bit of scripting, entire datasets can be localised at no cost. I have put a &lt;a&gt;little example&lt;/a&gt; online. The code is available from the same location. 

In case you need to geocode a large number of observations, it would be better run to a stripped-down version of the script directly at your machines. Please be aware: Google limits their service to 20k requests per day. I am sure, you'll find a way around this upper threshold.
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/N_q9t41HDu0" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/4/28/using-google-maps-for-geocoding-of-spatial-datasets</feedburner:origLink></entry>
  <entry xml:base="http://www.finn.de/">
    <author>
      <name>t.lindenthal</name>
    </author>
    <id>tag:www.finn.de,2009-04-28:4</id>
    <published>2009-04-28T11:30:00Z</published>
    <updated>2009-05-16T10:32:39Z</updated>
    <category term="Blog" />
    <category term="demographics" />
    <category term="finance" />
    <category term="real estate" />
    <link href="http://feedproxy.google.com/~r/finn/blog/~3/3ji5JFuBxHU/new-publication" rel="alternate" type="text/html" />
    <title>New publication: Can we apply the lessons of East Germany to the Netherlands? </title>
<content type="html">
            &lt;p&gt;The latest edition of the &lt;i&gt;Economisch Statistische Berichten&lt;/i&gt; (very broadly speaking the Dutch answer to the &lt;i&gt;Economist&lt;/i&gt;) features an article by Thies Lindenthal and Prof. Piet Eichholtz. The authors analyse a possible collapse of housing demand caused by decreasing population numbers in the southern Dutch Parkstad agglomeration. Referring to experiences in Eastern German cities, an integrated demolition program is suggested for peripheral areas suffering from population losses.&lt;/p&gt;


	&lt;p&gt;The full article can be &lt;a href="http://esbonline.sdu.nl/esb/esb/archief/?trefwoord=&amp;amp;titel=&amp;amp;bladnummer=&amp;amp;jaargang=&amp;amp;auteur=Lindenthal&amp;amp;submitted=true&amp;amp;x=36&amp;amp;y=17"&gt;downloaded here&lt;/a&gt; (ESB-login needed).&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/finn/blog/~4/3ji5JFuBxHU" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.finn.de/2009/4/28/new-publication</feedburner:origLink></entry>
</feed>
