<?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>The blog of Thomas</title>
	<atom:link href="http://moelhave.dk/feed/" rel="self" type="application/rss+xml" />
	<link>http://moelhave.dk</link>
	<description></description>
	<lastBuildDate>Tue, 26 Feb 2013 02:18:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Running Metronome for Linux</title>
		<link>http://moelhave.dk/2012/03/metronome-for-linux/</link>
		<comments>http://moelhave.dk/2012/03/metronome-for-linux/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 03:15:50 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=636</guid>
		<description><![CDATA[The cadence of a runner, is the number of steps that the runner takes per minute. For people interesting in practicing running technique and form, cadence is often one of the focus points. If your cadence is too low you may be overstriding which can cause all sorts of injuries. Whether or not there is an [...]]]></description>
				<content:encoded><![CDATA[<p>The <em><a href="http://en.wikipedia.org/wiki/Cadence_(gait)">cadence</a></em> of a runner, is the number of steps that the runner takes per minute. For people interesting in practicing running technique and form, cadence is often one of the<a href="http://www.runnersworld.com/article/0,7120,s6-238-267--11604-0,00.html"> focus points</a>. If your cadence is too low you may be overstriding which can cause all sorts of injuries. Whether or not there is an optimal cadence, and how this might vary with <em>pace</em>, appears to be the subject of some <a href="http://sweatscience.com/the-problem-with-180-strides-per-minute-some-personal-data/">debate</a>. In any case, it is often hard to gauge what your pace is when running without a foot-pod that measures this explicitly. You can of course try to count your steps while running and keeping track of the time, but this is cumbersome to do during a run, especially when you are getting tired. It is popular to use music where the beats per minute (BPM) of the music approximately matches your desired cadence, and there are multiple <a href="http://jog.fm">services</a> that help you find good music corresponding to a given number of beats per minute.</p>
<p>If you want to focus on the cadence, and not get distracted by counting, or music, a metronome can help you keep the right pace. I had problems finding audio files that I can put on my portable mp3 player that just contains the output from a metronome, so I decided to write a little <a href="https://github.com/thomasmoelhave/Metronome">piece of software to</a> generate mp3&#8242;s with nothing but metronome-like bleeps at the right rate. I have tested it on Ubuntu 11.10, and Ubuntu 12.04 but fully expect it to work on most distributions, old and new (as long as they have the Boost library). If you are not interested in the metronome itself, but just want some files you can use while running &#8212; here is a list of files with varying bpm that I generated, feel free to download and use them on your own device if you so desire:</p>
<ul>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-100-120s.mp3">100 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-110-120s.mp3">110 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-120-120s.mp3">120 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-130-120s.mp3">130 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-140-120s.mp3">140 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-150-120s.mp3">150 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-160-120s.mp3">160 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-170-120s.mp3">170 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-180-120s.mp3">180 bpm mp3</a></li>
<li><a href="http://moelhave.dk/blog/wp-content/metronome/bpm-190-120s.mp3">190 bpm mp3</a></li>
</ul>
<p>Each file is 2 minutes long. If you want a different number of beats per minute, check out if it is already available in the <a href="http://moelhave.dk/blog/wp-content/metronome/">full list</a>. If not you can download and compile my <a href="https://github.com/thomasmoelhave/Metronome">metronome</a> software to generate your own files. This also goes if you want a different duration.<br />
(There are also <a href="http://wiki.linuxaudio.org/apps/categories/metronomes">other metronomes available for linux, but I decided it would be more fun to write it myself.)</a></p>
<p><img class="alignleft  wp-image-637" title="Snapshot of the metronome output " alt="Waveform at 1000 beats per minute from the metronome" src="http://moelhave.dk/blog/wp-content/uploads/2012/03/plot.png" width="512" height="384" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2012/03/metronome-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-100-120s.mp3" length="500456" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-110-120s.mp3" length="486992" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-120-120s.mp3" length="491852" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-130-120s.mp3" length="487856" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-140-120s.mp3" length="488324" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-150-120s.mp3" length="488360" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-160-120s.mp3" length="485012" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-170-120s.mp3" length="487856" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-180-120s.mp3" length="485156" type="audio/mpeg" />
<enclosure url="http://moelhave.dk/blog/wp-content/metronome/bpm-190-120s.mp3" length="485624" type="audio/mpeg" />
		</item>
		<item>
		<title>TCX-Tools: Convert Nike+ Files, Work With GPS and Heart Rate Data from TCX Files.</title>
		<link>http://moelhave.dk/2012/02/announcing-tcx-tools-convert-nike-files-work-with-gps-and-heart-rate-data-from-tcx-files/</link>
		<comments>http://moelhave.dk/2012/02/announcing-tcx-tools-convert-nike-files-work-with-gps-and-heart-rate-data-from-tcx-files/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 18:07:57 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[endomondo]]></category>
		<category><![CDATA[forerunner]]></category>
		<category><![CDATA[garmin]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[tcx]]></category>
		<category><![CDATA[tcx-tools]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=600</guid>
		<description><![CDATA[I recently started using Endomondo to keep track of my workouts. Endomondo can get data from the Endomondo smartphone apps, but it also has good support for importing data from Garmin devices (including my Garmin Forerunner 610) and it supports importing tcx files generated by other sites/apps as well. However, there was a few things [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_617" class="wp-caption alignnone" style="width: 522px"><a href="http://www.flickr.com/photos/cdm/84202849/"><img class="wp-image-617 " title="marathon yellow" src="http://moelhave.dk/blog/wp-content/uploads/2012/02/running1.jpg" alt="" width="512" height="366" /></a><p class="wp-caption-text">Photo by darkmatter/flickr.</p></div>
<p>I recently started using <a title="Endomondo" href="http://endomondo.com">Endomondo</a> to keep track of my workouts. Endomondo can get data from the Endomondo smartphone apps, but it also has good support for importing data from Garmin devices (including my Garmin Forerunner 610) and it supports importing tcx files generated by other sites/apps as well. However, there was a few things that annoyed me a little bit.</p>
<ul>
<li>I could not import my old foot-pod workouts from Nike+.</li>
<li>Endomondo will only display the heart rate graph if the workout has associated GPS information. This means that I cannot see the heart rate graph for my indoor workouts, and that&#8217;s just dumb.</li>
<li>Sometimes I will walk or run with my wife and we will follow the same route. If she wears the Forerunner the associated heart rate information will not apply to me, although the gps trace itself is perfectly valid.</li>
</ul>
<div>I decided to <a title="The Cathedral and the Bazaar" href="http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar">scratch my itch</a> and develop some simple open source tools that can help me with the above issues. The result is <a href="https://github.com/thomasmoelhave/tcx-tools">TCX-Tools</a>. which is a suite of very rudimentary tools that perform helpful operations on TCX files, the popular Garmin file format for fitness information.</div>
<ul>
<li><strong>nike+totcx</strong> Converts XML Files with iPod foot-pod data from Nike+<br />
to TCX files.</li>
<li><strong>tcx-add-gps-coordinate</strong> Adds a GPS coordinate to an existing TCX<br />
file without location information.</li>
<li><strong><em>tcx-strip-heart-rate</em></strong> Removes heart rate information from an<br />
existing TCX file.</li>
</ul>
<p>Be aware: This is a very basic collection of XSL Transformations and some trivial tools to run them. There are probably multiple bugs and there is no fancy GUI or anything like that. It is also completely untested on anything but Ubuntu 11.10, but I am hopeful that it works on most OS&#8217;s, even if the scripts themselves won&#8217;t run :). Please let me know if/when you find any issues with any of the tools and I&#8217;ll try and fix them.</p>
<div id="attachment_613" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-613 " title="Endomondo Heart Rate" src="http://moelhave.dk/blog/wp-content/uploads/2012/02/EndomondoHeartRate2.png" alt="Endomondo heart rate" width="550" height="157" /><p class="wp-caption-text">Endomondo heart rate graph with no speed information.</p></div>
<h2>Installation</h2>
<p><a href="https://github.com/thomasmoelhave/tcx-tools">TCX-Tools</a> is hosted on github. These directions assume  you are working with a GNU/Linux (or possibly Mac) system. The tools are based on XSL Transformations which should work in any os if you have the right tools. First clone the tcx-tools repository</p>
<pre><code>$ git clone https://thomasmoelhave@github.com/thomasmoelhave/tcx-tools.git</code></pre>
<pre><code>$ cd tcx-tools </code></pre>
<p>You will need to install Saxon, on Ubuntu this can be done like this:</p>
<pre><code>$ sudo aptitude install libsaxon-java </code></pre>
<p>To use nike+totcx to convert Nike+ XML files to TCX files you also<br />
need to download the EXSLT template:</p>
<pre><code>$ wget http://www.exslt.org/date/functions/add/date.add.template.xsl </code></pre>
<h2>nike+totcx</h2>
<p>The nike+totcx tool is an xsl document that can be used to convert<br />
information from a standard Nike+ foot-pod system paired with an iPod<br />
to the TCX files supported by Endomondo and Garmin Connect (and many<br />
others).</p>
<p><strong>Getting the data</strong></p>
<p>Mount your iPod and find the directory containing the .xml files for<br />
the individual workouts. On my iPod the workouts are stored in the<br />
directory</p>
<pre><code> /media/&lt;ipod name&gt;/iPod_Control/Device/Trainer/Workouts/ </code></pre>
<p>It is also possible to get the xml files of past runs from the Nike+<br />
website, but it involves some trickery.</p>
<p><strong>Running</strong></p>
<pre><code>$ ./nike+totcx &lt;input xml file&gt; &lt;output tcx file&gt; </code></pre>
<h2>tcx-add-gps-coordinate</h2>
<p>As explained above this tool adds a single GPS coordinate (lat,long)<br />
to the tcx file. Doing this will coerce Endomondo to display the heart<br />
rate graph that it otherwise wouldn&#8217;t display.</p>
<p><strong>Running</strong></p>
<pre><code>$ ./tcx-add-gps-coordinate &lt;input tcx file&gt; &lt;output tcx file&gt; &lt;lat&gt; &lt;long&gt; </code></pre>
<h2>tcx-strip-heart-rate</h2>
<p>If you have been out exercising with a companion that used a gps and<br />
heart rate monitoring device, you may want to import the GPS trace but<br />
not the heart rate information into your own account (on Endomondo,<br />
Garmin Connect or other tool). This tool strips the heart rate (and<br />
calorie) information from the supplied tcx file, but keeps everything<br />
else.</p>
<p><strong>Running</strong></p>
<pre><code>$ ./tcx-strip-heart-rate &lt;input tcx file&gt; &lt;output tcx file&gt; </code></pre>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2012/02/announcing-tcx-tools-convert-nike-files-work-with-gps-and-heart-rate-data-from-tcx-files/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Play with Global Flood Maps &#8211; New SCALGO Website Launched</title>
		<link>http://moelhave.dk/2011/06/play-with-global-flood-maps-new-scalgo-website-launched/</link>
		<comments>http://moelhave.dk/2011/06/play-with-global-flood-maps-new-scalgo-website-launched/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 20:01:22 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=580</guid>
		<description><![CDATA[A long time in the making, we finally launched the new website for SCALGO a few days ago. The new website has product descriptions and lots of easy to read information about our technology and I hope that it can inspire LIDAR users to get more out of their huge LIDAR datasets. After all, it [...]]]></description>
				<content:encoded><![CDATA[<p>A long time in the making, we finally launched the new website for <a title="Scalable Algorithmics - SCALGO" href="http://scalgo.com">SCALGO</a> a few days ago. The new website has product descriptions and lots of easy to read information about our technology and I hope that it can inspire LIDAR users to get more out of their huge LIDAR datasets. After all, it is a shame to spend millions in flight time and equipment and then not use the point cloud optimally because the data is too big to handle.</p>
<p>One of the things I like about our new site is our <a title="SCALGO mapping example, build on google maps" href="http://scalgo.com/technology/map.php">mapping example</a> which is built on top of Google Maps using our own custom server for our data. Unfortunately we don&#8217;t have the rights to show some of the very detailed LIDAR-derived models we have worked with. However, we have also played with the full <a title="Shuttle Radar Topography Mission" href="http://www2.jpl.nasa.gov/srtm/">SRTM</a> model, and we show two different examples <a href="http://scalgo.com/technology/map.php">online</a>. In the first you can play with global flood maps by controlling the sea-level and discover what parts of the world gets flooded. Unlike most other similar computations available online, this is not done by simply intersection the raster with a horizontal plane at the water level and marking everything underneath this plane as flooded &#8211; doing so would ignore the effect of many features in the terrain (e.g. dikes). Additionally, the computation is done so that we can show arbitrary sea-levels, and not just levels in increments of e.g. 10cm. In the other computation you can play with flow accumulation, where water falls on the terrain and runs downstream, forming rivers and smaller tributaries.  Note that the resolution of the SRTM model is relatively coarse so dikes and other small natural barriers are not always reflected as they are missing in the data. You can read more about these computations <a href="http://scalgo.com/technology/success-worldhydro.php">here</a>. The computations were performed using our newly released <a href="http://scalgo.com/solutions/product-hydrology.php">SCALGO Hydrology</a> and <a href="http://scalgo.com/solutions/product-simplify.php">SCALGO Simplify</a> packages.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2011/06/play-with-global-flood-maps-new-scalgo-website-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Floating Point Puzzle of the Day (C++)</title>
		<link>http://moelhave.dk/2010/11/floating-point-puzzle-of-the-day-c/</link>
		<comments>http://moelhave.dk/2010/11/floating-point-puzzle-of-the-day-c/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 16:14:16 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=550</guid>
		<description><![CDATA[Here a small puzzle for those of you who have nothing better to do: Let &#8220;x&#8221; be a float. Can the following assert fire? (assert is the standard macro from cassert). { float y=x; assert(x==y); } If yes, how? If no, why not?]]></description>
				<content:encoded><![CDATA[<p>Here a small puzzle for those of you who have nothing better to do:</p>
<p>Let &#8220;x&#8221; be a float.</p>
<p>Can the following assert fire? (assert is the standard macro from cassert).</p>
<p>{ float y=x; assert(x==y); }</p>
<p>If yes, how?</p>
<p>If no, why not?</p>
<pre></pre>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2010/11/floating-point-puzzle-of-the-day-c/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Danish Meatballs (Frikadeller)</title>
		<link>http://moelhave.dk/2010/11/danish-meatballs-frikadeller/</link>
		<comments>http://moelhave.dk/2010/11/danish-meatballs-frikadeller/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 16:14:15 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[Danish]]></category>
		<category><![CDATA[frikadeller]]></category>
		<category><![CDATA[meatballs]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=548</guid>
		<description><![CDATA[I&#8217;ve made Danish Meatballs (also known as &#8220;Frikadeller&#8221;) a couple of times since I moved to North Carolina, and I have recived a couple of requests for the recipe. I figured I&#8217;d put it up here to help spread the gospel of &#8220;fine&#8221; Danish cuisine in America. This recipe is based on the recipe found here (in Danish). [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_554" class="wp-caption alignright" style="width: 310px"><a href="http://moelhave.dk/blog/wp-content/uploads/2010/11/frikadeller.jpg"><img class="size-medium wp-image-554" title="Danish Meatballs (Frikadeller)" src="http://moelhave.dk/blog/wp-content/uploads/2010/11/frikadeller-300x224.jpg" alt="Danish Meatballs (Frikadeller)" width="300" height="224" /></a><p class="wp-caption-text">Danish Meatballs (Frikadeller)</p></div>
<p>I&#8217;ve made Danish Meatballs (also known as &#8220;Frikadeller&#8221;) a couple of times since I moved to North Carolina, and I have recived a couple of requests for the recipe. I figured I&#8217;d put it up here to help spread the gospel of &#8220;fine&#8221; Danish cuisine in America. This recipe is based on the recipe found <a href="http://www.dk-kogebogen.dk/visopskrift.php?id=7644">here</a> (in Danish).</p>
<h2>Ingredients</h2>
<p><strong>
<table id="tablepress-2" class="tablepress tablepress-id-2">
<thead>
<tr class="row-1 odd">
	<th class="column-1"><div>Metric</div></th><th class="column-2"><div>Imperial</div></th><th class="column-3"><div>Item</div></th>
</tr>
</thead>
<tbody>
<tr class="row-2 even">
	<td class="column-1">500g</td><td class="column-2">1.1lb</td><td class="column-3">Ground Pork</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">1.5tsp</td><td class="column-2">1.5tsp</td><td class="column-3">Coarse Salt</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">80g</td><td class="column-2">0.64 cup</td><td class="column-3">Wheat Flour</td>
</tr>
<tr class="row-5 odd">
	<td class="column-1">1</td><td class="column-2">1</td><td class="column-3">Egg</td>
</tr>
<tr class="row-6 even">
	<td class="column-1">200g</td><td class="column-2">0.44 lb (~1 onion)</td><td class="column-3">Yellow Onion</td>
</tr>
<tr class="row-7 odd">
	<td class="column-1">1.5dl</td><td class="column-2">5 fl. oz</td><td class="column-3">Skim Milk</td>
</tr>
<tr class="row-8 even">
	<td class="column-1">0.25 tsp</td><td class="column-2">0.25 tsp</td><td class="column-3">Pepper </td>
</tr>
</tbody>
</table>
<!-- #tablepress-2 from cache --></strong></p>
<h2>Step-by-step Instructions</h2>
<ol>
<li>Mix the pork with the salt and let it sit for a couple of minutes. This will improve the meat&#8217;s ability to absorb the milk.</li>
<li>Grate the onion.</li>
<li>Mix all the ingredients and stir thoroughly. Hold back some of the milk and flour, this can be used to tweak the consistency of the mix. If you use fatty or recently defrosted meat you should probably use a little less milk.</li>
<li>Heat a skillet over medium heat, and use plenty of oil or butter. Use a teaspoon or a tablespoon (depending on the size you want) to form the meatballs in the palm of your hand, and put them on the pan in a circular pattern (so you can remember which order you put them down). They will need a few minutes on each side, depending on their size.</li>
</ol>
<p><span style="font-size: medium;"> </span></p>
<div class="mceTemp" style="line-height: 24px;">
<dl id="attachment_558" class="wp-caption  alignleft" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://moelhave.dk/blog/wp-content/uploads/2010/11/frikadeller1.jpg"><img class="size-medium wp-image-558" title="Cooking Danish Meatballs" src="http://moelhave.dk/blog/wp-content/uploads/2010/11/frikadeller1-300x199.jpg" alt="Cooking Danish Meatballs" width="300" height="199" /></a></dt>
<dd class="wp-caption-dd">Cooking Danish Meatballs</dd>
</dl>
</div>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2010/11/danish-meatballs-frikadeller/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Stack Overflow for Theoretical Computer Science?</title>
		<link>http://moelhave.dk/2010/06/stack-overflow-for-theoretical-computer-science/</link>
		<comments>http://moelhave.dk/2010/06/stack-overflow-for-theoretical-computer-science/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:20:40 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[cs]]></category>
		<category><![CDATA[mathoverflow]]></category>
		<category><![CDATA[stackoverflow]]></category>
		<category><![CDATA[theory]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=545</guid>
		<description><![CDATA[Suresh is calling for people to commit to a new discussion site for theoretical computer scientists.  Sounds like fun!]]></description>
				<content:encoded><![CDATA[<p><a href="http://geomblog.blogspot.com/2010/06/theorycs-discussion-site-call-for-help.html">Suresh is calling</a> for people to commit to a <a href="http://area51.stackexchange.com/proposals/8766?phase=commitment&amp;committers=userreputation#tab-top">new discussion site</a> for theoretical computer scientists.  Sounds like fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2010/06/stack-overflow-for-theoretical-computer-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MADALGO Summer School on GEOMETRIC DATA STRUCTURES</title>
		<link>http://moelhave.dk/2010/05/madalgo-summer-school-on-geometric-data-structures/</link>
		<comments>http://moelhave.dk/2010/05/madalgo-summer-school-on-geometric-data-structures/#comments</comments>
		<pubDate>Thu, 20 May 2010 19:49:05 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=538</guid>
		<description><![CDATA[From MADALGO comes word of a summer school on geometric data structures, looks like fun! Here is the official announcement: MADALGO Summer School on GEOMETRIC DATA STRUCTURES August 16-19, 2010, Aarhus, Denmark www.madalgo.au.dk/datastructures2010 OVERVIEW AND GOAL Geometric data structures are methods of efficiently storing and querying data in two or more dimensions. Working with geometric [...]]]></description>
				<content:encoded><![CDATA[<p>From MADALGO comes word of a summer school on geometric data structures, looks like fun!</p>
<p>Here is the official announcement:</p>
<h3>MADALGO Summer School on GEOMETRIC DATA STRUCTURES</h3>
<p>August 16-19, 2010, Aarhus, Denmark</p>
<p><a href="http://www.madalgo.au.dk/datastructures2010"> www.madalgo.au.dk/datastructures2010</a></p>
<h4>OVERVIEW AND GOAL</h4>
<p>Geometric data structures are methods of efficiently storing and querying data in two or more dimensions. Working with geometric data often requires the use of specialized and fundamentally geometric techniques. The goal of the summer school is to provide an in-depth introduction to some of the key techniques in geometric data structures, while highlighting a number of open problems.</p>
<h4>LECTURES</h4>
<p>The school will be taught by experts in the area of geometric data structures:</p>
<ul>
<li>Timothy Chan (University of Waterloo)</li>
<li>Sariel Har-Paled (University of Illinois at Urbana-Champaign)</li>
<li>John Iacono (Polytechnic Institute of New York University)</li>
<li>Mihai Patrascu (AT&amp;T)</li>
</ul>
<h4>PARTICIPATION</h4>
<p>The summer school will take place on August 16-19, 2010 at Center for Massive Data Algorithmics (MADALGO) in the Department of Computer Science, University of Aarhus, Denmark.</p>
<p>The school is targeted at graduate students, as well as researchers interested in an in-depth introduction to geometric data structures.</p>
<p>The capacity of the summer school is limited. Prospective participants should register using the online registration form available at www.madalgo.au.dk/datastructures2010 as soon as possible. Registering graduate students must also have their supervisor send a letter confirming their graduate student status directly to madalgo@madalgo.au.dk; the subject line of the email should be &#8216;student_last_name/SS_2010/confirming&#8217;. Registration is on a first-come-first-serve basis and will close on July 1, 2010.</p>
<p>Registration is free; handouts, coffee breaks, lunches and a dinner will be provided by MADALGO and the Aarhus University.</p>
<h4>ORGANIZING COMMITTEE</h4>
<ul>
<li>Lars Arge (MADALGO)</li>
<li>Gerth S. Brodal (MADALGO)</li>
<li>John Iacono (Polytechnic Institute of New York University)</li>
<li>Else Magård (MADALGO)</li>
<li>Sara Ølholm (Aarhus University)</li>
</ul>
<h4>ABOUT MADALGO</h4>
<p>Center for MAssive Data ALGOrithmics is a major basic research center funded by the Danish National Research Foundation. The center is located at the Department of Computer Science, University of Aarhus, Denmark, but also includes researchers at CSAIL, Massachusetts Institute of Technology in the US, and at the Max Planck Institute for Informatics and at Frankfurt University in Germany. The center covers all areas of the design, analysis and implementation of algorithms and data structures for processing massive data (interpreted broadly to cover computations where data is large compared to the computational resources), but with a main focus on I/O-efficient, cache-oblivious and data stream algorithms.</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2010/05/madalgo-summer-school-on-geometric-data-structures/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interdisciplinary Geospatial Informatics Post Doc position at MADALGO</title>
		<link>http://moelhave.dk/2010/04/interdisciplinary-geospatial-informatics-post-doc-position-at-madalgo/</link>
		<comments>http://moelhave.dk/2010/04/interdisciplinary-geospatial-informatics-post-doc-position-at-madalgo/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:42:06 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[postdoc]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=533</guid>
		<description><![CDATA[Via Lars Arge, information about an interesting post doc opportunity at MADALGO: An interdisciplinary Post Doc position is available at Aarhus University, Denmark, starting August 2010 or later. The responsibilities of the Post Doc will include work on geospatial problems on the boundary between computer science and biology, more specifically between algorithms and ecology/biodiversity. Modest [...]]]></description>
				<content:encoded><![CDATA[<p>Via Lars Arge, information about an interesting post doc opportunity at MADALGO:</p>
<blockquote><p>An interdisciplinary Post Doc position is available at Aarhus<br />
University, Denmark, starting August 2010 or later. The responsibilities<br />
of the Post Doc will include work on geospatial problems on the boundary<br />
between computer science and biology, more specifically between<br />
algorithms and ecology/biodiversity. Modest teaching responsibilities<br />
may also be required. The Post Doc will be affiliated with the Danish<br />
National Research Foundation Center MADALGO (Center for Massive Data<br />
Algorithmics &#8211; <a href="http://www.madalgo.au.dk/" target="_blank">www.madalgo.au.dk</a>) under the supervision of computer<br />
science Professor Lars Arge (<a href="http://person.au.dk/en/large@cs" target="_blank">person.au.dk/en/large@cs</a>), but will also<br />
work extensively with researchers in the Ecoinfomatics &amp; Biodiversity<br />
group at the Department of Biological Sciences under the supervision of<br />
Professor Jens-Christian Svenning (<a href="http://person.au.dk/en/svenning@biology" target="_blank">person.au.dk/en/svenning@biology</a>).<br/><br />
The Post Doc should focus on problems in relation to computationally<br />
efficient use of modern detailed (and thus massive) topographic data in<br />
various global-change-relevant modeling applications. These problems<br />
include the computation of fine-resolution topography-derived variables<br />
on a global scale, as well as local- and global-scale flooding scenario<br />
modeling and impact assessment.<br/><br />
Applications are welcomed from computer science researchers with clearly<br />
demonstrated skills in the design, analysis and implementation of<br />
algorithms (preferably also with I/O-efficient algorithms), as well as<br />
from geoinformatics or biology researchers with clearly demonstrated<br />
skills in ecoinformatics, GIS, and programming. Researchers with<br />
interdisciplinary research experience will be preferred. Applicants<br />
should apply by uploading a letter of interest and a CV, as well as<br />
indicate at least two names of references for recommendations, using the<br />
application form available at <a href="http://www.madalgo.au.dk/" target="_blank">www.madalgo.au.dk</a>. To be assured of full<br />
consideration, applications must arrive by May 17, 2010. Applications<br />
will be considered until the position is filled.<br/><br />
For further information contact Professor Lars Arge at<br />
<a href="mailto:large@madalgo.au.dk" target="_blank">large@madalgo.au.dk</a> or Professor Jens-Christian Svenning at<br />
<a href="mailto:svenning@biology.au.dk" target="_blank">svenning@biology.au.dk</a>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2010/04/interdisciplinary-geospatial-informatics-post-doc-position-at-madalgo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tethering the Motorola DROID Android phone on Linux (Ubuntu Karmic)</title>
		<link>http://moelhave.dk/2009/12/tethering-the-motorola-droid-android-phone-on-linux/</link>
		<comments>http://moelhave.dk/2009/12/tethering-the-motorola-droid-android-phone-on-linux/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 23:00:05 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[droid]]></category>
		<category><![CDATA[karmic]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[motorola droid]]></category>
		<category><![CDATA[tether]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=519</guid>
		<description><![CDATA[Tethering lets you to use the 3G connection on your  Android-based cell phone to browse the internet from your laptop.  Some phones come with tethering applications build int, but on other phones tethering is not possible &#8211; or you have to jump through a lot of hoops to enable it. The nice new Motorola DROID [...]]]></description>
				<content:encoded><![CDATA[<p><em>Tethering</em> lets you to use the 3G connection on your  Android-based cell phone to browse the internet from your laptop.  Some phones come with tethering applications build int, but on other phones tethering is not possible &#8211; or you have to jump through a lot of hoops to enable it.</p>
<p>The nice new Motorola DROID phone does not have a tethering ability by standard (all-though a Verizon representative told that Verizon will be coming out with something at some point) but it is still possible to tether it using the<a href="http://code.google.com/p/proxoid/"> Proxoid</a> application. Unlike other approaches, you do not have to root your phone.</p>
<p>A detailed installation guide is available <a href="http://code.google.com/p/proxoid/wiki/installationLinux">here</a>. To use this guide with the Motorola DROID phone you should put the following line in <em>/etc/udev/rules.d/11-android.rules</em>:</p>
<pre>SUBSYSTEMS=="usb", SYSFS{idVendor}=="22b8", SYSFS{idProduct}=="41db", MODE="0666", OWNER="USERNAME"</pre>
<p>If you&#8217;re on Ubuntu Karmic Koala 9.10 you should restart <em>udev</em> using the following command:</p>
<pre>sudo service udev restart</pre>
<p>When trying to connect to the android phone you mave have to run</p>
<pre>sudo ./adb kill-server</pre>
<pre>sudo ./adb start-server</pre>
<p>Before you can see the device (this happens if the server was already started when you changed the udev rules). This works on Ubuntu Karmic Koala.</p>
<p>Be aware that tethering may not be allowed by your service provider, you should read your contract to find out.</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2009/12/tethering-the-motorola-droid-android-phone-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NVIDIA CUDA on Ubuntu Karmic Koala and GCC 4.4</title>
		<link>http://moelhave.dk/2009/12/nvidia-cuda-on-ubuntu-karmic-koala/</link>
		<comments>http://moelhave.dk/2009/12/nvidia-cuda-on-ubuntu-karmic-koala/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 20:34:23 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://moelhave.dk/?p=503</guid>
		<description><![CDATA[NVIDIA&#8217;s currently released version of CUDA does not directly with Ubuntu 9.10 which uses GCC 4.4 as the default compiler. However, it is quite easy to make it work and the following guide goes through the entire installation process in some detail. I use the 64bit version of CUDA, go here to get it: http://www.nvidia.com/object/cuda_get.html [...]]]></description>
				<content:encoded><![CDATA[<p>NVIDIA&#8217;s currently released version of CUDA does not directly with Ubuntu 9.10 which uses GCC 4.4 as the default compiler. However, it is quite easy to make it work and the following guide goes through the entire installation process in some detail.</p>
<p>I use the 64bit version of CUDA, go here to get it:<br />
<a href="http://www.nvidia.com/object/cuda_get.html">http://www.nvidia.com/object/cuda_get.html</a><br />
(I selected <strong>Linux 64 bit</strong> and  <strong>Ubuntu 9.04</strong> .)</p>
<p>This lets you download the CUDA Drivers, the CUDA Toolkit and the CUDA SDK, and you will end up with three files:</p>
<pre>cudadriver_2.3_linux_64_190.18.run</pre>
<pre>cudatoolkit_2.3_linux_64_ubuntu9.04.run</pre>
<pre>cudasdk_2.3_linux.run</pre>
<h2>Installing the NVIDIA driver:</h2>
<p>Cuda needs at least version 190 of the linux driver</p>
<h3>1.</h3>
<p>Uninstall existing NVIDIA drivers and nvidia-glx. (Use gui or aptitude).</p>
<h3>2.</h3>
<p>Install driver:</p>
<p>Quit x (log out of your desktop, go to a virtual terminal (CTRL+ALT+F1), login, run</p>
<pre>$ sudo service gdm stop</pre>
<h3>3.</h3>
<p>Run</p>
<pre>$ sudo cudadriver_2.3_linux_64_190.18.run</pre>
<p>to install the driver, follow the prompts.<br />
Say yes to install 32 bit compatibility libraries.<br />
If you want you can let the installer overwrite the Xorg configuration file.</p>
<h3>4.</h3>
<p>Reboot and log back in.</p>
<h3>5.</h3>
<p>Run</p>
<pre> $ nvidia-settings</pre>
<p>to verify that your driver version is at least 190.18. Look for the driver version in the window:</p>
<h3><a href="http://moelhave.dk/blog/wp-content/uploads/2009/12/NewDriver.png"><img class="size-full wp-image-505 alignnone" title="The 190.xx NVIDIA Driver for use with CUDA." src="http://moelhave.dk/blog/wp-content/uploads/2009/12/NewDriver.png" alt="The 190.xx NVIDIA Driver for use with CUDA." width="210" height="152" /></a></h3>
<h2>Installing the CUDA Toolkit:</h2>
<p>After having installed the driver we now need to install the CUDA toolkit itself.</p>
<h3>1.</h3>
<p>Run:</p>
<pre>$ sudo sh cudatoolkit_2.3_linux_64_ubuntu9.04.run</pre>
<h3>2.</h3>
<p>Press enter to install at the</p>
<pre>/usr/local/cuda</pre>
<p>default location.</p>
<h3>3.</h3>
<p>Register the new library files, run:</p>
<pre>$ sudo gedit /etc/ld.so.conf.d/cuda.conf</pre>
<p>and add</p>
<pre>/usr/local/cuda/lib64</pre>
<p>to the otherwise empty file and save it. Then run:</p>
<pre>$ sudo ldconfig</pre>
<p>You can also add</p>
<pre>export PATH=/usr/local/cuda/bin:$PATH</pre>
<pre>export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH</pre>
<p>to the end of your ~/.bashrc file.</p>
<p>(You should then login and out again of start a new bash with</p>
<pre>bash --</pre>
<p>to update your environment.</p>
<h2>Installing the CUDA SDK and Compiling the Example Programs</h2>
<p>We will now install the CUDA SDK to your own home directory so you can play with the supplied demos:</p>
<h3>1.</h3>
<p>Run:</p>
<pre>$ sh cudasdk_2.3_linux.run</pre>
<p>I chose to install it at the default location.</p>
<h3>2.</h3>
<p>As CUDA does not yet work with GCC 4.4 you will have to  install gcc-4.3:</p>
<pre>$ sudo aptitude install gcc-4.3 g++-4.3</pre>
<h3>3.</h3>
<p>Go to SDK source dir:</p>
<pre>cd ~/NVIDIA_GPU_Computing_SDK/C$</pre>
<h3>4.</h3>
<p>Create a directory and create symlinks to gcc-4.3/g++-4.3</p>
<pre>$ mkdir mygcc</pre>
<pre>$ cd mygcc</pre>
<pre>$ ln -s $(which g++-4.3) g++</pre>
<pre>$ ln -s $(which gcc-4.3) gcc</pre>
<pre>$ cd ..</pre>
<h3>5.</h3>
<p>Edit common makefile:</p>
<pre>$ gedit common/common.mk</pre>
<p>Find the lines that specify <strong>CC</strong>, <strong>CXX</strong> and <strong>LINK</strong> and change them to:</p>
<pre>CXX        := g++-4.3</pre>
<pre>CC         := gcc-4.3</pre>
<pre>LINK       := g++-4.3 -fPIC</pre>
<p>Add</p>
<pre>#use gcc-4.3</pre>
<pre>NVCCFLAGS+=--compiler-bindir=${HOME}/NVIDIA_GPU_Computing_SDK/C/mygcc</pre>
<p>Before the line that says <strong>&#8220;ifeq ($(nvcc_warn_verbose),1)&#8221;</strong>. This tells the nvcc computer that it should look in <em>mygcc</em> for gcc, which will cause it to pickup our gcc-4.3 compiler.</p>
<h3>6.</h3>
<p>You should now be able to compile everything by running</p>
<pre>$ make</pre>
<p>This should now compile all the examples in the SDK without errors.</p>
<h2>Verify Installation</h2>
<p>We can now verify that everything is working:</p>
<h3>1.</h3>
<p>Run:</p>
<pre>$ bin/linux/release/deviceQuery</pre>
<p>On my machine I get the following output (depending on your harware, you ourput may be different):</p>
<pre>CUDA Device Query (Runtime API) version (CUDART static linking)</pre>
<pre>There is 1 device supporting CUDA</pre>
<pre>Device 0: "GeForce 8800 Ultra"
CUDA Driver Version:                           2.30
CUDA Runtime Version:                          2.30
CUDA Capability Major revision number:         1
CUDA Capability Minor revision number:         0
Total amount of global memory:                 804585472 bytes
Number of multiprocessors:                     16
Number of cores:                               128
Total amount of constant memory:               65536 bytes
Total amount of shared memory per block:       16384 bytes
Total number of registers available per block: 8192
Warp size:                                     32
Maximum number of threads per block:           512
Maximum sizes of each dimension of a block:    512 x 512 x 64
Maximum sizes of each dimension of a grid:     65535 x 65535 x 1
Maximum memory pitch:                          262144 bytes
Texture alignment:                             256 bytes
Clock rate:                                    1.51 GHz
Concurrent copy and execution:                 No
Run time limit on kernels:                     Yes
Integrated:                                    No
Support host page-locked memory mapping:       No
Compute mode:                                  Default (multiple host threads can use this device simultaneously)</pre>
<pre>Test PASSED</pre>
<pre>Press ENTER to exit...</pre>
<p>You should now be good to go. Here&#8217;s an screenshot of the volumeRender demo:</p>
<pre>$ bin/linux/release/volumeRender
<a href="http://moelhave.dk/blog/wp-content/uploads/2009/12/CudaWorking.png"><img class="alignnone size-full wp-image-511" title="The volumeRender applicatin from the CUDA SDK." src="http://moelhave.dk/blog/wp-content/uploads/2009/12/CudaWorking.png" alt="The volumeRender applicatin from the CUDA SDK." width="200" height="210" /></a></pre>
<p>Remember to use gcc-4.3/g++-4.3 and the &#8211;compiler-bindir option to nvcc when compiling your own CUDA source.</p>
]]></content:encoded>
			<wfw:commentRss>http://moelhave.dk/2009/12/nvidia-cuda-on-ubuntu-karmic-koala/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>
