<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Philipp Küng]]></title>
  <link href="http://philippkueng.ch/atom.xml" rel="self"/>
  <link href="http://philippkueng.ch/"/>
  <updated>2012-02-02T19:17:28+01:00</updated>
  <id>http://philippkueng.ch/</id>
  <author>
    <name><![CDATA[Philipp Küng]]></name>
    <email><![CDATA[hi@philippkueng.ch]]></email>
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Structured Procrastination]]></title>
    
      <link href="http://www.structuredprocrastination.com/">Structured Procrastination →</link>
    
    <updated>2012-02-02T18:29:00+01:00</updated>
    <id>http://philippkueng.ch/structured-procrastination</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/structured-procrastination.html">∞</a><br/><p>John Perry:</p>

<blockquote><p>One needs to be able to recognize and commit oneself to tasks with inflated importance and unreal deadlines, while making oneself feel that they are important and urgent.</p></blockquote>

<p>Being a heavy procrastinator myself I agree with <a href="http://www-csli.stanford.edu/~jperry//index.html">John Perry</a> but I&#8217;d like to extend one point. While some work can be encouraging even slightly more can have devastating effects. From my personal experience a task overflow can turn everything into white noise at which stage you&#8217;re not caring about any of it anymore.</p>

<p>Positive side effect, you&#8217;re able to work off those items quite relaxed. On the other side you might also over-commit to incoming work because estimating white noise is kind of difficult.</p>

<p>On another note, have a look at the awesome copy in the article footer. Brutally honest.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[OpenData.ch - Switzerland's OpenData Association]]></title>
    
      <link href="http://opendata.ch/2012/01/verein-opendata-ch-offiziell-gegrundet-manifest-und-agenda-2012/">OpenData.ch - Switzerland&#8217;s OpenData Association →</link>
    
    <updated>2012-01-20T11:13:00+01:00</updated>
    <id>http://philippkueng.ch/opendata-dot-ch-switzerlands-opendata-association</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/opendata-dot-ch-switzerlands-opendata-association.html">∞</a><br/><p>Yesterday, on january 19th, Swiss OpenData enthusiasts and activists have <a href="http://opendata.ch/2012/01/verein-opendata-ch-offiziell-gegrundet-manifest-und-agenda-2012/">founded the OpenData.ch Association in Bern</a>. It&#8217;s goal is to bring together citizens, journalists, designers and developers to realize ideas based on publicly available <a href="http://en.wikipedia.org/wiki/Opendata">OpenData</a> and OpenGovernmentData.</p>

<p>More about the goals and mindset of OpenData.ch can be found in the <a href="http://opendata.ch/wp-content/uploads/2011/06/OGD-Manifest-Schweiz-1.0.pdf">German-Only - Open Government Data for Switzerland Manifesto</a>.</p>

<p>If you&#8217;re up to create something with OD, whether your a developer or not, reserve march 30th and 31st when the next <a href="http://www.makeopendata.ch/">Make.opendata.ch-Hackathon</a> will be held. Need, some inspiration of what the first one was like? Checkout the <a href="http://datavisualization.ch/events/review-of-switzerlands-first-open-data-camp/">great summary by datavisualization.ch</a> or read <a href="http://philippkueng.ch/makeopendatach-2011.html">my hackathon review</a>.</p>

<p>Thrilled to start this new chapter with an amazingly diversified group of people.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Recovering From a Computer Science Education]]></title>
    
      <link href="http://prog21.dadgum.com/123.html">Recovering From a Computer Science Education →</link>
    
    <updated>2012-01-17T07:38:00+01:00</updated>
    <id>http://philippkueng.ch/recovering-from-a-computer-science-education</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/recovering-from-a-computer-science-education.html">∞</a><br/><p>James Hague:</p>

<blockquote><p><strong>Be widely read.</strong> There are endless books about architecture, books by naturalists, both classic and popular modern novels, and most of them have absolutely nothing to do with computers or programming or science fiction.</p></blockquote>

<p>Seems funny now, but had the most difficult time to let go of all those other things when started studying. No more philosophy or politics just algorithm runtimes and graph theory.</p>

<p>via the <a href="http://www.codeproject.com/">codeproject newsletter</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Why do most programmers work so hard at pretending that they’re not doing math?]]></title>
    
      <link href="http://richardminerich.com/2012/01/why-do-most-programmers-work-so-hard-at-pretending-that-theyre-not-doing-math/">Why do most programmers work so hard at pretending that they’re not doing math? →</link>
    
    <updated>2012-01-16T13:32:00+01:00</updated>
    <id>http://philippkueng.ch/why-do-most-programmers-work-so-hard-at-pretending-that-theyre-not-doing-math</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/why-do-most-programmers-work-so-hard-at-pretending-that-theyre-not-doing-math.html">∞</a><br/><p>Richard Minerich:</p>

<blockquote><p>We work in an environment where hearsay and taste drive change instead of studies and models.</p></blockquote>

<p>While VCs and influencers encourage us to jump on the emotional UX and viral social-network train to make our ideas succeed, we tend to not consult our logs first. After all, tapping in the dark is not science, but that&#8217;s sort of another topic.</p>

<p>Richard Minerich writes about the shift in programming languages away from proven ones to scripting languages. I tend to agree that dynamic languages should mainly be used as glue. Building a house out of porous cardboard could work if you&#8217;re an experienced professional, but it&#8217;ll probably fail for most of us. That said most of my code to date is dynamically typed because it&#8217;s just way to comfortable.</p>

<p>However there&#8217;s no test that&#8217;ll cover every single error case on the other side there always will be static and correct formulas.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Freemium - please leave]]></title>
    
      <link href="http://philippkueng.ch/freemium-please-leave.html"/>
    
    <updated>2012-01-15T16:46:00+01:00</updated>
    <id>http://philippkueng.ch/freemium-please-leave</id>
    <content type="html"><![CDATA[<p>Last december Maciej Ceglowski, founder of pinboard has written a <a href="http://blog.pinboard.in/2011/12/don_t_be_a_free_user/">post</a> about the fact that all great services which don&#8217;t charge are very likely going to disappear in the long run.</p>

<p>Maciej Ceglowski:</p>

<blockquote><p>I love free software and could not have built my site without it. But free web services are not like free software.</p></blockquote>

<p>The reason I&#8217;m writing this is that while premium services are making money they&#8217;re not necessarily attracting enough users to actually accomplish something while at the same time, free, VC-backed startups are doing exactly that. The middle way is to design a so called freemium service where premium users have to pay for free ones, but they&#8217;re obviously not going to tell them that.</p>

<p>Now after having <a href="http://philippkueng.ch/migrate-from-blogengine-dot-net-to-jekyll.html">migrated this blog over to a static version</a> I needed a replacement to enable visitors to send me e-mail while at the same time not opening the doors for spammers. PHP scripts can easily fulfill that job but I want something else.</p>

<p>While having used the <strong>free</strong> version of <a href="http://wufoo.com/">Wufoo</a> in the past I thought it&#8217;s a no brainer to go back and leverage it again. Obviously paying for it this time. Then it hit me while checking the <a href="http://wufoo.com/signup/">pricing page</a>. The cheapest subscription is 15 dollars per month, while free plans are displaying ads to your visitor. What are they thinking! Paying 15 dollars, which is more than I pay for hosting, while only receiving about two messages during that time period.</p>

<p>That said, please startups and SaaS companies, remove the free model and make premium reasonably priced.</p>

<p>As for Wufoo, i&#8217;d guess replacing the free plan with one where you&#8217;d pay 2 dollars a month would make them more profit than showing ads on those confirmation pages.</p>

<p>When talking about showing ads to free users checkout the <a href="https://twitter.com/romeroabelleira/status/157804033229340673">tweet</a> by @romeroabelleira and give it some thought (translated):</p>

<blockquote><p>Dear Advertisers on Spotify, I don&#8217;t even pay for Spotify, I&#8217;m therefore worth nothing to you too. Sorry, Juan</p></blockquote>

<p>And don&#8217;t waste your time looking for the contact form, I&#8217;d just put the e-mail address into the footer for now.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Nikon D4 - A step into the right direction]]></title>
    
      <link href="http://philippkueng.ch/nikon-d4-a-step-into-the-right-direction.html"/>
    
    <updated>2012-01-14T15:41:00+01:00</updated>
    <id>http://philippkueng.ch/nikon-d4-a-step-into-the-right-direction</id>
    <content type="html"><![CDATA[<p>Ten days back Nikon announced their new flagship model, the <a href="http://en.wikipedia.org/wiki/Nikon_D4">Nikon D4</a>. It&#8217;s clearly got a higher Megapixel value - as needed for marketing purposes. On the side it has gotten some long awaited features such as proper HD video recording with all the bells and whistles you&#8217;d expect. For more details listen to James Banfield below.</p>

<iframe src="http://player.vimeo.com/video/34720376?title=0&amp;byline=0&amp;portrait=0&amp;color=59a5d1" width="654" height="368" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>


<p><a href="http://vimeo.com/34720376">Dslrnewsshooter video: Nikon D4 - video feature run through</a> from <a href="http://vimeo.com/danchung">Dan Chung</a> on <a href="http://vimeo.com">Vimeo</a>.</p>


<p>The most innovative feature in my perspective however is the Ethernet connection and what comes with it, a camera management console completely built in HTML and JS so one&#8217;s finally able to leave all the proprietary, heavily bloated, vendor specific crap software behind and focus on realizing ideas.</p>

<iframe id="viddler-be28aab5" src="http://philippkueng.ch//www.viddler.com/embed/be28aab5/?f=1&offset=0&autoplay=0&disablebranding=0" width="654" height="419" frameborder="0"></iframe>


<p>Checkout the video <a href="http://vimeo.com/34666308">WHY</a> by <a href="http://www.coreyrich.com/">Corey Rich</a> below if you want to see what&#8217;s possible with a D4 presumed you know what you&#8217;re doing.</p>

<iframe src="http://player.vimeo.com/video/34666308" width="654" height="368" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>


<p><a href="http://vimeo.com/34666308">WHY - Nikon D4 Release Video</a> from <a href="http://vimeo.com/coreyrich">Corey Rich</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[My Worst Mistakes in Programming]]></title>
    
      <link href="http://pilif.github.com/2012/01/my-worst-mistakes/">My Worst Mistakes in Programming →</link>
    
    <updated>2012-01-13T17:03:00+01:00</updated>
    <id>http://philippkueng.ch/my-worst-mistakes-in-programming</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/my-worst-mistakes-in-programming.html">∞</a><br/><p>A great read if you&#8217;re working on the next big thing yourself, because you&#8217;ll might need a team to work on it later.</p>

<blockquote><p>Once you are no longer alone working on your project, the code you have written sets an example. - Philip Hofstetter</p></blockquote>

<p>Also, I think it&#8217;s totally fine to hack together an initial version, hackathon style, you can improve later on however the structure, needs to be reasonably stable.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Stop it and get real]]></title>
    
      <link href="http://the99percent.com/videos/7110/Tony-Schwartz-The-Myths-of-the-Overworked-Creative">Stop it and get real →</link>
    
    <updated>2012-01-12T23:47:00+01:00</updated>
    <id>http://philippkueng.ch/stop-it-and-get-real</id>
    <content type="html"><![CDATA[<a href="http://philippkueng.ch/stop-it-and-get-real.html">∞</a><br/><iframe src="http://player.vimeo.com/video/33018637?title=0&amp;byline=0&amp;portrait=0&amp;color=e91c6b" width="654" height="491" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>


<p>Right now I&#8217;ve already broken most of my New Years resolutions, I admit it. Why? - Well, I thought of me as a machine, meaning that I could easily deliver one hundred percent without an issue. In fact, that&#8217;s extremely unlikely to happen and I obviously knew that but I still made that promise with myself, you need to aim high right?. However, the impact it has by breaking resolutions or not reaching your goals makes you feel terrible or worse even makes you feel sorry for yourself. That&#8217;s why I recommend you watch this excellent talk by Tony Schwartz and start correcting your self expectations by stop wanting to prove yourself to others or yourself. It&#8217;s good to have goals but a weekly to do list has nothing to do with dreams just doable tasks.</p>

<p>via <a href="http://www.swiss-miss.com/2011/12/tony-schwartz-the-myths-of-the-overworked-creative.html">swiss-miss</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[A Link-Blog with Octopress]]></title>
    
      <link href="http://philippkueng.ch/a-link-blog-with-octopress.html"/>
    
    <updated>2012-01-11T21:20:00+01:00</updated>
    <id>http://philippkueng.ch/a-link-blog-with-octopress</id>
    <content type="html"><![CDATA[<p>During the last week well known bloggers have started turning off comments in a move to not having to care about sorting out SPAM and having more time for the actual writing. <a href="http://mattgemmell.com/">Matt Gemmell</a> has written an <a href="http://mattgemmell.com/2012/01/07/comments-commentary/">excellent summary</a> about this, for those of you interested.</p>

<p>While I&#8217;m not sure yet if I&#8217;ll ever do the same, I started wondering on how to realize something like a Link-Blog with Octopress. Turns out it&#8217;s pretty easy.</p>

<p>First modify the <code>article.html</code> inside source/_includes and exchange the lower <code>&lt;h1&gt;</code> part which is responsible for the page view title with an if-else clause.</p>

<figure class='code'><figcaption><span>article.html </span></figcaption>
 <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='html'><span class='line'><span class="nt">&lt;h1</span> <span class="na">class=</span><span class="s">&quot;entry-title&quot;</span><span class="nt">&gt;</span>
</span><span class='line'>  {% if page.ref_url %}
</span><span class='line'>    <span class="nt">&lt;a</span> <span class="na">class=</span><span class="s">&quot;reference&quot;</span> <span class="na">href=</span><span class="s">&quot;{{ page.ref_url }}&quot;</span><span class="nt">&gt;</span>{{ page.title }}<span class="nt">&lt;/a&gt;</span>
</span><span class='line'>  {% else %}
</span><span class='line'>    {% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}
</span><span class='line'>  {% endif %}
</span><span class='line'><span class="nt">&lt;/h1&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<p>Then continue with adding an if-else clause to the <code>atom.xml</code> file too. Extend the <code>&lt;link&gt;</code> element inside the parent <code>&lt;entry&gt;</code> with the code below. Done.</p>

<figure class='code'><figcaption><span>atom.xml </span></figcaption>
 <div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class='xml'><span class='line'>{% if post.ref_url %}
</span><span class='line'>  <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;{{ post.ref_url }}&quot;</span><span class="nt">/&gt;</span>
</span><span class='line'>{% else %}
</span><span class='line'>  <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;{{ site.url }}{{ post.url }}&quot;</span><span class="nt">/&gt;</span>
</span><span class='line'>{% endif %}
</span></code></pre></td></tr></table></div></figure>


<p>If you want to create a Link-Blog post now, add <code>ref_url</code> to the markdown file header and Octopress takes care of the rest.</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>---
</span><span class='line'>layout: post
</span><span class='line'>title: "This Awesome Article"
</span><span class='line'>date: 2012-01-13 21:20
</span><span class='line'>comments: true
</span><span class='line'>ref_url: http://somesite.com/thisawesomearticle.html
</span><span class='line'>---
</span><span class='line'>This one is really great, check it out.</span></code></pre></td></tr></table></div></figure>


<h2>Alternatives</h2>

<p>If <a href="https://github.com/mojombo/jekyll/">Jekyll</a> is too nerdy for you, then please checkout <a href="http://tumblr.com">tumblr</a> whose philosophy has been based on link-blogging for ages.</p>

<p>On the otherside if <a href="http://octopress.org/">Octopress</a> and therefore Ruby is still to cool for you to use then give the newly released <a href="https://github.com/marcoarment/secondcrack">Second Crack</a> by <a href="http://www.marco.org">Marco Arment</a> a try. It&#8217;s also baking your markdown files to flat html ones, but it&#8217;s written in PHP.</p>

<p>(Sidenote: PHP and I were never really friends)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Migrate from BlogEngine.NET to Jekyll]]></title>
    
      <link href="http://philippkueng.ch/migrate-from-blogengine-dot-net-to-jekyll.html"/>
    
    <updated>2012-01-10T17:35:00+01:00</updated>
    <id>http://philippkueng.ch/migrate-from-blogengine-dot-net-to-jekyll</id>
    <content type="html"><![CDATA[<p>This is the second part of steps you have to take in order to migrate smoothly over to <a href="https://github.com/mojombo/jekyll/">Jekyll</a>, <a href="http://octopress.org">Octopress</a> in my case, coming from <a href="http://dotnetblogengine.net/">BlogEngine</a> land. I&#8217;d recommend you first have a look at <a href="http://philippkueng.ch/migrate-the-blogenginenet-commenting-system-over-to-disqus.html">moving your comments to disqus</a>, before following this post.</p>

<h2>Getting the &#8220;old data&#8221;</h2>

<p>Log into your BlogEngine site and head over to <strong>Settings</strong> where you click on the <strong>Export</strong> button for BlogML. Now FTP or SSH into your server and get a complete dump of the App_Data/files folder onto your local machine.</p>

<h2>Setup Octopress</h2>

<p>Octopress? - Isn&#8217;t this tutorial for Jekyll? - you might ask. Well Octopress is built on top of Jekyll and brings some plugins and clever defaults to make your life easier. Start off by following the official <a href="http://octopress.org/docs/setup/">Octopress Setup tutorial</a>. If your working on an OS X machine you might want to consider installing <a href="http://pow.cx">POW</a> since it&#8217;s making it much easier to work with Jekyll locally. Once POW is installed open your Terminal and go to ~/.pow and create a symlink to the octopress-repo root.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nv">$ </span>ln -s /Users/yourUsername/Documents/octopress myapp
</span></code></pre></td></tr></table></div></figure>


<p>Now open <a href="http://myapp.dev">http://myapp.dev</a> in your browser to check if it&#8217;s working so far.</p>

<h2>Import the &#8220;old data&#8221;</h2>

<p>Create a folder <code>_import</code> inside the octopress/source directory and put the <a href="https://github.com/philippkueng/philippkueng.github.com/blob/source/source/_import/blogml.rb">blogml.rb</a> conversion file in there.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nv">$ </span><span class="nb">cd </span>octopress/source
</span><span class='line'><span class="nv">$ </span>mkdir _import
</span><span class='line'><span class="nv">$ </span><span class="nb">cd </span>_import
</span><span class='line'><span class="nv">$ </span>wget https://github.com/philippkueng/philippkueng.github.com/blob/source/source/_import/blogml.rb --no-check-certificate
</span></code></pre></td></tr></table></div></figure>


<p>This import script was actually created by @derekmorrison to assist him by <a href="http://doingthedishes.com/2011/04/14/moving-to-jekyll.html">Moving to Jekyll</a>. Since URLs have to be rewritten because of the .aspx extensions which are part of BlogEngine I slightly modified the script to additionally create an .htaccess file and to play nice with non-ASCII encoded post-titles.</p>

<p>Next, move the BlogML.xml file inside the source directory and also create two seperate folders called <code>files</code> and <code>images</code> inside source. Then copy the contents of the previously dumped App_Data/files folder to their respective folders (images or files) by keeping the path structure intact. Means, that App_Data/files/2010/2/file.zip will go to octopress/source/files/2010/2/file.zip.</p>

<p>Now to the fun part, open your Terminal and navigate inside your octopress/source directory. Then execute:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nv">$ </span>ruby -r <span class="s1">&#39;./_import/blogml.rb&#39;</span> -e <span class="s1">&#39;Jekyll::BlogML.process(&quot;BlogML.xml&quot;)&#39;</span>
</span></code></pre></td></tr></table></div></figure>


<p>This should have imported all your existing posts so that you can now generate your Jekyll blog from it by exiting the source directory and issuing the rake command.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="nv">$ </span><span class="nb">cd</span> ..
</span><span class='line'><span class="nv">$ </span>bundle <span class="nb">exec </span>rake generate
</span></code></pre></td></tr></table></div></figure>


<h2>Deploying</h2>

<p>There&#8217;s already documentation available on how to <a href="http://octopress.org/docs/deploying/">deploy Octopress to various hosting platforms</a>. Since you&#8217;re migrating from BlogEngine I highly recommend running your own VM or getting a shared hosting account with .htaccess support in order to not let your visitors down with feeding them broken links. Actually since Heroku is offering their polyglot Cedar-stack you should be able to run .htaccess on there too. YMMV</p>

<p>If your hosting provider is only offering FTP, then deploy manually by uploading the contents of the <code>public</code> folder and adding the <code>.htaccess</code> file from inside the source folder.</p>

<h2>Fixes</h2>

<p>We&#8217;re not quite done yet. Log into your <a href="http://www.google.com/webmasters/">Google</a> and <a href="http://www.bing.com/toolbox/webmaster/">Bing Webmaster</a> account and replace the sitemap.axd entry with sitemap.xml. The same goes for your <a href="http://feedburner.com/">Feedburner</a> account, log in and replace feeds.axd with atom.xml.</p>

<p>Finally fix the <a href="http://disqus.com/">disqus</a> comments. Log into their dashboard and select the account you want to migrate. Then click on the <strong>Tools</strong> tab and afterwards the <strong>Migrate Threads</strong> navigation entry. Hit the <strong>Start Crawling</strong> button for the Redirect Crawler Migration and your done.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Taking care of relationships is not outsourceable]]></title>
    
      <link href="http://philippkueng.ch/taking-care-of-relationships-is-not-outsourceable.html"/>
    
    <updated>2011-11-11T00:00:00+01:00</updated>
    <id>http://philippkueng.ch/taking-care-of-relationships-is-not-outsourceable</id>
    <content type="html"><![CDATA[<p>A few days ago a fellow blogger nearby, <a href="http://webwirksam.ch/geburtsanzeigen-tool-fur-weniger-stress--1341/">Sam Steiner, was giving away a startup idea</a>. The goal would be to develop a web platform where upcoming parents can write and design birth announcement letters which will then be sent out through the company as soon as the parents complete the information for example with a picture upload via their mobile. The sending for the inner circle will then be made by sending physical cards whereas the rest will receive a nicely formatted email or facebook wall entry.</p>

<p>After reading his idea I immediately responded via a comment that he should make it happen, after all aren&#8217;t those the successful startups that fullfill an itch that a founder has himself?</p>

<p>Throughout the rest of the day my brain was occupied by coming up with ways to turn this idea into reality, thinking about partners in the printing business who would send out the printed goods and maybe also pre-fill them. What might their pricing requirements look like? - after all their struggling themselves in the world of the internet. 
After the physical side was mentally figured out the question was how to build the website? - which technology stack to use? - hacking it together over a weekend? - with whom?</p>

<p>Later that day I told my father, a non computer savvy person, about that great idea I saw on the internet today. He was looking at me as if i was out of my mind. He totally disagreed and instead suggested that women, in the week prior to giving birth when being bored and at home, could potentially pre-write the letters so that the husband could then just print out the pictures stick them into the cards and then send them to friends and family.</p>

<p>After having the discussion with my father i think he&#8217;s totally right in terms of not outsourcing the bonding part with people you care about. It&#8217;s not about time you&#8217;d gain by using such a service it&#8217;s about openly investing yourself into the relationships to others by sending a handwritten card rather than wrapping your personal writing in an emotionenless off the shelf card with corporate branding on the back.</p>

<p>On a sidenote to all developers, I know it&#8217;s all too easy to get stuck in the optimization trap without knowing it. We tackle the market analysis with the identical mindset as writing revision one of the service. The approach might work in an emotionless business area but is certainly not suited at all for private relationships. As a hint, talking to people with different backgrounds helps enormously.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[MAKE.OpenData.ch 2011]]></title>
    
      <link href="http://philippkueng.ch/makeopendatach-2011.html"/>
    
    <updated>2011-10-23T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/makeopendatach-2011</id>
    <content type="html"><![CDATA[<p><a href="http://www.flickr.com/photos/agentcmos/6203132361/" title="MakeOpenData Camp 2011 @ EPFL by Philipp Küng, on Flickr"><img src="http://farm7.static.flickr.com/6153/6203132361_a01dca40de_b.jpg" alt="MakeOpenData Camp 2011 @ EPFL"></a></p>

<p>In an effort to make the world a better place, hackers all around Switzerland joined this years make.opendata.ch hackathon in Zürich and Lausanne. The goal was to use publicly available data, so-called <strong>OpenData</strong> and visualize it in a meaningful way so everyone is able to make sense of it.</p>

<p>Despite of having a french language deficit - it was a dark chapter in grammar school - i travelled all the way to EPF Lausanne which was absolutely worth it.</p>

<p>After the kickoff <a href="http://twitter.com/#!/florin_iorganda">Florin</a>, <a href="http://twitter.com/#!/FredericJacobs">Frederic</a> and I immediately started working on a project to improve the routes suggestion of traditional mapping applications such as Google Maps and OpenStreetMap by providing a way to add obstacles to a map and then calculate a new obstacle-free route to help people on tight schedules arrive on time. While we knew that large companies are working on that we were still looking for a hack to finish something usable until the deadline the day after.</p>

<p><strong>The theoretical solution</strong> - The frontend would be a static website where the user can enter departure and destination location. This then would make an API call to the backend where the hacks are doing its&#8217; part.
The backend would consist of a webkit process running, controlled by PhantomJS. If a request gets issued PhantomJS loads Google Maps Directions with the start and end location, let the server-side webkit process render the page and then add all the obstacles via Lat/Long with a predefined icon which is easily distinguishable from the map itself. Next, PhantomJS creates a PNG-screenshot of the obstacles and route containing website. It starts the next process which parses the PNG pixel-by-pixel and looks if there is a blue line and an obstacle crossing. If so, make a circle of 300m radius around the obstacle and randomly add a Lat/Long coordinate, being part of the circle border, as a waypoint to the routes call of Google Maps. Then repeat the process above to check if the new route interferes with obstacles. If finally and obstacle-free route is found, return the details to the frontend.</p>

<p>During dinner, about three hours in, we came to the conclusion that it is just too much of a hack to spend valuable hacking time on, so we had to find something more suitable for the next day. Which we did in SwissMap.</p>

<p><a href="http://www.flickr.com/photos/agentcmos/6203706302/" title="MakeOpenData Camp 2011 @ EPFL by Philipp Küng, on Flickr"><img src="http://farm7.static.flickr.com/6153/6203706302_dbd6f92b8e_b.jpg" alt="MakeOpenData Camp 2011 @ EPFL"></a></p>

<p>Full of vim and vigor we then started on Saturday morning, Florin by collecting the interesting data from all over the <a href="http://www.bfs.admin.ch/">bfs website</a>, Frederic by merging and crunching the data into a format which is then processable via Javascript and I took care of the view and the comparing alogrithm. We aimed at building a web application where citizens and data-journalists can compare two different, unrelated datasets and visualize the outcome on a swiss heatmap. Luckily our very intense and focused hacking on day two was enough so that we were able to meet the presentation deadline in the afternoon. Epic Win.</p>

<p><img src="http://philippkueng.ch/images/2011/10/swissmap_screenshot.jpg" alt="SwissMap Screenshot" /></p>

<p>[ <a href="http://swissmap.bitfondue.com/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:swissmap">wiki</a>, <a href="http://github.com/philippkueng/swissmap">source</a> ]</p>

<p>I hereby thank the sponsors, hackers and especially the team behind the <a href="http://makeopendata.ch/">MAKE.OpenData project</a> Andreas, Hannes, Oleg, Antoine, François, Frederic and Jeremy very much for making the event possible and inspiring us.</p>

<p><strong>Amazing MAKE.OpenData projects others have built</strong></p>

<ul>
<li>green-street [ <a href="http://opendata.utou.ch/lausanne/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:green_street">wiki</a>, <a href="http://github.com/loleg/green-street">source</a> ]</li>
<li>gesagt-im-parlament.ch [ <a href="http://gesagt-im-parlament.ch/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:parlament">wiki</a>, <a href="http://github.com/gwrtheyrn/gesagt-im-parlament.ch">source</a> ]</li>
<li>politnetz visualization [ <a href="http://www.riaforweb.com/BTCPOLIT/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:politnetz">wiki</a> ]</li>
<li>Swiss Army Contaminated Sites [ <a href="http://lab.interactivethings.com/swiss-army-contaminated-sites/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:swiss_army_contaminated_sites">wiki</a> ]</li>
<li>Where Did My Taxes Go [ <a href="http://wheredidmytaxesgo.nelm.io/">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:wheredidmytaxesgo">wiki</a>, <a href="http://github.com/Seldaek/wheredidmytaxesgo">source</a> ]</li>
<li>openletten [ <a href="http://www.tamberg.org/makeopendata/2011/jquery.html">live</a>, <a href="http://makeopendata.ch/doku.php?id=project:openletten">wiki</a>, <a href="http://bitbucket.org/tamberg/makeopendata/overview">source</a> ]</li>
</ul>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Photoblog - SFO 2 YVR]]></title>
    
      <link href="http://philippkueng.ch/photoblog-sfo-2-yvr.html"/>
    
    <updated>2011-09-19T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/photoblog-sfo-2-yvr</id>
    <content type="html"><![CDATA[<a href="http://sfo2yvr.github.com"><img src="http://philippkueng.ch/images/2011/9/sfo2yvr-images.jpg" alt="" /></a>

<p>Travelling is supposed to be relaxing right? However there are many things you need to take care of for example writing postcards, sending SMSes to loved ones and keep notes of all the sites, actually this time RL ones, visited.</p>

<p>While I did exactely that for my last vacation in Canada, we were handling it differently this time.</p>

<p>During the <a href="http://sfo2yvr.github.com/2011/08/28/Flug-nach-San-Francisco.html">flight from Frankfurt to San Francisco</a> we came up with the photoblog called <a href="http://sfo2yvr.github.com">sfo2yvr</a>, which includes the airport code of SF and Vancouver in its&#8217; name, creative we know. It is based on Jekyll rather than Tumblr, which we actually wanted to use in the first place. However, we needed a platform to publish articles offline and did not want to rely on third party apps like MarsEdit, with <a href="http://git-scm.com">git</a> and <a href="http://pages.github.com">github pages</a> that is cake.</p>

<p>The idea was to update it once a day, however because US National Parks mostly do not yet offer Wifi, nor electricity or running water (rivers do not count), we sometimes only committed to the local repository and pushed to github when we were in a peopled area later.</p>

<p>This technique for blogging worked pretty well for us so far, however I am really curious what others, maybe you, have done in terms of solving the offline problem or finding the suitable picture for the day.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Agile Livin' - shipped]]></title>
    
      <link href="http://philippkueng.ch/agile-livin-shipped.html"/>
    
    <updated>2011-08-18T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/agile-livin-shipped</id>
    <content type="html"><![CDATA[<p><img src="http://philippkueng.ch/images/2011/8/agilelivin_theme_picture.jpg" alt="agilelivin theme picture" /></p>

<p>Changing habits is difficult. On December 31 you think that in 201x you will stop smoking, start eating healthier food or in my case plain and simple gain weight. (yes, I want to be a sumo wrestler) The only problem is that you are currently within your comfort zone and you are not taking immediate action. You are procastinating. I guess a lot of people, me included, never get out of it and already fail before having started. A tip, which might sound weird, but has worked for me so far, stop thinking about it and put yourself in a position where <a href="http://twitter.com/#!/Weegee/status/66756938066706432">&ldquo;The only way out is through.&rdquo; &mdash; Winston Churchill</a>.</p>

<p>Then secondly as with every habit you want to adapt, it needs to be included in your daily routine. That means if you can keep a daily routine up for about three weeks you are most certainly going to succeed with making it a habit.</p>

<p>About four weeks ago my friend <a href="http://zurcherart.com">Steve</a>, with whom I co-founded <a href="http://bitfondue.com">bitfondue</a>, sent out a <a href="http://twitter.com/#!/zurcherart/status/94798265387720704">tweet</a> which started a discussion between the two of us on how to simplify life by leveraging agile practices with the outcome that we agreed on producing a podcast about that. Still having the two points above in the back of our heads we skipped being procrastinating wusses and started being agile right away. We successfully recorded the first iteration, set up a <a href="http://github.com/agilelivin/agilelivin.github.com">blog</a> using <a href="http://github.com/mojombo/jekyll/">Jekyll</a> (we are nerds what do you expect? Wordpress.) and registered the <a href="http://agileliv.in">domain</a> within the first week after initiating the adventure.</p>

<p>Enough history, now to the meat, if you want to have 30 minutes of LOL I highly recommend listening to <a href="http://agileliv.in/2011/07/29/cluttering-the-internet.html">Iteration 1</a> otherwise give <a href="http://agileliv.in/2011/08/06/the-agile-manifesto.html">Iteration 2</a>  or <a href="http://agileliv.in/2011/08/14/the-priority-of-priorities.html">3</a> (the one below) a try. For more information, future iterations or comments head on over to <a href="http://agileliv.in">agilelivin</a>.</p>

<object height="81" width="100%"> <param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21189386&amp;show_comments=false&amp;auto_play=false&amp;color=0A71B2"></param> <param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21189386&amp;show_comments=false&amp;auto_play=false&amp;color=0A71B2" type="application/x-shockwave-flash" width="100%"></embed> </object>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Procrastination is so yesterday]]></title>
    
      <link href="http://philippkueng.ch/procrastination-is-so-yesterday.html"/>
    
    <updated>2011-07-25T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/procrastination-is-so-yesterday</id>
    <content type="html"><![CDATA[<p>After writing the last post about the <a href="http://philippkueng.ch/post/Blame-the-Lizard-Brain-But-do-it!.aspx">Lizard Brain</a> I gave myself another episode of <a href="http://5by5.tv/b2w">Back to Work</a> it was <a href="http://5by5.tv/b2w/4">episode number 4</a>, and in there, at the end, Marlin Mann talks about the way he is handling Task Lists which mysteriously worked extremely well for me too.</p>

<p>It works as folling, prior to adding a task to your list go mentally through it and notice every single subtask you need to achieve in order to check that item of your list. That way I accomplished 4 tasks which consumed about 2h of my time without really noticing it and that said those tasks were sitting on my list for 3 weeks already.</p>

<p>Next there is the second and last rule, do not dare to put tasks on your list you know upfront you are not going to do anyway. For me such a thing is sorting my photo library, I used to have an entry for sorting pictures taken while being in Canada (2008) on the list until very recently. By the way decluttering it regularly helps a lot too, believe me.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Blame the Lizard Brain. But do it!]]></title>
    
      <link href="http://philippkueng.ch/blame-the-lizard-brain-but-do-it%21.html"/>
    
    <updated>2011-07-24T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/blame-the-lizard-brain-but-do-it!</id>
    <content type="html"><![CDATA[<p>Today I was listening to <a href="http://5by5.tv/b2w">Back to Work</a> by Merlin Mann and Dan Benjamin while coding up the next Big Thing, at least that is what the Lizard Brain tells me. During the <a href="http://5by5.tv/b2w/1">episode</a> they were talking about excuses one might have for not shipping all those unfinished projects.</p>

<p>Among those things standing in the way of letting us succeed with our ambition is the so called Lizard Brain (<a href="http://en.wikipedia.org/wiki/Amygdala">Amygdala</a>). According to <a href="http://sethgodin.typepad.com">Seth Godin</a> it only cares about four things: food, reproduction, safety and of course itself.</p>

<iframe src="http://player.vimeo.com/video/5895898?title=0&amp;byline=0&amp;portrait=0&amp;color=e91c6b" width="655" height="491" frameborder="0"></iframe>

<p>So in order to satisfy the Amygdala one has to minimize risk which is not really arrangeable with having a startup or generally learning new things because leaving our comfort zone is always a part of making progress.</p>

<p>Like with every other unwanted behaviour applying the <a href="http://en.wikipedia.org/wiki/Classical_conditioning">principle of classical conditioning</a> to ourselves might do the trick. In order proove my theory of Lizard Brain-self-conditioning right or wrong I am planning to work with it during the next month, constantly placing myself in unknown or personal flight-situations. </p>

<p>As far as I know it takes about three weeks to get used to something, so the last week should then be pure productivity and joy without procrastination and anxiety. I will let you know if it worked out until then wish me luck. (for the last part, that was clearly the Amygdala speaking ;-)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Commit early and often]]></title>
    
      <link href="http://philippkueng.ch/commit-early-and-often.html"/>
    
    <updated>2011-07-21T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/commit-early-and-often</id>
    <content type="html"><![CDATA[<img src="http://philippkueng.ch/images/2011/7/commit_early_and_often.png" alt="" />
<p>Last night I had the task to fix a clients custom built website which I wrote quite a while ago on top of an early version of <a href="http://github.com/philippkueng/hammyoncoffeine">hammyoncoffeine</a>.</p>

<p>Nothing difficult you might think, in the end I should be familiar with it, additionally I was using Version Control which
were even better preconditions. So I thought.</p>

<p>Fact is, the date of the initial commit lies about half a year in the future from the date I actually needed.</p>

<p>Luckily I was playing quite a bit with Backup Tools at that time so going through the zip-archives on Wuala should bring the piece of code to daylight.</p>

<p>Sadly I only compressed ready-to-deploy pakets and yes they&#8217;re are already compiled. So much for that.</p>

<p>In the end I had to apply non-DRY ducktape patches to meet the deadline, nonetheless I learned a valuable lesson that night, <strong>commit early and often</strong> (even when working on seemingly unimportant files).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Deploy BlogEngine.NET on Ubuntu 10.04 LTS]]></title>
    
      <link href="http://philippkueng.ch/deploy-blogenginenet-on-ubuntu-1004-lts.html"/>
    
    <updated>2011-07-10T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/deploy-blogenginenet-on-ubuntu-1004-lts</id>
    <content type="html"><![CDATA[<p>Lately I&#8217;ve gotten several E-Mails a day from monitoring sites that look after my websites hosted on Genotec containing messages like &#8220;you&#8217;re site is down&#8221;.</p>

<p>So migrating to another hosting provider was the obvious way to go, however since there&#8217;s no other Shared-Hosting company in Switzerland, that I know of, offering .NET hosting I decided to go the Open Source route and run <a href="http://blogengine.codeplex.com/">BlogEngine</a> on Ubuntu.</p>

<p>While I wasn&#8217;t able so far to get the most recent release, version 2.5, to run on Ubuntu I simplified the installation process for doing so with release <a href="http://blogengine.codeplex.com/releases/view/39387">1.6.1</a> by writing a script so that everyone should be able to install it themselves.</p>

<p>Now to the installation process. Take a clean install of <a href="http://www.ubuntu.com/download/server/download">Ubuntu 10.04 LTS</a> either running in the cloud or virtualized on your local machine.</p>

<p>Then go through the steps below to execute the BlogEngine.NET installation script.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="c"># Login to your VM.</span>
</span><span class='line'><span class="nv">$ </span>ssh your_username@your_ip
</span><span class='line'>
</span><span class='line'><span class="c"># Gain root privileges.</span>
</span><span class='line'><span class="nv">$ </span>sudo su
</span><span class='line'>
</span><span class='line'><span class="c"># Go to the root home directory.</span>
</span><span class='line'><span class="nv">$ </span><span class="nb">cd</span>
</span><span class='line'>
</span><span class='line'><span class="c"># Download the BlogEngine.NET install script</span>
</span><span class='line'><span class="nv">$ </span>wget http://bit.ly/blogengine_install
</span><span class='line'>
</span><span class='line'><span class="c"># Set Execute-Permissions on the install file.</span>
</span><span class='line'><span class="nv">$ </span>chmod +x blogengine_install
</span><span class='line'>
</span><span class='line'><span class="c"># Start the setup by executing the installation script.</span>
</span><span class='line'><span class="nv">$ </span>./blogengine_install
</span></code></pre></td></tr></table></div></figure>

<p>You should now have an Ubuntu sever running BlogEngine. To validate that it&#8217;s actually working start your browser and enter the VMs IP.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="c"># Command to get the VMs IP when logged in to the server.</span>
</span><span class='line'><span class="nv">$ </span>ifconfig eth0
</span></code></pre></td></tr></table></div></figure>

<p>Congratulations on not relying on proprietary software anymore.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[A Mashup is not a Blog]]></title>
    
      <link href="http://philippkueng.ch/a-mashup-is-not-a-blog.html"/>
    
    <updated>2011-07-06T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/a-mashup-is-not-a-blog</id>
    <content type="html"><![CDATA[<p><img src="http://philippkueng.ch/images/2011/7/DSC_5540.jpg" alt="A quality connection" /></p>
<p>Most people use a blog to build up a personal brand for whatever reason. Having profiles on various networks (social or not) might help multiplying the impact, however doing so doesn&#8217;t make you any more credible and in the worst case just pollutes the internet, maybe even weakens the goal you&#8217;re aiming for.</p>

<p>Every network is good enough on its own, so while mixing them might make sense in terms of amplification, connecting them should be used carefully and in no way continuously. Really, please don&#8217;t do this.</p>

<p>In order to comply with my statement above, and because I got sick of the old design, I slimmed down my blog drastically and removed all unnecessary UI clutter and got rid of the embedded bits.</p>

<p>Because I think, <strong>Quality is not measured in Quantity</strong>.</p>

<p>I&#8217;m not implying in any way that my writing is quality work, it&#8217;s just a bit cleaner presented that&#8217;s all.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Migrate the BlogEngine.NET commenting system over to Disqus]]></title>
    
      <link href="http://philippkueng.ch/migrate-the-blogenginenet-commenting-system-over-to-disqus.html"/>
    
    <updated>2011-07-05T00:00:00+02:00</updated>
    <id>http://philippkueng.ch/migrate-the-blogenginenet-commenting-system-over-to-disqus</id>
    <content type="html"><![CDATA[<p><img src="http://philippkueng.ch/images/2011/7/DSC_6717.jpg" alt="comments" /></p>

<p>Offloading comments to a third party, namely <a href="http://disqus.com/">disqus</a>, is the initial step I&#8217;ll take for migrating my current blog to a static alternative called <a href="http://github.com/mojombo/jekyll/">Jekyll</a>. But more on my decision in a later post. Let&#8217;s focus on the steps necessary to get those comments up to disqus.</p>

<p><strong>Warning:</strong> Because after the migration the comments are getting injected into the page via Javascript, Google and the rest of the Search-Engine-Mafia won&#8217;t be able index them which basically means users won&#8217;t be able to search for comments in your post when using a search engine.</p>

<p><strong>Disclaimer:</strong> Actually all the tools and most steps used in this post are from <a href="http://blog.prabir.me/post/Migrating-Existing-BlogEngineNet-Comments-to-Disqus.aspx">Migrating Existing BlogEngine.Net Comments to Disqus</a>, however I ran into some issues while following the guide.</p>

<p>Now to the migration part, first of all we&#8217;ll need to extract the existing comments from your blog. For doing so we&#8217;ll use the <a href="http://blog.prabir.me/files/2010/5/DisqusUploaderWithBlogEngineExtensions.zip">CommentExporter BlogEngine Extension</a> by @prabirshrestha. Download and extract the extension, and upload the files inside the <strong>www</strong> directory into the according BlogEngine folders on your webserver. Then log into your blog and head over to the extensions tab of the administration dashboard. Make sure that the extension is <strong>enabled</strong> and then click the <strong>edit</strong> link next to. In this new window select the option <strong>Intense Debate</strong> from the dropdown menu and continue by pressing Export Comments.</p>

<p>Once you have the file on your desktop open it with you favorite text-editor and check that there is no HTML encoded user name inside the <strong><name></strong> tags. If they&#8217;re encoded I strongly suggest rewrite them into their UTF-8 equivalent, otherwise they&#8217;re getting messed up by disqus.</p>

<p>Now go ahead and create a disqus account for your blog if you haven&#8217;t already.</p>

<p>Let&#8217;s import. Log into your disqus account and select the blog you want the comments to appear on. Then head over to the <strong>Tools</strong> tab and select <strong>Import / Export</strong> on the left hand side. Select IntenseDebate as the format then choose the file and hit <strong>Import</strong>. Depending on the number of comments you have it might take disqus a while to import all of them.</p>

<p>Next up we need to make a minor modification to the BlogEngine source. Open up your FTP browser, select the file post.aspx in the root of your BlogEngine installation and open it. In there remove the following line</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="kd">var</span> <span class="nx">disqus_url</span> <span class="o">=</span> <span class="s1">&#39;...&#39;</span><span class="p">;</span>
</span></code></pre></td></tr></table></div></figure>


<p>
and add the line</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="kd">var</span> <span class="nx">disqus_shortname</span> <span class="o">=</span> <span class="s1">&#39;fill in your disqus domain username&#39;</span><span class="p">;</span>
</span></code></pre></td></tr></table></div></figure>


<p>The reason for this change is the following: Because we&#8217;ve extracted and uploaded the comments with the pretty url the built in disqus commenting will look for comments matching the ugly but unique guid url, which leads to none of the comments are ever showing up. Of course modifying the export extension, using regex in the text-editor or uploading a URL map to disqus will lead to similar results.</p>

<p>Finally you&#8217;re able to change the moderating system inside the comments tab of the BlogEngine administration dashboard to <strong>Moderated by Disqus</strong>. Now don&#8217;t forget the fill in the <strong>Disqus Website Short Name</strong> and then upgrade your blog by saving the changes.</p>

<p>One last thing to note, if you&#8217;re enabling comments for pages and you want the pretty urls for them too you&#8217;ll need to apply the same modifications for page.aspx as we did with post.aspx.</p>
]]></content>
  </entry>
  
</feed>

