<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Philipp Küng</title>
  <link href="https://philippkueng.ch/atom.xml" rel="self"/>
  <link href="https://philippkueng.ch"/>
  <updated>2025-06-16T08:00:04+00:00</updated>
  <id>https://philippkueng.ch</id>
  <author>
    <name>Philipp Küng</name>
  </author>
  <entry>
    <id>https://philippkueng.ch/2025-06-16-creating-a-virtual-usb-keyboard-with-the-esp32-s3.html</id>
    <link href="https://philippkueng.ch/2025-06-16-creating-a-virtual-usb-keyboard-with-the-esp32-s3.html"/>
    <title>Creating a virtual USB keyboard with the ESP32-S3</title>
    <updated>2025-06-16T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<h2 id="introduction">Introduction</h2><p>The idea for this project began during a casual lunch conversation, where were wondering about how challenging it might be to build a virtual keyboard from scratch these days. That sparked my curiosity, especially since the ESP32-S3 natively supports USB OTG. I was eager to try it out for myself and see what was possible.</p><h2 id="choosing_the_right_hardware">Choosing the Right Hardware</h2><p><img src="/assets/images/2025/06/esp32-s3.jpeg" alt="ESP32-S3 DevKit" /></p><p>Before making any purchases, I watched a helpful video by <a href='https://www.youtube.com/@AndreasSpiess'>Andreas Spiess</a> that explores the different ways ESP32 controllers handle USB functionality (13-minute video: <a href='https://youtu.be/hJSBTFsOnoA?si=-KlphLdLC01w7r4N'>https://youtu.be/hJSBTFsOnoA?si=-KlphLdLC01w7r4N</a>). Based on what I learned, I chose the <a href='https://www.aliexpress.com/item/1005003979778978.html'>ESP32-S3 DevKit</a>. It comes with two USB ports and requires no soldering, making it ideal for quick experimentation.</p><p>When the board arrived, I decided to set things up using my old Windows laptop, now running Ubuntu. This way, if anything went wrong (and released the infamous <a href='https://en.wikipedia.org/wiki/Magic_smoke'>magic smoke</a>), I wouldn't risk my main machine. Plus, I prefer a setup that's easy to reproduce without specialised gear.</p><h2 id="installing_the_arduino_ide">Installing the Arduino IDE</h2><p>To keep things simple, I approached the setup as a new user would. I installed the <a href='https://www.arduino.cc/en/software/#ide'>Arduino IDE</a> directly from the Ubuntu Software Center. However, my first attempt at compiling code resulted in a GLIBC_2.29 missing error.</p><p><img src="/assets/images/2025/06/arduino_ide_glibc_error.jpeg" alt="GLIBC error in Arduino IDE" /></p><p>After checking with <code>ldd --version</code>, I discovered that my system actually had a newer version of glibc (2.39) already installed.</p><h2 id="troubleshooting_installation_issues">Troubleshooting Installation Issues</h2><p>Seeking a solution, I consulted <a href='https://www.perplexity.ai/search/i-got-the-arduino-ide-1-8-9-in-i4B3r3NbRaWnKoKCN9wQPQ'>Perplexity</a> and tried running <code>arduino.pip install --upgrade esptool</code>, hoping it would resolve the issue. Unfortunately, that didn't work.</p><p>After several unsuccessful attempts to upgrade the snap versions, I decided to switch strategies. I removed the snap installation: <code>sudo snap remove arduino</code></p><p>Then, I downloaded the Arduino IDE AppImage from the <a href='https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing/'>official documentation</a> and installed <code>libfuse2</code> as recommended.</p><h2 id="flashing_the_esp32-s3">Flashing the ESP32-S3</h2><p>With the IDE up and running, I <a href='https://www.perplexity.ai/search/i-d-like-to-turn-an-esp32-s3-d-7cPAj3FvTJG8AuTxdWQ8OA'>asked an LLM</a> for an example sketch to send "Hello World!" as keyboard input to any connected computer. After selecting the appropriate port, I flashed the code, connected the second USB cable, and waited five seconds. Sure enough, the device typed "Hello World!" virtually, just as expected.</p><p>Here's the code I used:</p><pre class="language-cpp"><code class="lang-cpp language-cpp">#include &lt;USB.h&gt;
#include &lt;USBHIDKeyboard.h&gt;

USBHIDKeyboard Keyboard;

void setup&#40;&#41; {
  USB.begin&#40;&#41;;
  Keyboard.begin&#40;&#41;;
  delay&#40;5000&#41;;
  Keyboard.println&#40;&quot;Hello World!&quot;&#41;;
}

void loop&#40;&#41; {
  // put your main code here, to run repeatedly:
}
</code></pre><h2 id="conclusion">Conclusion</h2><p>This simple experiment opens up a world of possibilities. With an ESP32-S3, you can create your own stream deck, game controller, or even a custom keyboard—all without complex hardware modifications.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2024-11-03-create-a-qr-code-from-the-command-line.html</id>
    <link href="https://philippkueng.ch/2024-11-03-create-a-qr-code-from-the-command-line.html"/>
    <title>Create a QR code from the command line</title>
    <updated>2024-11-03T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Lindsay, my wife, has been working on her <a href='https://gestempelt-und-gedruckt.ch/'>online shop (gestempelt & gedruckt — unique handicrafts inspired by nature)</a> for the last few months. Now that it’s complete, she's eager to get the word out with flyers. For this, she needed a QR code with the shop's URL to make it easier for people to scan.</p><p>So how do you generate a white QR code with the rest being transparent without needing to sign up to a website?</p><p>Use <a href='https://fukuchi.org/works/qrencode/'>qrencode</a> and <a href='https://imagemagick.org/'>ImageMagick</a> on the command line.</p><p>First, install the applications using:</p><pre class="language-bash"><code class="lang-bash language-bash">brew install qrencode imagemagick
</code></pre><p>Then, generate the QR code:</p><pre class="language-bash"><code class="lang-bash language-bash"># Create the QR code &#40;white on black&#41;.
qrencode -s 20 --foreground=ffffff --background=000000 -l H -o &quot;URL.png&quot; &quot;https://gestempelt-und-gedruckt.ch/&quot;

# Replace black with &quot;transparent&quot;.
convert URL.png -fuzz 10% -transparent black URL&#95;transparent.png
</code></pre>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2024-10-13-building-a-temperature-sensor-for-home-assistant-with-a-dht22-sensor-an-esp8266-and-esphome.html</id>
    <link href="https://philippkueng.ch/2024-10-13-building-a-temperature-sensor-for-home-assistant-with-a-dht22-sensor-an-esp8266-and-esphome.html"/>
    <title>Building a temperature sensor for Home Assistant with a DHT22 sensor, an ESP8266 and ESPHome</title>
    <updated>2024-10-13T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>In order to better understand our temperature needs and to humour my interest to tinker with electronics I've decided to build some temperature and humidity sensors and have them installed both in- and outdoors. I'll be using <a href='https://esphome.io/'>ESPHome</a> which talks to <a href='https://www.home-assistant.io/'>Home Assistant</a> for this build.</p><p>I'm started off with a board from <a href='https://www.aliexpress.com/item/4001135318230.html?spm=a2g0o.order_list.order_list_main.55.70b01802ntJ0vy'>AliExpress</a> containing a <a href='https://www.elektronik-kompendium.de/sites/praxis/bauteil_dht22.htm'>DHT22</a> temperature and humidity sensor with an attachable <a href='https://de.wikipedia.org/wiki/ESP8266'>ESP8266</a> microcontroller.</p><h2 id="programming_the_esp8266_microcontroller">Programming the ESP8266 microcontroller</h2><p>To program the ESP8266 one needs an adapter (<a href='https://www.aliexpress.com/item/32799975353.html?spm=a2g0o.order_list.order_list_main.49.70b01802ntJ0vy#nav-description'>ESP-01 Adapter Board</a>) which needs to be slightly modified with a button so that we can enable its programming mode (<a href='https://www.edgemicrotech.com/preparing-the-usb-esp-01-programming-adapter-a-step-by-step-guide/'>instructions</a>).</p><p><img src="/assets/images/2024/10/IMG_0089.jpeg" alt="ESP-01 Adapter Board used to program the ESP8266" /> <img src="/assets/images/2024/10/IMG_0090.jpeg" alt="Underside of the ESP-01 Adapter Board used to program the ESP8266 showing the pins used for wiring the button to" /></p><h2 id="assembly">Assembly</h2><p><img src="/assets/images/2024/10/IMG_0095.jpeg" alt="All the parts required to assemble the temperature and humidity sensor" /></p><p>Having the parts ready I'm logging in to my Home Assistant and heading to the ESPHome view to add a new device. I create a new configuration and choose the ESP8266 as the device, then once it offers the "Install" option I insert the controller to be programmed into the adapter board, keep the button pressed and plug it into one of the USB ports of my <a href='https://www.raspberrypi.com/'>Raspberry Pi</a> running Home Assistant. Once plugged in I release the button again. At this stage I can then click the option to install the first version of ESPHome onto the controller via "Plug into the computer running ESPHome Dashboard" (be aware that this might take a while as it has to fetch dependencies and compile the custom build). This step will flash enough for the controller to be able to connect to the Wi-Fi and be updatable via ESPHome running on Home Assistant. It's important to note that the Raspberry Pi likely won't have enough juice to start the controller and hence it won't be doing anything after being programmed.</p><p>At this point I disconnect the programmer, take the controller out of the adapter, connect it with the board containing the DHT22 sensor and feed it with 5V from a power supply. One should see 2-3 LEDs light up. Shortly after the new device should appear as connected in ESPHome at which point the configuration of the device can be extended with options to tell the controller what kind of sensors are connected and with what kind of name it should be reporting the values to Home Assistant.</p><pre class="language-yaml"><code class="lang-yaml language-yaml">sensor:
  - platform: dht
    pin: GPIO2
    model: DHT22&#95;TYPE2
    temperature:
      name: &quot;Balcony Temperature&quot;
    humidity:
      name: &quot;Balcony Humidity&quot;
    update&#95;interval: 60s
</code></pre><p>Once added, save the configuration and click the "Install" button to remotely update the configuration on the device via the wireless connection. If you look at the logs of the ESPHome component for about 60s it should eventually log the temperature and humidity it just collected via the DHT22 sensor.</p><pre class="language-txt"><code class="lang-txt language-txt">&#91;13:13:26&#93;&#91;D&#93;&#91;dht:048&#93;: Got Temperature=15.5°C Humidity=80.3%
&#91;13:13:26&#93;&#91;D&#93;&#91;sensor:093&#93;: 'Balcony Temperature': Sending state 15.50000 °C with 1 decimals of accuracy
&#91;13:13:26&#93;&#91;D&#93;&#91;sensor:093&#93;: 'Balcony Humidity': Sending state 80.30000 % with 0 decimals of accuracy
</code></pre><p><img src="/assets/images/2024/10/IMG_0091.jpeg" alt="Assembled board & controller without the case" /></p><p>At this point I knew that the components and network connection worked as intended and that I can continue with the integration of it into the case. For the case I've used <a href='https://www.printables.com/model/1039908-temperature-humdity-sensor-box-based-on-an-esp8266'>a modified version</a> of <a href='https://youtu.be/lBK0UBjVrYM?si=cYmw93UKSG7zp7iz'>Andreas Spiess</a>'s configurable 3d printable box with an arm that ensures the DHT22 sensor is far enough away from the controller and power supply to not be affected by it.</p><p>The case requires the DHT22 to be de-soldered and extended which is a bit finicky.</p><p><img src="/assets/images/2024/10/IMG_0094.jpeg" alt="De-solder the DHT22 sensor from the board" /></p><p>After a bit of fiddling this is the end result just prior to clicking the box shut.</p><p><img src="/assets/images/2024/10/IMG_0096.jpeg" alt="Finished integration of the DHT22 sensor board with ESP8266 and power supply into the 3D printed case" /></p><p>I've used some double-sided tape to fix the boards to the case, used a cable tie to ensure the power cord isn't pulling too much on the power supply and finally used some heat shrink tubing for the sensor connections just to be on the safe side. Worth noting, while I did write that this sensor goes onto the balcony, it's not intended to be operated in a wet environment as both the sensor is exposed and the 3d printed case isn't waterproof.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2022-07-14-use-swiss-keyboard-shortcuts-for-line-commenting-in-sonic-pi.html</id>
    <link href="https://philippkueng.ch/2022-07-14-use-swiss-keyboard-shortcuts-for-line-commenting-in-sonic-pi.html"/>
    <title>Use Swiss keyboard shortcuts for line commenting in Sonic Pi</title>
    <updated>2022-07-14T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Every now and then after a day at work I enjoy toying around with <a href='https://sonic-pi.net/'>Sonic Pi</a>, an amazing application for making music with code.</p><p>There are a lot of great talks by <a href='http://sam.aaron.name/'>Sam Aaron</a> the creator of Sonic Pi on Youtube but I like this one quite a bit.</p><p><iframe width="560" height="315" src="https://www.youtube.com/embed/OLLwG_SN8oo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p><p>So while I was sitting there with my glass of Port working through the <a href='https://sonic-pi.net/tutorial.html'>Sonic Pi Tutorial</a> I had the urge to gain back my text editing fluency I'm used to from my day job. Luckily Sonic Pi supports a lot of <a href='https://sonic-pi.net/tutorial.html#section-B-1'>keyboard shortcuts</a> however as of now they're optimised for a keyboard layout of the english language.</p><p>After a bit of tinkering and the help of <a href='https://karabiner-elements.pqrs.org/'>Karabiner-Elements</a> I managed to re-map my line-commenting shortcut of <code>CMD+Shift+7</code> (I'm working on a MacBook with a Swiss German keyboard) to the shortcut defined by Sonic Pi <code>M-/</code>.</p><p>The configuration you'll want is:</p><pre class="language-json"><code class="lang-json language-json">{
  &quot;title&quot;: &quot;Remap CH comment combo to EN comment combo&quot;,
  &quot;rules&quot;: &#91;
    {
      &quot;description&quot;: &quot;Remap CH comment combo to EN comment combo&quot;,
      &quot;manipulators&quot;: &#91;
        {
          &quot;conditions&quot;: &#91;
            {
              &quot;bundle&#95;identifiers&quot;: &#91;
                &quot;net\\.sonic\\-pi\\.app&quot;
              &#93;,
              &quot;type&quot;: &quot;frontmost&#95;application&#95;if&quot;
            }
          &#93;,
          &quot;from&quot;: {
            &quot;key&#95;code&quot;: &quot;7&quot;,
            &quot;modifiers&quot;: {
              &quot;mandatory&quot;: &#91;
                &quot;left&#95;command&quot;,
                &quot;left&#95;shift&quot;
              &#93;
            }
          },
          &quot;to&quot;: {
            &quot;key&#95;code&quot;: &quot;keypad&#95;slash&quot;,
            &quot;modifiers&quot;: &#91;
              &quot;left&#95;command&quot;
            &#93;
          },
          &quot;type&quot;: &quot;basic&quot;
        }
      &#93;
    }
  &#93;
}
</code></pre><p>If you also got this need then following these steps should set you up.</p><ol><li>Install <a href='https://karabiner-elements.pqrs.org/'>Karabiner-Elements</a></li><li>In your terminal go to <code>&#126;/.config/karabiner/assets/complex&#95;modifications</code></li><li>In there create a file <code>remap&#95;ch&#95;comment&#95;combo&#95;to&#95;en&#95;comment&#95;combo.json</code> and fill it with the configuration above.</li><li>Then start Karabiner Elements, go to the Complex Modifications tab <img src="/assets/images/2022-07-14-1.png" alt="Complex Modifications tab" /> and there click the Enable button for the new configuration <img src="/assets/images/2022-07-14-2.png" alt="Enable button" />.</li></ol>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2015-06-07-deploy-a-phoenix-application-on-heroku.html</id>
    <link href="https://philippkueng.ch/2015-06-07-deploy-a-phoenix-application-on-heroku.html"/>
    <title>Deploy a Phoenix Application on Heroku</title>
    <updated>2015-06-07T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Since I heard of <a href='http://www.phoenixframework.org/'>Phoenix</a>, the <a href='http://elixir-lang.org/'>Elixir</a> framework on <a href='https://changelog.com/147/'>The Changelog Podcast</a>, I've spent some time getting familiar with the framework. However when time came to deploy the application onto Heroku there were a couple of things that weren't initially obvious to me, like how to run <a href='http://brunch.io/'>brunch</a> to compile the assets or how to parse the <code>DATABASE&#95;URL</code> environment variable.</p><h2 id="buildpacks">Buildpacks</h2><p>First we have to change the currently used buildpack to the multi buildpack which makes it possible to run the Node.js besides the Elixir buildpack.</p><pre class="language-bash"><code class="lang-bash language-bash">heroku config:add BUILDPACK&#95;URL=https://github.com/ddollar/heroku-buildpack-multi.git
</code></pre><p>Then add the file <code>.buildpacks</code> with the contents below which will pull in the buildpacks and run their compile script. The buildpack listed last will hereby be used to run the application.</p><pre><code># .buildpacks
https://github.com/heroku/heroku-buildpack-nodejs.git#34cffc9b6397bc1ce97a4b5e911fa771fc4e7907
https://github.com/HashNuke/heroku-buildpack-elixir.git#36f2ff22d0236589256d9044091b950b7cc565d2
</code></pre><h2 id="compile_the_assets">Compile the assets</h2><p>Now that we have multiple buildpacks we need to tell the Node.js one to run the <code>postinstall</code> hook after all the dependencies are installed. Just add the <code>scripts</code> part to your <code>package.json</code> and you're all set for Heroku to run the <code>brunch build</code> command.</p><pre class="language-json"><code class="lang-json language-json"># package.json
{
  &quot;dependencies&quot;: {
    ...
  },
  &quot;engines&quot;: {
    &quot;node&quot;: &quot;&#126; 0.12.1&quot;
  },
  &quot;scripts&quot;: {
    &quot;postinstall&quot;: &quot;node&#95;modules/.bin/brunch build&quot;
  }
}
</code></pre><h2 id="parse_the_environment_variable">Parse the environment variable</h2><p>When deploying the application to Heroku, the configuration variables will be exposed to the application via environment variables. For the database that means there will be a single String from which the <code>username</code>, <code>password</code>, <code>host</code>, etc. will have to be extracted. You could theoretically do that by hand defining those variables individually, however what happens if your database provider has an issue and suddenly decides to change the value behind your environment variable? - in order to avoid that, just put the code below in your <code>prod.secret.exs</code> file to help you split the configuration variable for the database.</p><pre class="language-elixir"><code class="lang-elixir language-elixir"># config/prod.secret.exs
defmodule Heroku do
  def database&#95;config&#40;uri&#41; do
    parsed&#95;uri = URI.parse&#40;uri&#41;
    &#91;username, password&#93; = parsed&#95;uri.userinfo
                           |&gt; String.split&#40;&quot;:&quot;&#41;
    &#91;&#95;, database&#93; = parsed&#95;uri.path
                    |&gt; String.split&#40;&quot;/&quot;&#41;

    &#91;{:username, username},
     {:password, password},
     {:hostname, parsed&#95;uri.host},
     {:database, database},
     {:port, parsed&#95;uri.port},
     {:adapter, Ecto.Adapters.Postgres}&#93;
  end
end
</code></pre><p>Then instead of defining the arguments for your app separately, call the <code>database&#95;config</code> function and you're all set.</p><pre class="language-elixir"><code class="lang-elixir language-elixir"># config/prod.secret.exs
config :yourapplication, Yourapplication.Repo,
  &quot;DATABASE&#95;URL&quot;
  |&gt; System.get&#95;env
  |&gt; Heroku.database&#95;config
</code></pre><h2 id="run_the_database_migrations">Run the database migrations</h2><pre class="language-bash"><code class="lang-bash language-bash">heroku run mix ecto.migrate
</code></pre><p>Since I'm pretty new to Elixir and even newer to the Phoenix Framework, this tutorial might lack some best practices, in which case please let me know so this post can be updated to reflect them.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2014-10-06-automatically-deploy-to-heroku-from-github.html</id>
    <link href="https://philippkueng.ch/2014-10-06-automatically-deploy-to-heroku-from-github.html"/>
    <title>Automatically deploy to Heroku from GitHub</title>
    <updated>2014-10-06T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>While starting on a new project the other day I decided to automate as much as possible. One of those tasks was deploying to <a href='https://www.heroku.com/'>Heroku</a> when pushing the master branch to <a href='https://github.com/'>Github</a>. It took me some time to figure certain parts out, even though the documentation is quite extensive; guess it being a beta feature didn't help.</p><ol><li>Start by going into the <strong>Settings > Webhooks & Services</strong> view and add the <strong>HerokuBeta</strong> Service.</li><li>Create the app on Heroku via the command line <code>heroku create myapp</code></li><li>Fill in <code>myapp</code> as the <strong>Name</strong> in the HerokuBeta settings view and leave <strong>GitHub api url</strong> empty.</li><li>Then for the Heroku token, you'll need your Heroku api token, which you get via <code>heroku auth:token</code> (eg. token123) and your email address you're using to login to Heroku (eg. hi@email.com). Then convert the two into a base64 hash for the Authorization header by issuing this command on a Unix system <code>echo &quot;hi@email.com:token123&quot; | base64</code> (eg. base64-123).</li></ol><pre><code>    curl -X POST https://api.heroku.com/oauth/authorizations \
    -H &quot;Accept: application/vnd.heroku+json; version=3&quot; \
    -H &quot;Authorization: Basic base64-123&quot; \
    -H &quot;Content-Type: application/json&quot; \
    -d &quot;{\&quot;description\&quot;:\&quot;direct token description &#40;preferably meaningful&#41;\&quot;}&quot;</code></pre><ol><li>For the <strong>GitHub token</strong> follow the instructions and head to <a href='https://github.com/settings/applications'>https://github.com/settings/applications</a> where you can click <strong>Create new token</strong>, then give it a name and leave the default settings before hitting <strong>Generate token</strong>. Then copy this token and fill it into the form.</li><li>Save the configuration with <strong>Add service</strong>.</li><li>I first thought the hook is already working, however it's only working with GitHub deployment events, which you can add by adding another service called <strong>GitHub Auto-Deployment</strong>.</li><li>Repeat step 5 to acquire a new GitHub token and add it there, save and from now on your automatic Heroku deployment should be fully working.</li></ol>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2014-08-21-reset-your-synology-nas-after-a-synolocker-attack.html</id>
    <link href="https://philippkueng.ch/2014-08-21-reset-your-synology-nas-after-a-synolocker-attack.html"/>
    <title>Reset your Synology NAS after a SynoLocker attack</title>
    <updated>2014-08-21T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/cryptolocker.jpg" alt="Encrypted Data" /></p><p>Personal NAS-es are quite handy, however their wide spread usage and the fact that people don't often check their system via the web dashboard makes it a perfect target for crackers trying to extort you for money or just using your machine to mine bitcoins for them.</p><p>In this case I had a DS213j delivered to me with SynoLocker on it. A malicious piece of code that encrypts all your files and holds them hostage until you give in and pay them what they ask for. <strong>Please don't ever give in.</strong> Just accept that your data is lost forever and you hopefully have a backup of it somewhere else, if not, now would be a good time to start thinking about one.</p><p>So on that basis, the fix is fairly trivial.</p><ol><li>Open the lid and take out all of the drives.</li><li>Put one into a desktop computer or use a S-ATA to USB docking station to connect it to a working machine so you can format the drive with FAT.</li><li>Put the one drive back into the NAS and boot it up.</li><li>As soon as it's booted, reset it by taking a paperclip and pressing the reset button on the back for 4 seconds until it beeps. Release. Press again for 4 seconds until it beeps again for 3 times. This will initiate a restart.</li><li>Download the <a href='http://www.synology.com/en-us/support/download'>Synology Assistant</a> and install it on your computer, then start it up.</li><li>If your NAS isn't already showing up, give it some time to finish the booting process and then click the search button in the Synology Assistant.</li><li>Double click on the entry for your NAS which will open a browser window.</li><li>Download the latest Diskstation Firmware (DSM) from the <a href='http://www.synology.com/en-us/support/download'>Synology Download Center</a> and go through the questions in the browser.</li><li>Upload your firmware and let the NAS re-format your disk, then give it some time for it to re-install.</li><li>When all is done, format all the other drives with the same process you used for the first drive. Shutdown the NAS and put them back in. Restart and go into the Storage Manager > Volume where you can add the newly inserted drives to your volume. Once added it will take a while for them to be added and re-index, partitiend, etc., you can safely use your NAS from now on however.</li><li>Now you might want to re-add your video, music and photo folders. That's it.</li></ol><p>On a further note, since crackers were able to get into your NAS once, I'd ask yourself whether you really need external access to it and otherwise make sure there are no ports being forwarded by your router. Also I recommend changing your router password, especially in case it's still the factory default one. If you really do need remote access, at least change the ports which are used externally, eg. map 3001  to 5000 internally.</p><p>Lastly, I've used automatic DNS updating services quite a bit too, however they could have been the enabling party for the attack. Once such a provider is compromised, crackers can check their attacks against all your ports which makes the previous advice in-effective. Since routers nowadays don't change their ip addresses that much I usually look up my home address via the GMail login history and use the naked IP. Less convenient, but more secure.</p><p>Hope this short summary helped during your reset and it's the last time something like that happened.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2013-01-01-the-bourne-identity-a-lot-realer-that-one-might-think.html</id>
    <link href="https://philippkueng.ch/2013-01-01-the-bourne-identity-a-lot-realer-that-one-might-think.html"/>
    <title>The Bourne Identity - A lot realer than one might think</title>
    <updated>2013-01-01T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/drone.jpg" alt="US Predator Drone" /></p><p>Last sunday I enjoyed watching all four Bourne movies including <a href='http://www.imdb.com/title/tt1194173/'>the newest one</a>. Additionally I like the TV series <a href='http://www.imdb.com/title/tt1796960/'>Homeland</a> and <a href='http://www.imdb.com/title/tt1839578/'>Person of Interest</a>. However what is shocking to me, is that while those stories are just made up by writers, situations like those on TV actually occur in real life to people like you and me (well sort of). <a href='http://video.events.ccc.de/#event=5338&conference=29th+Chaos+Communication+Congress'>Algorithms decide whom to kill</a> and <a href='http://www.spiegel.de/international/world/pain-continues-after-war-for-american-drone-pilot-a-872726.html'>drone pilots carry out</a> <a href='http://www.fastcodesign.com/1671129/infographic-a-map-of-america-s-284-drone-strikes-against-pakistan'>the strikes</a> like robots. Without formal charges. Without asking questions.</p><p>If you have two hours to spare I encourage you to watch the full length track of the <a href='http://events.ccc.de/congress/2012/wiki/Main_Page'>#29c3</a> session entitled <a href='http://video.events.ccc.de/#event=5338&conference=29th+Chaos+Communication+Congress'>Enemies of the State</a> in which the three Whistleblowers <a href='http://en.wikipedia.org/wiki/Jesselyn_Radack'>Jesselyn Radack</a> (former ethics advisor to the Department of Justice), <a href='http://en.wikipedia.org/wiki/Thomas_Andrews_Drake'>Thomas Drake</a> (former senior executive of the NSA) and William Binney (former senior technical leader of the NSA) talk about what the government did to them while they played by the rules. Quite an eye opener.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-09-30-goodbye-feedburner.html</id>
    <link href="https://philippkueng.ch/2012-09-30-goodbye-feedburner.html"/>
    <title>Goodbye Feedburner</title>
    <updated>2012-09-30T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/DSC_7186.jpg" alt="RSS Feed" /></p><p>During the last couple of weeks many have announced that they are moving away from <a href='http://feedburner.com'>Google Feedburner</a>.  The reason for this move, the <a href='https://developers.google.com/feedburner/'>Feedburner API</a> will be shut down in October of this year, probably leading to a similar fate for the feed proxy parts serving this feed.</p><p>That means, if you are reading this and would like to do so in a couple of months then I encourage you to update the URL in your feed reader with <a href='http://philippkueng.ch/atom.xml'>http://philippkueng.ch/atom.xml</a>.</p><p>Thanks guys, for being such great readers.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-07-30-das-trainshare-drama-was-bisher-geschah.html</id>
    <link href="https://philippkueng.ch/2012-07-30-das-trainshare-drama-was-bisher-geschah.html"/>
    <title>Das Trainshare-”Drama”: Was bisher geschah</title>
    <updated>2012-07-30T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/DSC_4670.jpg" alt="Train in Pfäffikon" /></p><p>Ein <a href='http://www.sonntagszeitung.ch/multimedia/artikel-detailseite/?newsid=225293'>Artikel der Sonntagszeitung</a> zum <a href='https://trainshare.ch'>Projekt Trainshare</a> hat am Sonntagmorgen einen doch beträchtlichen Twitter-”Shitstorm” gegen die SBB ausgelöst. Als Beteiligter am Projekt möchte ich gerne schildern, wie es überhaupt so weit kam.</p><p>Der Hauptgrund für die Situation ist höchstwahrscheinlich ein Missverständnis am 30. März 2012: An diesem Datum fand in Zürich ein <a href='http://opendata.ch/projects/make-opendata-ch-mobiliat/'>Open Data Hackday</a> statt, ein Anlass an dem Programmierer, Designer und andere mit offenen Daten an tollen neuen Anwendungen für die Öffentlichkeit arbeiteten.</p><p>An diesem Event, nach einem <a href='https://philippkueng.ch/trainsharingapp.html'>vorhergehenden Blogeintrag</a>, riefen <a href='https://twitter.com/visualcontext'>Alain</a>, <a href='https://twitter.com/AdrianKuendig'>Adrian</a> und ich die <a href='https://trainshare.ch'>Trainshare App</a> ins Leben. Nachdem wir einen halben Tag daran gearbeitet hatten, setzten sich <a href='https://www.xing.com/profile/Bruno_Spicher'>Bruno Spicher</a> und <a href='https://www.xing.com/profile/JeanPhilippe_Picard'>Jean-Philippe Picard</a> von den SBB zu uns, um mit uns zu diskutieren, worum es bei der Trainshare App geht. Ich erklärte ihnen ganz offen, was der Plan war und was unsere Beweggründe waren. Anschliessend liess uns Bruno Spicher wissen, dass sie “an etwas Ähnlichem” bauen, das im Herbst 2012 veröffentlicht werden solle. Diese neue SBB App werde gleich funktionieren wie die bestehende Gleis7 App, zusätzlich aber “CheckIns” erlauben. Tiefe “social media” Integration von Twitter und Facebook wurden weder im Gespräch erwähnt, noch gibt es derlei in der Gleis7 App.</p><p>Aufgrund der obigen Informationen beschlossen wir, die Trainshare App weiter zu entwickeln, und den Pendlern als kostenloses, werbefreies “social travel” Experiment anzubieten. Die anfallenden Daten wollten wir aufbereiten und visualisieren, sodass den SBB indirekt ebenfalls ein Nutzen erwächst – neben zufriedeneren Kunden vielleicht gar mehr Fahrten.</p><p>Über den genauen Inhalt der damaligen Gespräche besteht heute Uneinigkeit, rekonstruieren lässt sich die Sache kaum. Was ich aber tun kann, ist, die Geschehnisse nach dem Hackathon im März bis zum Sonntagszeitungs-Artikel am vergangenen Sonntag chronologisch aufzuführen – in der Hoffnung, dass sich daraus vielleicht etwas lernen lässt.</p><h2 id="chronologie_der_geschehnisse">Chronologie der Geschehnisse</h2><p><strong>30. März 2012 - Hackathon</strong><br/> Nachdem wir uns unterhalten hatten, schrieb Bruno Spicher wohlwollend auf Twitter über <a href='https://twitter.com/trainshare'>@trainshare</a> und erwähnte dabei Michael Rüetschli, den Projektleiter von <a href='https://twitter.com/SBBConnect'>@SBBConnect</a>: <blockquote class="twitter-tweet tw-align-center"><p>Interessante <a href="https://twitter.com/search/%2523trainsharingApp">#trainsharingApp</a> Idee von @<a href="https://twitter.com/philippkueng">philippkueng</a> <a href="http://t.co/zcXjx2UL" title="http://philippkueng.ch/trainsharingapp.html">philippkueng.ch/trainsharingap…</a> <a href="https://twitter.com/search/%2523makeopendata">#makeopendata</a> /cc @<a href="https://twitter.com/rueetschli">rueetschli</a></p>&mdash; Spicher Bruno (@brunospicher) <a href="https://twitter.com/brunospicher/status/185708347868196864" data-datetime="2012-03-30T12:41:35+00:00">March 30, 2012</a></blockquote> <script src="//platform.twitter.com/widgets.js" charset="utf-8"></script> <br/></p><p><strong>1. April 2012</strong><br/> Da wir unser Projekt während dem Hackathon nicht beenden konnten, schalteten wir kurz danach auf trainshare.ch eine E-Mail Sammelseite auf, die bis heute 200 interessierte Nutzer umfasst.</p><p><strong>11. April 2012</strong><br/> Die <a href='http://www.bluewin.ch/de/index.php/53,574679/Trainshare__So_findet_man_Freunde_im_Zug_/de/digital/?scrss=de_digital'>Swisscom berichtet auf ihrem Blog über das @trainshare Projekt</a>. Dies provoziert wiederum 18 zusätzliche Anmeldungen, was zeigt, dass wir eine Nische entdeckt hatten.</p><p><strong>14. Mai 2012</strong><br/> Erste Anzeichen von @SBBConnect gesehen durch einen Retweet von <a href='https://twitter.com/rueetschli'>@rueetschli</a>. Nebenbei, wir beide folgen uns schon seit ca. einem Jahr gegenseitig auf Twitter: <blockquote class="twitter-tweet tw-align-center"><p>SBB.Connect coming this autumn <a href="https://twitter.com/search/%2523SBB">#SBB</a></p>&mdash; SBB.Connect (@SBBConnect) <a href="https://twitter.com/SBBConnect/status/202044850512740352" data-datetime="2012-05-14T14:37:00+00:00">May 14, 2012</a></blockquote> <br/></p><p><strong>18. Mai 2012</strong><br/> @SBBConnect ist ab jetzt nicht mehr nur ein Konzept, sondern wird gebaut. Hab mir damals nichts weiter dabei gedacht, da gemäss unserem Stand des Wissens @SBBConnect der Gleis7 App ähnlich sein wird, und wir mit der Twitter- und Facebook-Integration von @trainshare ein ganz anderes Publikum ansprechen werden: <blockquote class="twitter-tweet tw-align-center"><p>Soeben die letzte Anforderung spezifiziert. Damit endet genau jetzt die 4-monatige Konzeptionsphase.<a href="https://twitter.com/search/%2523SBB">#SBB</a> <a href="https://twitter.com/search/%2523SBBConnect">#SBBConnect</a></p>&mdash; SBB.Connect (@SBBConnect) <a href="https://twitter.com/SBBConnect/status/203391038767894528" data-datetime="2012-05-18T07:46:17+00:00">May 18, 2012</a></blockquote> <br/></p><p><strong>28. Juni 2012</strong><br/> Hatte die Ehre und präsentierte <a href='https://philippkueng.ch/trainshare-at-the-opendata-dot-ch-conference-2012.html'>@trainshare an der OpenData Konferenz 2012</a>. Das Medienecho war gross und somit sollten auch bislang OpenData-fremde SBB-Mitarbeitende von der App Wind bekommen haben. Ein "Hallo, wir machen exakt dasselbe. Ihr könnt euch die Zeit also sparen" oder "Hi, wir finden es toll, lasst uns das zusammen bauen" oder jegliche andere Signale seitens der Bahn bleiben aus.</p><p><strong>19. Juli 2012</strong><br/> Danilo, ebenfalls ein OpenData Hackathon Teilnehmer wies mich darauf hin, dass die @trainshare App Konkurrenz bekommt durch @SBBConnect. Als ich daraufhin den Artikel der Bernerzeitung las und sah, dass die App der SBB ebenfalls eine Integration der Sozialen Plattformen anbieten wird, bekam ich einen Schreck, da es doch hiess, sie soll wie die Gleis7 App werden: <blockquote class="twitter-tweet tw-align-center"><p>@<a href="https://twitter.com/philippkueng">philippkueng</a> kriegt trainshare konkurrenz? :) <a href="https://t.co/buEp8aML" title="https://twitter.com/rueetschli/status/225843359149858818/photo/1/large">twitter.com/rueetschli/sta…</a> zeitlich könntest du sie allerdings schlagen!</p>&mdash; Danilo (<a href='https://twitter.com/dbrgn'>@dbrgn</a>) <a href="https://twitter.com/dbrgn/status/225861547073892352" data-datetime="2012-07-19T07:56:03+00:00">July 19, 2012</a></blockquote> <br/></p><p>Darauf kontaktierte ich die Team-Mitglieder Adrian und Alain und fragte sie, wie sie zu einer Beendigung unseres Projekts stehen. Dies, weil wir in einer Konkurrenzsituation die SBB niemals werbetechnisch hätten überbieten können und es keinen Sinn macht, eine Plattform für bloss ein paar Nutzer zu unterhalten. Zudem konnte es aus meiner Sicht nicht darum gehen, sich gegenseitig zu bekriegen, sondern darum, der reisenden Community einen Nutzen zu liefern.</p><p><strong>20. Juli 2012</strong><br/> Da ich noch nicht von allen Team-Mitgliedern eine Antwort hatte und selbst unschlüssig war, wandte ich mich an den Opendata.ch-Vorstand, mit bitte um Rat. In der Diskussion wurde immer klarer, dass eine harte Konkurrenzsituation kaum etwas bringen kann– wie <a href='http://gottago.demo.liip.ch/'>einige Jahre zuvor die App GottaGo</a> gezeigt hatte.</p><p><strong>23. Juli 2012</strong><br/> Das Trainshare-Team fällte – auch aufgrund des Falles von GottaGo – den Entscheid, das Projekt stillzulegen. Aber auch es wieder aufzugreifen, sollte die SBB App nicht machen, was wir uns wünschen. Zudem beschlossen wir, uns den SBB zur Verfügung zu stellen und nach Möglichkeit mit unserem Fan-Feedback mitzuhelfen, dass die App das wird, was sie sein könnte.</p><p><strong>25. Juli 2012</strong><br/> Am Abend telefonierte ich mit dem Journalisten der Sonntagszeitung, und schilderte ihm meine Sicht der Dinge. Dabei ging ich noch immer davon aus, dass uns im März nicht kommuniziert worden war, dass die @SBBConnect App “social media” Integration haben würde.</p><p><strong>26. Juli 2012</strong><br/> Der Journalist kontaktierte anschliessend auch Bruno Spicher von den SBB, um dessen Sicht der Dinge einzuholen. Da alles mit dem Gespräch im März begann, trug mir Barnaby Skinner danach die Worte von Bruno Spicher vor, um allfällige Diskrepanzen mit meinen Äusserungen zu finden. Dabei hiess es, Bruno Spicher habe mir gesagt, die SBBConnect App werde ähnlich der Gleis7 App werden, CheckIn Funktionalität sowie Social Media Integration bieten.</p><p>Meinerseits erinnere ich mich lediglich daran, dass es eine Gleis7 ähnliche App mit CheckIn Funktionalität und Coupons werden solle. Nachvollziehen lässt sich das nun kaum mehr.</p><h2 id="und_jetzt%3F">Und jetzt?</h2><p>Sicher hätte man vieles anders machen können. Aber das hilft dem Projekt nun nur noch wenig, entsprechend können wir nur nach vorne schauen. Ich persönlich hoffe, dass die SBB Führung die negative Stimmung im Nachgang zum Sonntagszeitungsartikel nicht als Normalfall in der Arbeit mit offenen Daten ansieht. Ich würde mir wünschen, dass sich daraus Lehren ziehen liessen für mehr Offenheit, für mehr Plattformdenken, wie etwa bei den <a href='http://www.fastcoexist.com/1678624/how-open-data-could-make-san-francisco-public-transportation-better-updated'>Verkehrsbetriebe von San Francisco</a>.</p><p>In diesem Sinne bitte ich euch Blogger und Twitterer alle, mit dem Shitstorm gegen die SBB aufzuhören. Und die SBB bitte ich ihr Bestes zu geben, um die optimale Version der @trainshare Idee umzusetzen, eine echt innovative “social travel” App!</p><p>Zudem nehme ich die öffentliche Einladung von @rueetschli, dem Projektleiter von @SBBConnect, gerne an und komme ihn in Bern besuchen: <blockquote class="twitter-tweet tw-align-center"><p><a href="http://t.co/wC7HsiWn" title="http://www.sonntagszeitung.ch/multimedia/artikel-detailseite/?newsid=225293">sonntagszeitung.ch/multimedia/art…</a>Biete dem @<a href="https://twitter.com/philippkueng">philippkueng</a> hiermit gerne an,uns in Bern zu besuchen,damit er weiter an @<a href="https://twitter.com/trainshare">trainshare</a> arbeiten kann @<a href="https://twitter.com/BarJack">BarJack</a></p>&mdash; Michael Rueetschli (@rueetschli) <a href="https://twitter.com/rueetschli/status/229490401772466177" data-datetime="2012-07-29T08:15:50+00:00">July 29, 2012</a></blockquote> <script src="//platform.twitter.com/widgets.js" charset="utf-8"></script> <br/><br/></p><p>Bezüglich den Lehren und einer Interpretation der Geschehnisse empfehle ich den <a href='http://opendata.ch/2012/07/30/trainshare-learnings/'>Artikel von Hannes Gassert auf dem OpenData.ch Blog</a>.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-07-01-trainshare-at-the-opendata-dot-ch-conference-2012.html</id>
    <link href="https://philippkueng.ch/2012-07-01-trainshare-at-the-opendata-dot-ch-conference-2012.html"/>
    <title>Trainshare at the OpenData.ch Conference 2012</title>
    <updated>2012-07-01T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><script async class="speakerdeck-embed" data-id="4fec27775cd901001f01f331" data-ratio="1.3333333333333333" src="//speakerdeck.com/assets/embed.js"></script></p><p>Last week I was priviledged to talk about <a href='https://twitter.com/trainshare'>@trainshare</a> at the second <a href='https://opendata.ch/2012/05/13/opendata-ch-2012-konferenz-das-programm/'>OpenData conference</a> in Switzerland. I was truly honored, and therefore nervous, to present after great speakers like <a href='https://twitter.com/hannesgassert'>@hannesgassert</a> and <a href='https://twitter.com/rufuspollock'>@rufuspollock</a>.</p><p>Basically I wanted to give the attending journalists and politicians an overview of what it means to develop a project based on OpenData or for that matter OpenGovernmentData. That getting Data for free does not mean the service has to be free too.</p><p>For those who have not been able to attend, or just want to glance through the talk again, <a href='https://twitter.com/AdrianKuendig'>@AdrianKuendig</a> (working on the Windows Phone App for @trainshare) was kind enough to record it.</p><p>Thanks for the amazing opportunity <a href='https://twitter.com/BarJack'>@BarJack</a>, @hannesgassert, <a href='https://twitter.com/andreasamsler'>@andreasamsler</a>, <a href='https://twitter.com/loleg'>@loleg</a>, <a href='https://twitter.com/ecolix'>@ecolix</a> and the rest of the <a href='https://opendata.ch/'>OpenData.ch</a> team.</p><p><iframe width="654" height="368" src="http://www.youtube-nocookie.com/embed/YmzCp6Omqnc" frameborder="0" allowfullscreen></iframe></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-04-26-trainshare-first-update-since-number-makeopendata.html</id>
    <link href="https://philippkueng.ch/2012-04-26-trainshare-first-update-since-number-makeopendata.html"/>
    <title>trainshare - first update</title>
    <updated>2012-04-26T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/trainshareapp.png" alt="trainshare app mockups" /></p><p>It has been quite a while since <a href='https://makeopendata.ch'>#MakeOpenData</a> took place, the event where <a href='https://trainshare.ch'>trainshare</a> transformed from being <a href='https://philippkueng.ch/trainsharingapp.html'>purely an idea</a> to something more tangible.</p><p>Since <a href='https://twitter.com/AdrianKuendig'>@AdrianKuendig</a>, <a href='https://twitter.com/visualcontext'>@visualcontext</a>, <a href='https://twitter.com/koma5'>@koma5</a> and I were not able to deliver a running prototype until the end of the event, we continued working on <a href='https://github.com/akuendig/TrainShareApp'>the App</a> as well as <a href='https://github.com/philippkueng/trainsharingapp'>the API</a> whenever we had some spare time. While it is neither done nor available in the AppStore yet, we just wanted to give you a sneak peak of what is to come.</p><p><iframe src="http://player.vimeo.com/video/41043505?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="654" height="368" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p><p>As you can see, from the video above, there are still things need to be figured out or refined. While we might think of some ourselves, we always welcome your suggestions, so do not hesitate.</p><p>Well that is it for this time around, thanks to my trainshare team members, the awesome guys behind #MakeOpenData who made this event possible, journalists and bloggers who wrote articles like <a href='http://www.bluewin.ch/de/index.php/53,574679/Trainshare__So_findet_man_Freunde_im_Zug_/de/digital/'>this</a>, <a href='http://leumund.ch/daten-fur-besseren-verkehr-0014403'>this</a> and <a href='http://www.netzwoche.ch/de-CH/News/2012/04/03/Ergebnisse-der-Zuercher-Makeopendatach-Hackdays.aspx'>this</a>. You rock!</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-04-25-socket-dot-io-and-meteor-talks-at-at-jszurich.html</id>
    <link href="https://philippkueng.ch/2012-04-25-socket-dot-io-and-meteor-talks-at-at-jszurich.html"/>
    <title>Socket.io and Meteor Talks at @JSZurich</title>
    <updated>2012-04-25T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>For the april event of <a href='https://twitter.com/jszurich'>@JSZurich</a>, <a href='https://twitter.com/streunerlein'>@streunerlein</a> and i had the honor of talking about <a href='https://socket.io/'>socket.io</a> and the new kid on the block, <a href='https://meteor.com/'>meteor</a>. As you can see the slides and recordings are embedded below. Enjoy. As for the recordings, sorry it's raw, MTS is not the friendliest format.</p><h2 id="socket.io">Socket.io</h2><p><strong>Abstract</strong> - It's a Javascript wrapper library written for Node.js which makes the usage of websockets a lot easier. It also takes care of supporting older browsers with multiple fallbacks. By using socket.io, creating "realtime" applications is a matter of minutes.</p><p><div style="width:654px" id="__ss_12675407"><iframe src="http://www.slideshare.net/slideshow/embed_code/12675407?rel=0" width="654" height="546" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div><br><br><br></p><p><iframe width="654" height="362" src="https://www.youtube.com/embed/ry2fe9os6fc" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="http://www.youtube.com/embed/CW1Y1ct_IRU" frameborder="0" allowfullscreen></iframe></p><h2 id="meteor">Meteor</h2><p><strong>Abstract</strong> - Meteor is an opinionated toolset of common Node.js npm packets and some custom code. Among many things it enforces the use of Fibers, Socket.io and MongoDB both on the server aswell as on the client side.</p><p><script async class="speakerdeck-embed" data-id="4f9724d5947c450022024e02" data-ratio="1.3333333333333333" src="//speakerdeck.com/assets/embed.js"></script><br><br><br></p><p><iframe width="654" height="362" src="http://www.youtube.com/embed/0mplHShxPWA" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="http://www.youtube.com/embed/nqsLYKzAdMQ" frameborder="0" allowfullscreen></iframe></p><p>Here is some explanation on what I said during the talk for those who were not present. I am well aware that I did not sell Meteor as the next big project that everyone has to pick up. The reason is simply that it is really in its early stage of development. Additionally I think it is rather dangerous to sell Meteor as a framework for beginners, since its magic bits hide a huge amount of logic a beginner normally does not need to use in order to build a hello world application. By embracing Meteor the novice programmer does not learn anything about those hidden areas which probably lead to unexpected results here and there. After all distributed systems are hard to build.</p><p>An example for such a use-case is the todos application which comes bundled with meteor. It is nicely done and quite easy to understand, but what happens for instance if 2 users, with a high latency connection to the server, update the same entry at about the same time? Your changes will be reflected immediately on your machine, with the syncing following a few seconds later, and a few seconds later from there you might be surprised to see that your original changes have been written over by the second user. With a traditional stack you would do some locking or at least insert versioned entries, but with MongoDB this is not supported by default. You would be able to implement versioning yourself by using timestamps and inserts for every update but why the additional overhead?</p><p>Just to state it again, the words above do reflect my personal experience when playing with Meteor 2 weeks after its initial appearance in April 2012, and I will be happy to give it another try once it has somewhat matured.</p><p>As for the @JSZurich event, thanks to <a href='https://twitter.com/ikr'>@ikr</a> for hosting us and <a href='https://twitter.com/seldaek'>@seldaek</a> for organizing it.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-03-29-trainsharingapp.html</id>
    <link href="https://philippkueng.ch/2012-03-29-trainsharingapp.html"/>
    <title>TrainsharingApp</title>
    <updated>2012-03-29T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/DSC_4670.jpg" alt="Train in Pfäffikon" /> Sharing a train, something the Swiss twitter community has done for years via the hashtag <a href='https://twitter.com/#!/search/%23trainsharing'>#trainsharing</a> should now be brought to the masses with a dedicated app.</p><p>My goal is to realize the backend as well as various mobile clients with the help of other hackers during the <a href='https://make.opendata.ch'>make.opendata.ch hackathon</a> to show what can be done by leveraging publicly accessible data. And just for the fun of jumping on the buzzword bandwagon, it will be <a href='https://techcrunch.com/2012/03/24/die-solomo-die/'>SoLoMo (social-local-mobile)</a> ;-).</p><h2 id="what_led_to_the_idea">What led to the idea</h2><p>Day in and day out I am commuting back and forth from where I live to Zürich. In order not to see those hours spent commuting as time wasted, you will have to spend it wisely which often times means doing some kind of work. For a programmer that is a piece of cake ;-). However there are times you just want to talk to someone remotely familiar. You could obviously do some kind of creepy stalking and wait outside the train until the very last minute before departure to see if you see someone you know. Chances are you will either find no one or they actually want/have to do work instead of chat with you. So status quo sucks, right? Well could we improve it?</p><h2 id="the_idea">The idea</h2><p>Obviously yes. Let us create a mobile app that allows to checkin to a train and then find conversation-partner-matches via <a href='https://twitter.com'>Twitter</a>, <a href='https://www.facebook.com/'>Facebook</a> and maybe even <a href='https://foursquare.com/'>Foursquare</a>.</p><h2 id="the_user_interface">The User Interface</h2><p>When starting the app for the first time you are using one of those buttons on the login screen to connect to your favourite network and start using the TrainsharingApp.</p><p><img src="/assets/images/trainsharing-login.png" alt="trainsharing-login" /></p><p>The subsequent window you will get is the home screen on which you can enter your commuting route. This will make a call to sbb.ch to get the timetable and save it locally for later reuse. If you have already used this route there is a quick dial button to select your route and then select the departure time on the following view.</p><p><img src="/assets/images/trainsharing-home.png" alt="trainsharing-home" /></p><p>As soon as you have chosen a time, you are automatically checked in to that train-route which will trigger a push notification to users on the same train or users who will share part of your route and with whom you are friends on one of the social networks offered at login. After sending those notifications to friends or receiving one you are able to initiate a Meetup by selecting their name, selecting optional information and tipping the "Meetup" button.</p><p><img src="/assets/images/trainsharing-social.png" alt="trainsharing-social" /></p><h2 id="the_technical_implementation">The Technical Implementation</h2><p>As for the backend, there exists an already scraped static dataset of train lines with their corresponding numbers, eg. S8 18898 and each route (Station to Station, see below). All in all about 230'000 routes which will reside inside a MySQL DB. In case you want to play around with the dataset, here is a <a href='/assets/files/trainsharing_routes.sql'>routes table dump</a>.</p><pre><code>|id|linename|dep&#95;station|dep&#95;time|arr&#95;station|arr&#95;time|
|:-|:-------|:----------|:-------|:----------|:-------|
|1|S2725920|Waldshut|06:24|Koblenz|06:29
|2|S2725920|Koblenz|06:44|Klingnau|06:47
</code></pre><p>For matching friends there will be some kind of NoSQL DB instance since MySQL is not that good at it without creating a lot of table and row overhead. Still needs to be figured out, suggestions are welcome.</p><p>Additionally there will be a join table (routes<i>users, see below) for matching the routes with users. Since the routes</i>users table can fill up quite fast and past data does not need to be held warm, it will be pushed to S3 for later analysis and then cleared every 24 hours.</p><pre><code>|id|routes&#95;id|users&#95;id|start&#95;time|
|:-|:--------|:-------|:---------|
|1|423|234412345|12:03
|2|5122|967512345|14:34
</code></pre><p>So much for the storage part, now over to the API. There will be three endpoints at least, <code>/login</code>, <code>/checkin</code> and <code>/read</code>.</p><p><strong>/login</strong> will be used to send the social network authentication tokens over to the server to allow us to do the bandwith heavy parts. The request should be one of type POST with the credentials in its body, which will give a trainsharingID back as a response. This trainsharingID will then be stored on the client device and used for every single request as a querystring.</p><pre><code>|Key|Value|
|:--|:----|
|network|facebook, twitter or foursquare
|token|network&#95;token
|token&#95;secret|network&#95;token&#95;secret
</code></pre><p><strong>/checkin</strong> is, as the name suggests, the endpoint for when a user wants to check in to a train ride. For clarification, a train ride consists of multiple routes (Station-to-Station) and may also involve switching trains. Requests to <code>/checkin</code> should also be of type POST with the trainsharingID in the URL as follows <code>/checkin?trainsharingID=your&#95;trainsharing&#95;id</code>. As for the POST body, it is the information getting delivered when clicking on the details section for the specific connection timetable on sbb.ch.</p><p><img src="/assets/images/sbb_timetable_screenshot.png" alt="sbb timetable screenshot" /></p><pre><code>|Key|Value|  |Key|Value|
|:--|:----|:-|:--|:----|
|dep&#95;st-1|Siebnen-Wangen|  |dep&#95;st-2|Pfäffikon SZ
|dep&#95;t-1|06:03|  |dep&#95;t-2|06:19
|arr&#95;st-1|Pfäffikon SZ|  |arr&#95;st-2|Zürich HB
|arr&#95;t-1|06:13|  |arr&#95;t-2|06:48
|train&#95;id-1|S2 18220|  |train&#95;id-2|IR 1754
</code></pre><p><strong>/read</strong> will be the only endpoint accessible via a GET request, though it still needs the trainsharingID in the querystring. <code>/read</code> is for manually asking if new overlaps have been found since checking in. The goal however should be that this endpoint is only used for development and new overlaps are sent to the user via PUSH notifications in a production setup.</p><p>Enough with the server stuff, what happens on the <strong>mobile</strong>? -Well, upon first launch of the app the user signs in with one of those social networks which will create an OAuth token and an OAuth token secret which will be sent to the <code>/login</code> endpoint mentioned above. The trainsharingID in the response then gets stored persistently in the application storage.</p><p>Next up is the home screen where the user can enter departure and arrival destination to look for available trains. This will trigger a POST request to sbb.ch from the phone, parsing the response and showing the available options to the user. If a user selects a specific time another GET request will be fired to fetch the details information for that connection whose response gets parsed and sent to the <code>/checkin</code> endpoint.</p><p>If matches already exist, the response to the <code>/checkin</code> POST request will contain users from various networks who are matching the friends criteria. In case none exist yet the response will be empty. In both cases the user will be notified via PUSH if additional matches are made later on.</p><p>Both a proper UI and API endpoints for the meetup functionality still need to be figured out. Maybe it even makes more sense to use their native networks eg. Facebook or Twitter for messaging instead of building yet another Whatsapp clone.</p><p>Well, that is all there is to say about the TrainsharingApp at the moment. Have I missed something? Or do you have a specific suggestion concerning changes, additions, or removal of features?</p><p>In case you are interested in creating a native mobile client besides the one for WindowsPhone, which is already being covered by <a href='https://www.facebook.com/adriankue'>Adrian</a>, let me know either via twitter or the comments below so I can get in touch with you. The same goes for designers too.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-03-18-go.html</id>
    <link href="https://philippkueng.ch/2012-03-18-go.html"/>
    <title>The Go programming language</title>
    <updated>2012-03-18T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a href='https://golang.org/'>Go</a> is a new programming language and sort of a mixture of C, Python, Oberon and other languages. It tries to solve many problems where other languages are failing when deployed on a very large scale, eg. on Googles infrastructure.</p><p>Below are the recordings of last week's joint event by the <a href='https://www.meetup.com/zh-geeks/events/47295912/'>IT geeks Zurich</a> and <a href='https://zurich.gtugs.org/events/go-march-2012'>GTUG Zurich</a>. At this event Luuk van Dijk a staff software engineer at Google who's currently working on the Go compiler and <a href='https://twitter.com/proppy'>Johan Euphrosine</a> a Developer Programs Engineer working on <a href='https://code.google.com/appengine/'>App Engine</a> offered some insights on how Go can be leveraged and what it does internally to do so.</p><p>Also many thanks to the organizer <a href='https://twitter.com/al_maisan'>Muharem Hrnjadovic</a> for making this second amazing IT geeks event possible.</p><p>And without further ado, enjoy the talks below and excuse the Pizza distribution dilemma we luckily had to deal with.</p><p><iframe width="654" height="362" src="https://www.youtube-nocookie.com/embed/wjLK-WMNVgM" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="https://www.youtube-nocookie.com/embed/sAh8x3_RFQE" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="https://www.youtube-nocookie.com/embed/jmQLawO30eA" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="https://www.youtube-nocookie.com/embed/G0ODQcL8Jhk" frameborder="0" allowfullscreen></iframe></p><p><iframe width="654" height="362" src="https://www.youtube-nocookie.com/embed/wRIkSWBRMD8" frameborder="0" allowfullscreen></iframe></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-02-10-podcast-about-data-related-topics.html</id>
    <link href="https://philippkueng.ch/2012-02-10-podcast-about-data-related-topics.html"/>
    <title>Podcast about data related topics?</title>
    <updated>2012-02-10T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/DSC_6377.jpg" alt="Audio Mixer" /></p><p><a href='https://en.wikipedia.org/wiki/Open_data'>OpenData</a>, <a href='https://en.wikipedia.org/wiki/Big_data'>BigData</a>,  Infographics, <a href='https://datavisualization.ch/'>Visualizations</a> and <a href='https://www.guardian.co.uk/news/datablog/2011/jul/28/data-journalism'>Data journalism</a> are all buzz words and movements which started to get quite some traction lately.</p><p>Whilst there are lively ecosystems of blogs around niche topics like visualizations, processing or data journalism there is not enough interdisciplinary communication going on in my opinion.</p><p>Well, how about creating it by interviewing those experts, giving them some airtime and maybe even connect previously unknown scientists, journalists, hackers, politicians and ideators to each other.</p><p>Since I am still toying with the idea there is nothing fixed just yet. The language might be English or German depending on who is in front of the camera. Also if you are interested in being a host or can suggest a person, let me know.</p><p>Would you like to listen to or watch it?</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-02-02-structured-procrastination.html</id>
    <link href="https://philippkueng.ch/2012-02-02-structured-procrastination.html"/>
    <title>Structured Procrastination</title>
    <updated>2012-02-02T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>John Perry:<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>Being a heavy procrastinator myself I agree with <a href='http://www-csli.stanford.edu/~jperry//index.html'>John Perry</a> but I'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're not caring about any of it anymore.</p><p>Positive side effect, you'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>
    <id>https://philippkueng.ch/2012-01-20-opendata-dot-ch-switzerlands-opendata-association.html</id>
    <link href="https://philippkueng.ch/2012-01-20-opendata-dot-ch-switzerlands-opendata-association.html"/>
    <title>OpenData.ch - Switzerland's OpenData Association</title>
    <updated>2012-01-20T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Yesterday, on january 19th, Swiss OpenData enthusiasts and activists have <a href='https://opendata.ch/2012/01/verein-opendata-ch-offiziell-gegrundet-manifest-und-agenda-2012/'>founded the OpenData.ch Association in Bern</a>. It's goal is to bring together citizens, journalists, designers and developers to realize ideas based on publicly available <a href='https://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='https://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're up to create something with OD, whether your a developer or not, reserve march 30th and 31st when the next <a href='https://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='https://datavisualization.ch/events/review-of-switzerlands-first-open-data-camp/'>great summary by datavisualization.ch</a> or read <a href='https://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>
    <id>https://philippkueng.ch/2012-01-17-recovering-from-a-computer-science-education.html</id>
    <link href="https://philippkueng.ch/2012-01-17-recovering-from-a-computer-science-education.html"/>
    <title>Recovering From a Computer Science Education</title>
    <updated>2012-01-17T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>James Hague:<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>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='https://www.codeproject.com/'>codeproject newsletter</a></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-16-why-do-most-programmers-work-so-hard-at-pretending-that-theyre-not-doing-math.html</id>
    <link href="https://philippkueng.ch/2012-01-16-why-do-most-programmers-work-so-hard-at-pretending-that-theyre-not-doing-math.html"/>
    <title>Why do most programmers work so hard at pretending that they’re not doing math?"</title>
    <updated>2012-01-16T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Richard Minerich:<blockquote><p> We work in an environment where hearsay and taste drive change instead of studies and models.  </p></blockquote>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'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're an experienced professional, but it'll probably fail for most of us. That said most of my code to date is dynamically typed because it's just way too comfortable.</p><p>However there's no test that'll cover every single error case on the other side there always will be static and correct formulas.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-15-freemium-please-leave.html</id>
    <link href="https://philippkueng.ch/2012-01-15-freemium-please-leave.html"/>
    <title>Freemium - please leave</title>
    <updated>2012-01-15T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Last december Maciej Ceglowski, founder of pinboard has written a <a href='https://blog.pinboard.in/2011/12/don_t_be_a_free_user/'>post</a> about the fact that all great services which don't charge are very likely going to disappear in the long run.</p><p>Maciej Ceglowski:<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>The reason I'm writing this is that while premium services are making money they'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're obviously not going to tell them that.</p><p>Now after having <a href='https://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='https://wufoo.com/'>Wufoo</a> in the past I thought it'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='https://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'd guess replacing the free plan with one where you'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 <a href='https://twitter.com/romeroabelleira'>@romeroabelleira</a> and give it some thought (translated):<blockquote><p> Dear Advertisers on Spotify, I don't even pay for Spotify, I'm therefore worth nothing to you too. Sorry, Juan  </p></blockquote>And don't waste your time looking for the contact form, I'd just put the e-mail address into the footer for now.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-14-nikon-d4-a-step-into-the-right-direction.html</id>
    <link href="https://philippkueng.ch/2012-01-14-nikon-d4-a-step-into-the-right-direction.html"/>
    <title>Nikon D4 - A step into the right direction</title>
    <updated>2012-01-14T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p>Ten days back Nikon announced their new flagship model, the <a href='https://en.wikipedia.org/wiki/Nikon_D4'>Nikon D4</a>. It'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'd expect. For more details listen to James Banfield below.</p><p><iframe src="https://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="https://vimeo.com/34720376">Dslrnewsshooter video: Nikon D4 - video feature run through</a> from <a href="https://vimeo.com/danchung">Dan Chung</a> on <a href="https://vimeo.com">Vimeo</a>.</p></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's finally able to leave all the proprietary, heavily bloated, vendor specific crap software behind and focus on realizing ideas.</p><p><iframe id="viddler-be28aab5" src="//www.viddler.com/embed/be28aab5/?f=1&offset=0&autoplay=0&disablebranding=0" width="654" height="419" frameborder="0"></iframe></p><p>Checkout the video <a href='https://vimeo.com/34666308'>WHY</a> by <a href='https://www.coreyrich.com/'>Corey Rich</a> below if you want to see what's possible with a D4 presumed you know what you're doing.</p><p><iframe src="https://player.vimeo.com/video/34666308" width="654" height="368" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><p><a href="https://vimeo.com/34666308">WHY - Nikon D4 Release Video</a> from <a href="https://vimeo.com/coreyrich">Corey Rich</a> on <a href="https://vimeo.com">Vimeo</a>.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-12-stop-it-and-get-real.html</id>
    <link href="https://philippkueng.ch/2012-01-12-stop-it-and-get-real.html"/>
    <title>Stop it and get real</title>
    <updated>2012-01-12T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><iframe src="https://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><p>Right now I'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'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'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'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='https://www.swiss-miss.com/2011/12/tony-schwartz-the-myths-of-the-overworked-creative.html'>swiss-miss</a></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-11-a-link-blog-with-octopress.html</id>
    <link href="https://philippkueng.ch/2012-01-11-a-link-blog-with-octopress.html"/>
    <title>A Link-Blog with Octopress</title>
    <updated>2012-01-11T23:59:59+00:00</updated>
    <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='https://mattgemmell.com/'>Matt Gemmell</a> has written an <a href='https://mattgemmell.com/2012/01/07/comments-commentary/'>excellent summary</a> about this, for those of you interested.</p><p>While I'm not sure yet if I'll ever do the same, I started wondering on how to realize something like a Link-Blog with Octopress. Turns out it's pretty easy.</p><p>First modify the <code>article.html</code> inside <code>source/&#95;includes</code> and exchange the lower <code>&lt;h1&gt;</code> part which is responsible for the page view title with an if-else clause.</p><pre class="language-html"><code class="lang-html language-html">&lt;h1 class=&quot;entry-title&quot;&gt;
  {{ &quot;{% if page.ref&#95;url&quot; }} %}
    &lt;a class=&quot;reference&quot; href=&quot;{{ &quot;{{ page.ref&#95;url&quot; }} }}&quot;&gt;{{ &quot;{{ page.title&quot; }} }}&lt;/a&gt;
  {{ &quot;{% else&quot; }} %}
    {{ &quot;{% if site.titlecase&quot; }} %}
      {{ &quot;{{ page.title | titlecase&quot; }} }}
    {{ &quot;{% else&quot; }} %}
      {{ &quot;{{ page.title&quot; }} }}
    {{ &quot;{% endif&quot; }} %}
  {{ &quot;{% endif&quot; }} %}
&lt;/h1&gt;
</code></pre><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><pre class="language-html"><code class="lang-html language-html">{{ &quot;{% if post.ref&#95;url&quot; }} %}
  &lt;link href=&quot;{{ &quot;{{ post.ref&#95;url&quot; }} }}&quot;/&gt;
{{ &quot;{% else&quot; }} %}
  &lt;link href=&quot;{{ &quot;{{ site.url&quot; }} }}{{ &quot;{{ post.url&quot; }} }}&quot;/&gt;
{{ &quot;{% endif&quot; }} %}
</code></pre><p>If you want to create a Link-Blog post now, add <code>ref&#95;url</code> to the markdown file header and Octopress takes care of the rest.</p><p>{% highlight text %} Title: This Awesome Article" date: 2012-01-13 21:20 Comments: true ref_url: https://somesite.com/thisawesomearticle.html This one is really great, check it out. {% endhighlight %}</p><h2 id="alternatives">Alternatives</h2><p>If <a href='https://github.com/mojombo/jekyll/'>Jekyll</a> is too nerdy for you, then please checkout <a href='https://tumblr.com'>tumblr</a> whose philosophy has been based on link-blogging for ages.</p><p>On the otherside if <a href='https://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='https://www.marco.org'>Marco Arment</a> a try. It's also baking your markdown files to flat html ones, but it's written in PHP.</p><p>(Sidenote: PHP and I were never really friends)</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2012-01-10-migrate-from-blogengine-dot-net-to-jekyll.html</id>
    <link href="https://philippkueng.ch/2012-01-10-migrate-from-blogengine-dot-net-to-jekyll.html"/>
    <title>Migrate from BlogEngine.NET to Jekyll</title>
    <updated>2012-01-10T23:59:59+00:00</updated>
    <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='https://octopress.org'>Octopress</a> in my case, coming from <a href='https://dotnetblogengine.net/'>BlogEngine</a> land. I'd recommend you first have a look at <a href='https://philippkueng.ch/migrate-the-blogenginenet-commenting-system-over-to-disqus.html'>moving your comments to disqus</a>, before following this post.</p><h2 id="getting_the_%22old_data%22">Getting the "old data"</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 id="setup_octopress">Setup Octopress</h2><p>Octopress? - Isn'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='https://octopress.org/docs/setup/'>Octopress Setup tutorial</a>. If your working on an OS X machine you might want to consider installing <a href='https://pow.cx'>POW</a> since it'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><pre class="language-bash"><code class="lang-bash language-bash">$ ln -s /Users/yourUsername/Documents/octopress myapp
</code></pre><p>Now open <a href='http://myapp.dev'>http://myapp.dev</a> in your browser to check if it's working so far.</p><h2 id="import_the_%22old_data%22">Import the "old data"</h2><p>Create a folder <code>&#95;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><pre class="language-bash"><code class="lang-bash language-bash">$ cd octopress/source
$ mkdir &#95;import
$ cd &#95;import
$ wget https://github.com/philippkueng/philippkueng.github.com/blob/30ef1570f06d33938b18d5eee7767d6641b9a779/source/&#95;import/blogml.rb --no-check-certificate
</code></pre><p>This import script was actually created by @derekmorrison to assist him by <a href='https://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<i>Data/files folder to their respective folders (images or files) by keeping the path structure intact. Means, that App</i>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><pre class="language-bash"><code class="lang-bash language-bash">$ ruby -r './&#95;import/blogml.rb' -e 'Jekyll::BlogML.process&#40;&quot;BlogML.xml&quot;&#41;'
</code></pre><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><pre class="language-bash"><code class="lang-bash language-bash">$ cd ..
$ bundle exec rake generate
</code></pre><h2 id="deploying">Deploying</h2><p>There's already documentation available on how to <a href='https://octopress.org/docs/deploying/'>deploy Octopress to various hosting platforms</a>. Since you'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 id="fixes">Fixes</h2><p>We're not quite done yet. Log into your <a href='https://www.google.com/webmasters/'>Google</a> and <a href='https://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='https://feedburner.com/'>Feedburner</a> account, log in and replace feeds.axd with atom.xml.</p><p>Finally fix the <a href='https://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><h2 id="update_-_14th_april_2014">Update - 14th april 2014</h2><p><a href='https://twitter.com/eduncan911'>Eric Duncan</a> migrated his CommunityServer blog to Jekyll too by modifying the <a href='#comment-1327752341'>BlogML import script (see comment below)</a>. For further details on how he did the migration, head on over to <a href='https://eduncan911.com/software/please-put-your-blog-under-source-control.html'>his blog</a> where he also provides a couple of ethical reasons why one should move to a public and versioned blog.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-11-11-taking-care-of-relationships-is-not-outsourceable.html</id>
    <link href="https://philippkueng.ch/2011-11-11-taking-care-of-relationships-is-not-outsourceable.html"/>
    <title>Taking care of relationships is not outsourceable</title>
    <updated>2011-11-11T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>A few days ago a fellow blogger nearby, <a         href="http://webwirksam.ch/geburtsanzeigen-tool-fur-weniger-stress&ndash;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><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><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><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><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><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-10-23-makeopendatach-2011.html</id>
    <link href="https://philippkueng.ch/2011-10-23-makeopendatach-2011.html"/>
    <title>MAKE.OpenData.ch 2011</title>
    <updated>2011-10-23T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><a href="https://www.flickr.com/photos/agentcmos/6203132361/"         title="MakeOpenData Camp 2011 @ EPFL by Philipp Küng, on Flickr"><img             src="https://farm7.static.flickr.com/6153/6203132361<i>a01dca40de</i>b.jpg"             alt="MakeOpenData Camp 2011 @ EPFL"></a></p></p><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><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><p><p>After the kickoff <a href="https://twitter.com/#!/florin_iorganda">Florin</a>, <a         href="https://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><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><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><p><p><a href="https://www.flickr.com/photos/agentcmos/6203706302/"         title="MakeOpenData Camp 2011 @ EPFL by Philipp Küng, on Flickr"><img             src="https://farm7.static.flickr.com/6153/6203706302<i>dbd6f92b8e</i>b.jpg"             alt="MakeOpenData Camp 2011 @ EPFL"></a></p></p><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="https://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><p><p><img src="/assets/images/2011/10/swissmap_screenshot.jpg" alt="SwissMap Screenshot" /></p></p><p><p>[ <a href="https://swissmap.bitfondue.com/">live</a>, <a
        href="https://makeopendata.ch/doku.php?id=project:swissmap">wiki</a>, <a
        href="https://github.com/philippkueng/swissmap">source</a> ]</p></p><p><p>I hereby thank the sponsors, hackers and especially the team behind the <a         href="https://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><p><p><strong>Amazing MAKE.OpenData projects others have built</strong></p></p><p><ul>     <li>green-street [ <a href="https://opendata.utou.ch/lausanne/">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:green_street">wiki</a>, <a
            href="https://github.com/loleg/green-street">source</a> ]</li>     <li>gesagt-im-parlament.ch [ <a href="https://gesagt-im-parlament.ch/">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:parlament">wiki</a>, <a
            href="https://github.com/gwrtheyrn/gesagt-im-parlament.ch">source</a> ]</li>     <li>politnetz visualization [ <a href="https://www.riaforweb.com/BTCPOLIT/">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:politnetz">wiki</a> ]</li>     <li>Swiss Army Contaminated Sites [ <a
            href="https://lab.interactivethings.com/swiss-army-contaminated-sites/">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:swiss_army_contaminated_sites">wiki</a> ]</li>     <li>Where Did My Taxes Go [ <a href="https://wheredidmytaxesgo.nelm.io/">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:wheredidmytaxesgo">wiki</a>, <a
            href="https://github.com/Seldaek/wheredidmytaxesgo">source</a> ]</li>     <li>openletten [ <a href="https://www.tamberg.org/makeopendata/2011/jquery.html">live</a>, <a
            href="https://makeopendata.ch/doku.php?id=project:openletten">wiki</a>, <a
            href="https://bitbucket.org/tamberg/makeopendata/overview">source</a> ]</li> </ul></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-09-19-photoblog-sfo-2-yvr.html</id>
    <link href="https://philippkueng.ch/2011-09-19-photoblog-sfo-2-yvr.html"/>
    <title>Photoblog - SFO 2 YVR</title>
    <updated>2011-09-19T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a href="https://sfo2yvr.github.com"><img src="/assets/images/2011/9/sfo2yvr-images.jpg" alt="" /></a></p><p><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><p><p>While I did exactely that for my last vacation in Canada, we were handling it differently this time.</p></p><p><p>During the <a href="https://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="https://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="https://git-scm.com">git</a> and <a         href="https://pages.github.com">github pages</a> that is cake.</p></p><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><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-08-18-agile-livin-shipped.html</id>
    <link href="https://philippkueng.ch/2011-08-18-agile-livin-shipped.html"/>
    <title>Agile Livin' - shipped</title>
    <updated>2011-08-18T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img src="/assets/images/2011/8/agilelivin_theme_picture.jpg" alt="agilelivin theme picture" /></p></p><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="https://twitter.com/#!/Weegee/status/66756938066706432">&ldquo;The only way out is through.&rdquo; &mdash;         Winston Churchill</a>.</p></p><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><p><p>About four weeks ago my friend <a href="https://zurcherart.com">Steve</a>, with whom I co-founded <a         href="https://bitfondue.com">bitfondue</a>, sent out a <a         href="https://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="https://github.com/agilelivin/agilelivin.github.com">blog</a> using <a         href="https://github.com/mojombo/jekyll/">Jekyll</a> (we are nerds what do you expect? Wordpress.) and registered     the <a href="https://agileliv.in">domain</a> within the first week after initiating the adventure.</p></p><p><p>Enough history, now to the meat, if you want to have 30 minutes of LOL I highly recommend listening to <a         href="https://agileliv.in/2011/07/29/cluttering-the-internet.html">Iteration 1</a> otherwise give <a         href="https://agileliv.in/2011/08/06/the-agile-manifesto.html">Iteration 2</a> or <a         href="https://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="https://agileliv.in">agilelivin</a>.</p></p><p><object height="81" width="100%">     <param name="movie"         value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21189386&amp;show<i>comments=false&amp;auto</i>play=false&amp;color=0A71B2">     </param>     <param name="allowscriptaccess" value="always">     </param> <embed allowscriptaccess="always" height="81"         src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21189386&amp;show<i>comments=false&amp;auto</i>play=false&amp;color=0A71B2"         type="application/x-shockwave-flash" width="100%"></embed> </object></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-25-procrastination-is-so-yesterday.html</id>
    <link href="https://philippkueng.ch/2011-07-25-procrastination-is-so-yesterday.html"/>
    <title>Procrastination is so yesterday</title>
    <updated>2011-07-25T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>After writing the last post about the <a         href="/2011-07-24-blame-the-lizard-brain-but-do-it!.html">Lizard Brain</a> I gave myself another     episode of <a href="https://5by5.tv/b2w">Back to Work</a> it was <a href="https://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><p><p>It works as following, 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><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-24-blame-the-lizard-brain-but-do-it!.html</id>
    <link href="https://philippkueng.ch/2011-07-24-blame-the-lizard-brain-but-do-it!.html"/>
    <title>Blame the Lizard Brain. But do it!</title>
    <updated>2011-07-24T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Today I was listening to <a href="https://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="https://5by5.tv/b2w/1">episode</a> they were talking about excuses one might have for not shipping all     those unfinished projects.</p></p><p><p>Among those things standing in the way of letting us succeed with our ambition is the so called Lizard Brain (<a         href="https://en.wikipedia.org/wiki/Amygdala">Amygdala</a>). According to <a         href="https://sethgodin.typepad.com">Seth Godin</a> it only cares about four things: food, reproduction, safety     and of course itself.</p></p><p><iframe src="https://player.vimeo.com/video/5895898?title=0&amp;byline=0&amp;portrait=0&amp;color=e91c6b" width="655"     height="491" frameborder="0"></iframe></p><p><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><p><p>Like with every other unwanted behaviour applying the <a         href="https://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><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-21-commit-early-and-often.html</id>
    <link href="https://philippkueng.ch/2011-07-21-commit-early-and-often.html"/>
    <title>Commit early and often</title>
    <updated>2011-07-21T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/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="https://github.com/philippkueng/hammyoncoffeine">hammyoncoffeine</a>.</p></p><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><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><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><p><p>Sadly I only compressed ready-to-deploy pakets and yes they're are already compiled. So much for that.</p></p><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-10-deploy-blogenginenet-on-ubuntu-1004-lts.html</id>
    <link href="https://philippkueng.ch/2011-07-10-deploy-blogenginenet-on-ubuntu-1004-lts.html"/>
    <title>Deploy BlogEngine.NET on Ubuntu 10.04 LTS</title>
    <updated>2011-07-10T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><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><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="https://blogengine.codeplex.com/">BlogEngine</a> on Ubuntu.</p></p><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="https://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><p><p>Now to the installation process. Take a clean install of <a         href="https://www.ubuntu.com/download/server/download">Ubuntu 10.04 LTS</a> either running in the cloud or     virtualized on your local machine.</p></p><p><p>Then go through the steps below to execute the BlogEngine.NET installation script.</p></p><pre class="language-bash"><code class="lang-bash language-bash"># Login to your VM.
ssh your&#95;username@your&#95;ip

# Gain root privileges.
sudo su

# Go to the root home directory.
cd

# Download the BlogEngine.NET install script
wget http://bit.ly/blogengine&#95;install

# Set Execute-Permissions on the install file.
chmod +x blogengine&#95;install

# Start the setup by executing the installation script.
./blogengine&#95;install
</code></pre><p><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></p><pre class="language-bash"><code class="lang-bash language-bash"># Command to get the VMs IP when logged in to the server.
$ ifconfig eth0
</code></pre><p><p>Congratulations on not relying on proprietary software anymore.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-06-a-mashup-is-not-a-blog.html</id>
    <link href="https://philippkueng.ch/2011-07-06-a-mashup-is-not-a-blog.html"/>
    <title>A Mashup is not a Blog</title>
    <updated>2011-07-06T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img src="/assets/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><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><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><p><p>Because I think, <strong>Quality is not measured in Quantity</strong>.</p></p><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></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-07-05-migrate-the-blogenginenet-commenting-system-over-to-disqus.html</id>
    <link href="https://philippkueng.ch/2011-07-05-migrate-the-blogenginenet-commenting-system-over-to-disqus.html"/>
    <title>Migrate the BlogEngine.NET commenting system over to Disqus</title>
    <updated>2011-07-05T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2011/7/DSC_6717.jpg" alt="comments" /></p><p>Offloading comments to a third party, namely <a href='https://disqus.com/'>disqus</a>, is the initial step I'll take for migrating my current blog to a static alternative called <a href='https://github.com/mojombo/jekyll/'>Jekyll</a>. But more on my decision in a later post. Let'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't be able index them which basically means users won'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='https://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'll need to extract the existing comments from your blog. For doing so we'll use the <a href='http://blog.prabir.me/files/2010/5/DisqusUploaderWithBlogEngineExtensions.zip'>CommentExporter BlogEngine Extension</a> by <a href='https://twitter.com/prabirshrestha'>@prabirshrestha</a>. 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're encoded I strongly suggest rewrite them into their UTF-8 equivalent, otherwise they're getting messed up by disqus.</p><p>Now go ahead and create a disqus account for your blog if you haven't already.</p><p>Let'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><pre class="language-javascript"><code class="lang-javascript language-javascript">var disqus&#95;url = '...';
</code></pre><p>and add the line</p><pre class="language-javascript"><code class="lang-javascript language-javascript">var disqus&#95;shortname = 'fill in your disqus domain username';
</code></pre><p>The reason for this change is the following: Because we'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're able to change the moderating system inside the comments tab of the BlogEngine administration dashboard to <strong>Moderated by Disqus</strong>. Now don'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're enabling comments for pages and you want the pretty urls for them too you'll need to apply the same modifications for page.aspx as we did with post.aspx.</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-04-17-4sqday-2011-in-zurich.html</id>
    <link href="https://philippkueng.ch/2011-04-17-4sqday-2011-in-zurich.html"/>
    <title>4sqday 2011 in Zürich</title>
    <updated>2011-04-17T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><a title="DSC_6409.jpg by Philipp K&uuml;ng, on Flickr" href="https://www.flickr.com/photos/agentcmos/5627926784/"><img src="https://farm6.static.flickr.com/5061/5627926784_82eed0c6bd_b.jpg" alt="DSC_6409.jpg" /></a></p> <p>Wie bereits letztes Jahr ruf foursquare wiederum gestern alle Checker und Checkerinnen auf, sich f&uuml;r einmal wirklich dort aufzuhalten wo eingecheckt wird.<br />(Ja, ich meine die <a href="https://digitalaffairs.at/2010/09/08/veranstaltungstipp-der-woche-k2-besteigung-samt-swarm-badge/">Super Swarm Badgej&auml;ger vom K2</a>)</p> <p><strong>foursquare? Feiertag? #wtf</strong> - dann schau dir mal <a href="https://de.wikipedia.org/wiki/Foursquare">diese Seite</a> an, danach <a href="https://4sqday.com">diese</a>&nbsp;und schliesslich <a href="https://www.foursquareblog.ch/new-yorks-burgermeister-bloomberg-erklart-den-16-april-offiziell-zum-foursquare-day/">diese</a>.</p> <p><strong>Tweete - und sie kommen #HowCoolIsThat</strong> -&nbsp;Nicht nur aus Z&uuml;rich (<a href="https://twitter.com/bindermichi">@bindermichi</a>, <a href="https://twitter.com/pigoni">@pigoni</a>, <a href="https://twitter.com/mettlerd">@mettlerd</a>, <a href="https://twitter.com/zurcherart">@zurcherart</a>, <a href="https://twitter.com/auge2u">@auge2u</a>) reisten sie an, sondern <a href="https://twitter.com/cydoniashop">@cydoniashop</a> aus Graub&uuml;nden und <a href="https://twitter.com/timbo_SF">@timbo_SF</a>, <a href="https://twitter.com/hoomygumb">@hoomygumb</a> mit Diana aus unserem n&ouml;rdlichen Nachbarland, Deutschland.<br />Das Wetter war eher Nerd-Untauglich, wie mir mein roter Nacken zu verstehen gab, was uns allerdings einen sch&ouml;nen Nachmittag auf der Terrasse der <a href="https://foursquare.com/venue/18994574">Caf&eacute; Des Amis</a> erm&ouml;glichte.</p> <p>Neben den obligaten Gespr&auml;chen &uuml;ber Badges, Follower etc. ging's gestern auch um Edellakritze aus D&auml;nemark, Medizinische Maschinen, K&uuml;nstlernamen, Rechtslagen rund um die IT und nicht zuletzt um den Kampf zwischen Python und Ruby. (aka. Whitespace vs. Code)</p> <p>Alles in allem ein wundervoller Tag, den ich n&auml;chstes Jahr, oder allenfalls auch fr&uuml;her schon, gerne wiederholen m&ouml;chte. Vielleicht klappt's dann auch mit der <a href="https://twitpic.com/4li0ia">Reservationskarte</a>.</p> <p>Danke f&uuml;r's kommen.</p> <p><a title="DSC_6412.jpg by Philipp K&uuml;ng, on Flickr" href="https://www.flickr.com/photos/agentcmos/5627346681/"><img src="https://farm6.static.flickr.com/5268/5627346681_e01334dcf3_b.jpg" alt="DSC_6412.jpg" /></a></p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2011-01-20-hacking-for-fun-and-profit.html</id>
    <link href="https://philippkueng.ch/2011-01-20-hacking-for-fun-and-profit.html"/>
    <title>Hacking for fun and profit</title>
    <updated>2011-01-20T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p style="text-align:center;"><a href="https://twitter.com/#!/yabadabidu/status/24911191532896256"><img             src="/assets/images/2011/1/Screen+shot+2011-01-14+at+14.32.56.png" /></a></p> <p style="text-align:center;"><a href="https://yfrog.com/h8qp9nj"><img src="/assets/images/2011/1/qp9n.jpg" alt="" /></a></p> <p>At the last&nbsp;<a href="https://techup.ch/98/webtuesday-zurich-lightning-talks">#webtuesday</a>, <a         href="https://twitter.com/zurcherart">Steve</a> and I had the opportunity to talk about the 2 day Hackathon we     held during the christmas break. (slides below)</p> <p>If you want to make a hackday yourself be warned that:</p> <ul>     <li>Setting up your environment (developer and production server) will take you much longer that you expect at the         beginning. (took as about half a day)</li>     <li>Keep in mind that working with new technology (especially if you're doing a hackday to learn something new)         might be very cumbersome at the beginning.&nbsp;</li>     <li>Apart from the lack of knowledge you might have, there can be some delays trying to implement third party         libraries (which might contain bugs themselves)</li>     <li>To keep the team (or just yourself) focused we found it very useful to have a fixed deadline. Sometimes         accountability might already be sufficient.</li>     <li>Before you make your newly developed service public make sure you already have a hosting solution that allows         you to scale if demand suddenly increases, furthermore be knowledgeable about where your data gets stored and         who can access it. (remove all those "password" passwords at least)</li> </ul> <div id="__ss_6561530" style="width: 655px;">     <object id="__sse6561530" width="655" height="547">         <param name="movie"             value="https://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webtuesdaypresentation-110114071424-phpapp01&amp;stripped_title=hacking-for-fun-and-profit&amp;userName=Agentcmos" />         <param name="allowFullScreen" value="true" />         <param name="allowScriptAccess" value="always" /><embed type="application/x-shockwave-flash" width="655"             height="547"             src="https://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webtuesdaypresentation-110114071424-phpapp01&amp;stripped_title=hacking-for-fun-and-profit&amp;userName=Agentcmos"             name="__sse6561530" allowscriptaccess="always" allowfullscreen="true"></embed>     </object> </div> <p>At the end of the talk I demoed a short <a         href="https://github.com/philippkueng/nodejs-mongodb-twitter-backup">script to save tweets to a mongoDB database         (you'll find the according source on github)</a>.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-09-07-how-to-reenable-the-explorer-jump-list-on-windows-7.html</id>
    <link href="https://philippkueng.ch/2010-09-07-how-to-reenable-the-explorer-jump-list-on-windows-7.html"/>
    <title>How to reenable the explorer jump list on Windows 7</title>
    <updated>2010-09-07T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/9-7-2010%202-24-21%20PM.png" /> <p>From one day to the other my pinned favorites in the explorer jump list were gone, and with it my workflow. </p> <p>In order to fix the mess, open up explorer, insert the path below and press enter.</p></p><pre><code>%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations
</code></pre><p><p><img src="/assets/images/9-7-2010%203-07-11%20PM.png" /></p> <p>As a next step delete all the files inside this folder. Restart your computer. The jump list will now empty but it     should work again.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-08-12-google-killer-des-eigenen-fortschritts.html</id>
    <link href="https://philippkueng.ch/2010-08-12-google-killer-des-eigenen-fortschritts.html"/>
    <title>Google - Killer des eigenen Fortschritts</title>
    <updated>2010-08-12T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a title="Jet Engine by wwarby, on Flickr" href="https://www.flickr.com/photos/wwarby/4782920540/" ;=";"><img         alt="Jet Engine" src="https://farm5.static.flickr.com/4135/4782920540<i>1fc6a1a0dd</i>b.jpg" ;=";" /></a> <p>Das Titelbild ist von <a href="https://www.flickr.com/photos/wwarby">wwarby</a> und steht unter <a         href="https://creativecommons.org/licenses/by/2.0/">CC-BY 2.0</a>.</p> <p><strong>Google’s Irrfahrt</strong> <br />Es werden zu diesem Zeitpunkt wohl alle Wissen, dass Google das Wave Projekt     offiziell für beendet erklärt hat. An dieser Stelle lässt sich streiten ob wirklich die vermeintlich wenigen Nutzer,     oder ein Entscheider in der Chefetage dem innovativen Produkt den Todesstoß verpasste. <br />Ähnlich verwirrt agiert     Google mit ihrem Hosting Angebot, der AppEngine. Die Sprachen Python und Java sind vielen Programmierern ein     Begriff, zudem ist die angebotene Datenbank auf BigTable aufgebaut und somit schnell und gut skalierbar. Zu guter     letzt wird das Paket AppEngine mit vielen APIs ausgestattet die dem Entwickler wiederum mögliche Sorgen abnehmen     können. Klingt nach einem Programmierer Traum, oder?</p> <p><strong>Gratis was will man mehr?</strong> <br />Um Unternehmen dazu zu bewegen ihre Software auf die Google Cloud     Plattform zu migrieren, wird zusätzlich eine gratis Quota angeboten. Bei Projekten mit geringer Nutzung und     Anforderungen können daher durchaus Seiten mit finanziellem Nutzen entstehen ohne, dass dafür selbst monetäre     Ressourcen benötigt werden.</p> <p><strong>Der Teufel steckt im Detail</strong> <br />Die Limitierungen der Plattform treten teilweise erst während der     Entwicklung ans Tageslicht. Beispielsweise ist die Datenbank durchaus performant, erlaubt allerdings nicht mehr als     1000 Einträge pro Entity (quasi Tabelle bei einer sonst üblichen relationalen Datenbank) zu speichern und stellt     sich somit für viele Projekte als untauglich heraus. Ein weiterer Punkt ist die 30 Sekunden Regel, die eine Seite     vom Server bekommt, bis der den jeweiligen Prozess stoppt. Für etwas aufwendigere Datenverarbeitung oder laden einer     externen Ressource lässt sich AppEngine somit auch nicht wirklich einsetzen.</p> <p><strong>Was jetzt?</strong> <br />An dieser Stelle frage ich mich, sollen wir uns neben der Lösung des eigentlichen     Problems (des Programmierens) zusätzlich den Kopf zerbrechen wie die jeweilige Logik an die komplett verschiedene     Umgebung angepasst werden kann, und uns womöglich sogar einem massiven Vendor-Lock-In unterwerfen oder von Beginn an     auf eigens konfigurierte virtuelle Server setzen? </p> <p>Habt ihr auch schon Erfahrungen mit AppEngine oder ähnlichen Anbietern gemacht? Auf welches Pferd habt ihr     schlussendlich gesetzt?</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-07-30-good-bye-failwhale.html</id>
    <link href="https://philippkueng.ch/2010-07-30-good-bye-failwhale.html"/>
    <title>good bye failwhale</title>
    <updated>2010-07-30T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><object width="654" height="491">     <param name="flashvars"         value="offsite=true&lang;=en-us&amp;page<i>show</i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157624489307725%2Fshow%2F&amp;page<i>show</i>back<i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157624489307725%2F&amp;set</i>id=72157624489307725&amp;jump_to=">     </param>     <param name="movie" value="https://www.flickr.com/apps/slideshow/show.swf?v=71649">     </param>     <param name="allowFullScreen" value="true">     </param><embed type="application/x-shockwave-flash" src="https://www.flickr.com/apps/slideshow/show.swf?v=71649"         allowFullScreen="true"         flashvars="offsite=true&lang=en-us&page<i>show</i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157624489307725%2Fshow%2F&page<i>show</i>back<i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157624489307725%2F&set</i>id=72157624489307725&jump_to="         width="654" height="491"></embed> </object> <p>Der failwhale, das Twitter Maskottchen welches jeweils bei Problemen mit dem Dienst auftaucht, entstand für das <a         href="https://twittboat.wordpress.com/">#twittboat</a> innerhalb von 4 Tagen mit viel Zeitung, Kleister und der     Hilfe meiner Mutter (habe 2 linke Hände ;)</p> <p>Skeptisch ob der Hut nicht doch etwas zu geeky ist, erschien ich mit dem Wal im eigens angefertigten <a         href="https://www.flickr.com/photos/agentcmos/4843192966/in/set-72157624489307725/">Twitterbag</a> auf der     Rudolf-Brun Brücke. Glücklicherweise freuten sich die Twittboater aber über das Maskottchen, was auf etlichen <a         href="https://www.flickr.com/groups/twittboat/pool/">Bildern des #twittboat</a> zu sehen ist.</p> <img     title="failwhale-ebay-auktion" alt="failwhale-ebay-auktion" src="/assets/images/failwhale-ebay-auktion.png" /> <p>Um den failwhale Hype positiv zu nutzen wurde dieser, wie im Beitrag <a         href="/2010-07-09-twittboat-2010.html">#twittboat 2010</a> erwähnt, auf Ebay versteigert um     damit Gutes zu tun. Dank zahlreichen Helferinnen und Helfern kletterte der Preis innerhalb einiger Tage auf 51     Franken die nun der Gruppe <a href="https://www.kiva.org/team/swisstweets">swisstweets</a> auf <a         href="https://www.kiva.org/">Kiva</a> zugute kommen.</p> <p>An dieser Stelle ein grosses Dankeschön an die Gewinnerin der Wal-Auktion <a         href="https://twitter.com/monah">@monah</a> (<a href="https://monah.ch/">Blog</a>). Ebenfalls danke den     zahlreichen Mitbieterinnen und Mitbietern, sowie den Helfern die, die failwhale Tweets aktiv Retweetet haben.</p> <p>Unten: Das neue Zuhause des #failwhale bei <a href="https://twitter.com/brack_ch">@brack_ch</a> – Bild von @monah zur     Verfügung gestellt.</p> <a     title="das neue zuhause des #failwhale bei @brack_ch - danke an den creator @philippkueng by monah.ch, on Flickr"     href="https://www.flickr.com/photos/48550088@N05/4819949289/"><img         alt="das neue zuhause des #failwhale bei @brack_ch - danke an den creator @philippkueng"         src="https://farm5.static.flickr.com/4079/4819949289<i>07081ee66c</i>z.jpg" /></a></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-07-21-binare-firmen-sind-erfolgreicher.html</id>
    <link href="https://philippkueng.ch/2010-07-21-binare-firmen-sind-erfolgreicher.html"/>
    <title>Binäre Firmen sind erfolgreicher</title>
    <updated>2010-07-21T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Es ist durch Studien erwiesen dass Menschen mit weniger Auswahl durchweg zufriedener sind. Anstatt sich zwischen 100     Zahnpasta Sorten zu entscheiden greift der Grossteil der Konsumenten zu dem im TV beworbenen Markenprodukt oder der     Sorte die schon seit Ewigkeiten verwendet wird. Der Grund für diese Käufer Reaktion unterliegt dem Gedanken, dass     sich Menschen nicht gerne Entscheiden und falls sie dies doch tun müssen, sie am glücklichsten sind bei möglichst     wenigen Optionen.</p> <p><strong>“keep it simple”</strong> <br />Ich denke in diesem Gebiet hat Apple wissentlich oder per Zufall den     richtigen Weg gefunden. So muss beispielsweise bei einer Neuanschaffung eines Macbook lediglich zwischen 3 Grössen     entschieden werden. Nach dem Klick auf Kaufen und dem Start des Bestellvorgangs werden erst die verschiedensten     weiteren Konfigurationsoptionen angezeigt wobei wiederum nur zwischen einigen wenigen entschieden werden kann. So     ist es Apple möglich eine gewaltige Palette von Optionen abzudecken ohne dass sich der geneigte Käufer bereits im     Vorfeld zwischen 20 unterschiedlichen Varianten zu entscheiden hat.</p> <p><strong>Die Schattenseite der Entscheidungsfreiheit</strong> <br />Ich tue mich schwer, es zu sagen, aber das negativ     Beispiel par excellence ist in diesem Fall die Firma Microsoft mit den unendlich differenzierten Windows und Office     Versionen bei denen sich der Kunde bereits beim Kauf im klaren sein muss was im Laufe der Nutzung alles gebraucht     wird. Einfach nur #epic #fail.</p> <p><strong>Alles in allem, Entscheidungen werden nie leichter, der Fragende kann aber alles daran setzten damit sie uns         leichter erscheinen.</strong></p> <p>Das folgende <a href="https://www.ted.com/">TED</a> Video zeigt eine Präsentation von Barry Schwartz der genau diesen     Entscheidungsüberfluss thematisiert.</p> <object width="654" height="515">     <param name="movie" value="https://www.youtube.com/v/VO6XEQIsCoM&amp;hl=en_US&amp;fs=1">     </param>     <param name="allowFullScreen" value="true">     </param>     <param name="allowscriptaccess" value="always">     </param><embed src="https://www.youtube.com/v/VO6XEQIsCoM&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash"         allowscriptaccess="always" allowfullscreen="true" width="654" height="516"></embed> </object></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-07-19-qdds-aka-quer-durch-die-schweiz-mit-bireweich.html</id>
    <link href="https://philippkueng.ch/2010-07-19-qdds-aka-quer-durch-die-schweiz-mit-bireweich.html"/>
    <title>#qdds - aka. Quer durch die Schweiz mit @bireweich</title>
    <updated>2010-07-19T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Als am <a href="https://twtvite.com/twuplu3">#twuplu</a> auskam, dass das GA von <a         href="https://twitter.com/bireweich">@bireweich</a> auslaufen würde, zögerten wir nicht lange und machten uns am</p><ol><li>Juli auf den Weg quer durch die Schweiz (#qdds). Das Ziel war nicht möglichst weit zu fahren, sondern möglichst    viele Twitterer und Blogger spontan auf dem Weg zu treffen.</p></li></ol><p><p>So trafen wir uns um 7.45 in Thalwil und setzten den ersten Tweet in die Welt: </p> <!-- https://twitter.com/bireweich/status/18415363542 --> <style type='text/css'>     .bbpBox18415363542 {         background: url(https://a1.twimg.com/profile<i>background</i>images/57099250/Kopie<i>von</i>birne-t9553.jpg) #000000;         padding: 20px;     }</p><pre><code>p.bbpTweet {
    background: #fff;
    padding: 10px 12px 10px 12px;
    margin: 0;
    min-height: 48px;
    color: #000;
    font-size: 18px !important;
    line-height: 22px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px
}
p.bbpTweet span.metadata {
    display: block;
    width: 100%;
    clear: both;
    margin-top: 8px;
    padding-top: 12px;
    height: 40px;
    border-top: 1px solid #fff;
    border-top: 1px solid #e6e6e6
}
p.bbpTweet span.metadata span.author {
    line-height: 19px
}
p.bbpTweet span.metadata span.author img {
    float: left;
    margin: 0 7px 0 0px;
    width: 38px;
    height: 38px
}
p.bbpTweet a:hover {
    text-decoration: underline
}
p.bbpTweet span.timestamp {
    font-size: 12px;
    display: block
}</code></pre><p></style> <div class='bbpBox18415363542'>     <p class='bbpTweet'>Quer durch die Schweiz mit @<a class="tweet-url username" href="https://twitter.com/phillipkueng"             rel="nofollow">phillipkueng</a>! Wer tauscht mit uns in der Region Zürich Gipfeli gegen Kaffee? <a             href="https://twitter.com/search?q=%23qdds" title="#qdds" class="tweet-url hashtag"             rel="nofollow">#qdds</a><span class='timestamp'><a title='Tue Jul 13 05:52:35 +0000 2010'                 href='https://twitter.com/bireweich/status/18415363542'>less than a minute ago</a> via <a                 href="https://twitter.com/" rel="nofollow">Twitter for iPhone</a></span><span class='metadata'><span                 class='author'><a href='https://twitter.com/bireweich'><img                         src='https://a3.twimg.com/profile<i>images/1074233751/image</i>normal.jpg' /></a><strong><a                         href='https://twitter.com/bireweich'>Danny</a></strong><br />bireweich</span></span></p> </div> <!-- end of tweet --><p><p><a title="Apple Store an der Bahnhofstrasse in Zürich by Philipp Küng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4805141408/"><img alt="Apple Store an der Bahnhofstrasse in Zürich"             src="https://farm5.static.flickr.com/4135/4805141408<i>1b03340c61</i>b.jpg" /></a></p></p><p><p>Da uns gerade niemand Antwortete begaben wir uns nach Zürich in den Apple Store, was btw. mein erster Besuch in der     Höhle des Löwen war. Nachdem wir alle möglichen Gerätschaften ausprobierten bewegten wir uns Richtung Hauptbahnhof     weiter, lustigerweise dauerte es nicht lange bis sich das #qdds Team im Dataquest befand mit einem iPad in der Hand     am twittern. </p> <!-- https://twitter.com/philippkueng/status/18421088823 --> <style type='text/css'>     .bbpBox18421088823 {         background: url(https://s.twimg.com/a/1279047709/images/themes/theme1/bg.png) #9ae4e8;         padding: 20px;     }</p><pre><code>p.bbpTweet {
    background: #fff;
    padding: 10px 12px 10px 12px;
    margin: 0;
    min-height: 48px;
    color: #000;
    font-size: 18px !important;
    line-height: 22px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px
}
p.bbpTweet span.metadata {
    display: block;
    width: 100%;
    clear: both;
    margin-top: 8px;
    padding-top: 12px;
    height: 40px;
    border-top: 1px solid #fff;
    border-top: 1px solid #e6e6e6
}
p.bbpTweet span.metadata span.author {
    line-height: 19px
}
p.bbpTweet span.metadata span.author img {
    float: left;
    margin: 0 7px 0 0px;
    width: 38px;
    height: 38px
}
p.bbpTweet a:hover {
    text-decoration: underline
}
p.bbpTweet span.timestamp {
    font-size: 12px;
    display: block
}</code></pre><p></style> <div class='bbpBox18421088823'>     <p class='bbpTweet'>...was der @<a class="tweet-url username" href="https://twitter.com/bireweich"             rel="nofollow">bireweich</a> kann, kann ich schon lange... Tweet vom <a             href="https://twitter.com/search?q=%23ipad" title="#ipad" class="tweet-url hashtag" rel="nofollow">#ipad</a>         im <a href="https://twitter.com/search?q=%23dataquest" title="#dataquest" class="tweet-url hashtag"             rel="nofollow">#dataquest</a> in Zürich <a href="https://twitter.com/search?q=%23qdds" title="#qdds"             class="tweet-url hashtag" rel="nofollow">#qdds</a><span class='timestamp'><a                 title='Tue Jul 13 08:03:04 +0000 2010' href='https://twitter.com/philippkueng/status/18421088823'>less                 than a minute ago</a> via <a href="https://mobile.twitter.com" rel="nofollow">mobile web</a></span><span             class='metadata'><span class='author'><a href='https://twitter.com/philippkueng'><img                         src='https://a3.twimg.com/profile<i>images/979630681/philippkueng</i>normal.jpg' /></a><strong><a                         href='https://twitter.com/philippkueng'>Philipp Küng</a></strong><br />philippkueng</span></span>     </p> </div> <!-- end of tweet --><p><p><a title="@AbtMartin und @bireweich im Gespräch by Philipp Küng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4804515545/"><img alt="@AbtMartin und @bireweich im Gespräch"             src="https://farm5.static.flickr.com/4122/4804515545<i>5536c9115c</i>b.jpg" /></a></p></p><p><p>Um 11.12 fand dann der langersehnte erste Kontakt mit einem anderen Twitterer statt und nicht einfach irgendjemandem     sondern es war <a href="https://twitter.com/AbtMartin">@AbtMartin</a> vom Kloster Einsiedeln höchstpersönlich.     Während der Zugfahrt wurde über Twitter und die damit verbundenen Möglichkeiten diskutiert. Wie beispielsweise     Monitoring betrieben werden kann und was für Werkzeuge es dafür gibt. Punkt 12 Uhr lieferten wir in vor dem Kloster     ab und begaben uns völlig planlos zum nächsten Zug.</p></p><p><p><a title="DSC_1877 by Philipp Küng, on Flickr" href="https://www.flickr.com/photos/agentcmos/4805156366/"><img             alt="DSC<i>1877" src="https://farm5.static.flickr.com/4135/4805156366</i>6ab3a1b9b4_b.jpg" /></a></p></p><p><p>Ab Einsiedeln fuhren wir über Wädenswil - Pfäffikon nach Rapperswil mit der Hoffnung auf ein Nest von möglichen     Twitterern zu treffen. Da sich niemand meldete beschlossen @bireweich und ich über den Steg wiederum nach Pfäffikon     zu gehen und danach Richtung Zürich zu Reisen. </p> <a title="DSC_1884 by Philipp Küng, on Flickr" href="https://www.flickr.com/photos/agentcmos/4805158896/"><img         alt="DSC<i>1884" src="https://farm5.static.flickr.com/4101/4805158896</i>0b666e42bb_b.jpg" /></a></p><p><p>Auf dem Weg von Pfäffikon nach Zürich verliessen uns zudem unsere digitalen Helfer, womit kein Kontakt mehr mit     Twitterern hergestellt werden konnte. Aus der Not gingen wir an die ETH um uns und den Akkus etwas Stärkung zu     gönnen. </p> <!-- https://twitter.com/philippkueng/status/18436024732 --> <style type='text/css'>     .bbpBox18436024732 {         background: url(https://s.twimg.com/a/1279047709/images/themes/theme1/bg.png) #9ae4e8;         padding: 20px;     }</p><pre><code>p.bbpTweet {
    background: #fff;
    padding: 10px 12px 10px 12px;
    margin: 0;
    min-height: 48px;
    color: #000;
    font-size: 18px !important;
    line-height: 22px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px
}
p.bbpTweet span.metadata {
    display: block;
    width: 100%;
    clear: both;
    margin-top: 8px;
    padding-top: 12px;
    height: 40px;
    border-top: 1px solid #fff;
    border-top: 1px solid #e6e6e6
}
p.bbpTweet span.metadata span.author {
    line-height: 19px
}
p.bbpTweet span.metadata span.author img {
    float: left;
    margin: 0 7px 0 0px;
    width: 38px;
    height: 38px
}
p.bbpTweet a:hover {
    text-decoration: underline
}
p.bbpTweet span.timestamp {
    font-size: 12px;
    display: block
}</code></pre><p></style> <div class='bbpBox18436024732'>     <p class='bbpTweet'>@<a class="tweet-url username" href="https://twitter.com/bireweich" rel="nofollow">bireweich</a>         und ich sitzen in der ETH Cafeteria am Akkus laden, daher Notfallbedingter Tweet mit dem Zune... <a             href="https://twitter.com/search?q=%23qdds" title="#qdds" class="tweet-url hashtag"             rel="nofollow">#qdds</a><span class='timestamp'><a title='Tue Jul 13 13:18:09 +0000 2010'                 href='https://twitter.com/philippkueng/status/18436024732'>less than a minute ago</a> via <a                 href="https://www.zune.net" rel="nofollow">Zune HD</a></span><span class='metadata'><span                 class='author'><a href='https://twitter.com/philippkueng'><img                         src='https://a3.twimg.com/profile<i>images/979630681/philippkueng</i>normal.jpg' /></a><strong><a                         href='https://twitter.com/philippkueng'>Philipp Küng</a></strong><br />philippkueng</span></span>     </p> </div> <!-- end of tweet --><p><p>Aufgrund der fortgeschrittenen Zeit brach @bireweich um 17 Uhr bereits wieder nach Luzern auf, sodass ich den 2. und     letzten Twitter Besuch am #qdds alleine durchführte. Weil ich mich als Digital Native generell sträube Fahrpläne zu     lesen oder überhaupt eine Reise im Vorfeld zu planen, liess ich mich vom Bahnhof Altstetten per Google Maps an den     Firmensitz der <a title="Kublé AG" href="https://kuble.ch">Kublé AG</a> lotsen. War wahrscheinlich sehr amüsant mir     beim navigieren zuzuschauen ;-). Dort angekommen gabs kühle Getränke und tolle Gespräche mit <a         href="https://twitter.com/gustavosalami">@gustavosalami</a>, <a         href="https://twitter.com/christophhess">@christophhess</a> und dem restlichen Team über mögliche Chancen in der     Schweizer Software Branche.</p></p><p><p>Alles in allem war es ein schöner Tag. Nachträglich kann man sagen, dass wenn wir den Tag etwas länger im Vorraus     geplant hätten, uns wahrscheinlich einige Twitterer mehr über den Weg gelaufen wären. </p></p><p><p>Mehr Bilder sind auf <a title="Bilder des qdds auf flickr"         href="https://www.flickr.com/photos/agentcmos/sets/72157624403300133/">flickr</a> zu finden</p> <strong>Zukunftsgedanken     <br /></strong>Während der Reise hatte ich die Idee von einer verteilten Twitterreise, d.h. jeder steigt in seinem Wohnort in den Zug, trifft einige andere und reist ca. 3 Stunden in dieser Gruppe weiter. Am Abend treffen sich dann alle Twitterteams an einem Ort der erst am Tag selbst per twtpoll abgemacht wird.&#160; Das dafür nötige GA könnte bei der Gemeinde für 30 Franken ausgeliehen werden, es entstehen also nicht unnötig hohe Kosten für nicht ÖVler. Was haltet ihr von dieser &quot;verteilten Twitterreise&quot;?</p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-07-09-twittboat-2010.html</id>
    <link href="https://philippkueng.ch/2010-07-09-twittboat-2010.html"/>
    <title>#twittboat 2010</title>
    <updated>2010-07-09T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a title="AN5E0555 by x-foto.ch, on Flickr" href="https://www.flickr.com/photos/x-foto/4760952132/"><img alt="AN5E0555"         src="https://farm5.static.flickr.com/4097/4760952132<i>2f94a8a76b</i>b.jpg" /></a> <p>Schön war es das <a href="https://twittboat.wordpress.com/">#twittboat</a>, da werden mir wohl alle zupflichten. Dies     war neben den herausragenden Leistungen der Paddlerinnen und Paddlern auch den Sponsoren <a         href="https://www.daydeal.ch/">daydeal.ch</a>, <a href="https://www.sib.ch/">sib.ch</a>, <a         href="https://www.nine.ch/">nine.ch</a>, <a href="https://www.amboss-bier.ch/">amboss bier</a>, <a         href="https://kochenmitshibby.ch/">kochen mit shibby</a>, <a href="https://www.sweet-temptations.ch/">Rahel’s         sweet temptations</a>, <a href="https://www.carpathia.ch/">carpathia</a>, <a         href="https://fruehjahr.ch/">frühjahr</a> und der grossartigen Organisation von <a         href="https://twitter.com/dhaitz<i>ch">@dhaitz</i>ch</a> zu verdanken.</p> <a     href="https://cgi.ebay.ch/ws/eBayISAPI.dll?ViewItem&amp;item=110557314074&amp;ssPageName=STRK:MESELX:IT#ht<i>500wt</i>1154"><img         style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="failwhale" border="0"         alt="failwhale" src="/assets/images/DSC_1350.jpg" width="654" height="434" /></a> <p>Mit dem <a href="https://www.flickr.com/groups/twittboat/pool/">#twittboat</a> haben wir der Welt gezeigt, dass     Twitterer nicht (nur) Nerds sind die sich Tag ein Tag aus im Keller aufhalten und die Sonne nur vom hörensagen     kennen. <br />Ich möchte sogar noch einmal einen Schritt weitergehen und der Welt beweisen, dass wir uns auch für     soziale Projekte abseits des Internets einsetzen. Daher wird das Maskottchen (der failwhale)welches uns jeweils auf     den Rennen begleitete auf <a         href="https://cgi.ebay.ch/ws/eBayISAPI.dll?ViewItem&amp;item=110557314074&amp;ssPageName=STRK:MESELX:IT#ht<i>500wt</i>1154">Ebay</a>     versteigert und der Gewinn der Gruppe <a href="https://www.kiva.org/team/swisstweets">swisstweets</a> auf Kiva     überwiesen.&#160; <br />Die <a         href="https://cgi.ebay.ch/ws/eBayISAPI.dll?ViewItem&amp;item=110557314074&amp;ssPageName=STRK:MESELX:IT#ht<i>500wt</i>1154">failwhale         Auktion</a> dauert 10 Tage, also nichts wie los und mitsteigern.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-07-09-creativemorning-in-zurich.html</id>
    <link href="https://philippkueng.ch/2010-07-09-creativemorning-in-zurich.html"/>
    <title>@creativemorning in Zürich</title>
    <updated>2010-07-09T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img title="creativemorning in Zürich" alt="creativemorning in Zürich" src="/assets/images/creative_morning_gipfeli.jpg" /> <p>Nachdem ich schon einiges von <a href="https://www.swiss-miss.com/">Tina Roth Eisenberg</a> aka. <a         href="https://twitter.com/swissmiss">swissmiss</a> und den <a         href="https://creativemornings.com/">creativemornings</a> gehört habe, war es nun an der Zeit selbst an einem     teilzunehmen zumal es gerade vor der Haustür stattfindet. </p> <a     href="https://www.flickr.com/photos/agentcmos/4777077582/"><img alt="creativemorning"         src="https://farm5.static.flickr.com/4073/4777077582<i>9c041e1e65</i>b.jpg" /></a> <p>Der Gastgeber Rolf Hiltl, stellte den ca. 200 Teilnehmern seine Firma <a href="https://www.hiltl.ch">Hiltl</a> und <a         href="https://tibits.ch">Tibits</a> vor und erklärte warum auf der Speisekarte auch nach ca. 120 Jahren noch     immer nur Gemüse steht, obwohl sich Gäste teilweise über das fehlende Fleisch beklagten.</p> <a     href="https://www.flickr.com/photos/agentcmos/4776457871/"><img alt="creativemorning"         src="https://farm5.static.flickr.com/4117/4776457871<i>d5d009e799</i>b.jpg" /></a> <p>Wie von Tina bemerkt wurde gibt sich Hiltl für eine schweizer Firma generell enorm innovativ. Ich denke sie hat da     nicht ganz unrecht, so wird man nicht in jedem Restaurant eine Twitterwall vorfinden #ilike. Ob bald anstatt mit     einer Karte aus Papier per iPad bestellt werden kann, liess Rolf Hiltl dagegen offen. </p> <p>Weitere Bilder vom Event findet man <a href="https://www.flickr.com/photos/agentcmos/sets/72157624455974016/">hier</a>     oder in der <a href="https://www.flickr.com/groups/creativemornings/">creativemorning Gruppe auf flickr</a>.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-30-bringt-uns-microsoft-das-synchronisations-nirvana.html</id>
    <link href="https://philippkueng.ch/2010-06-30-bringt-uns-microsoft-das-synchronisations-nirvana.html"/>
    <title>Bringt uns Microsoft das Synchronisations-Nirvana?</title>
    <updated>2010-06-30T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img title="Live_Sync_Nirvana" alt="Live_Sync_Nirvana" src="/assets/images/Live_Sync_Nirvana.png" /> <p>Schon seit einer Weile wird in Szene-Blogs immer wieder von der neuen <a         href="https://windowslivepreview.com/essentials">“Wave 4”</a> der Windows Live Essentials geschrieben, dabei     handelt es sich um neue, verbesserte Versionen der Photo, Video, Chat, Blog und Synchronsations Software die gratis     erhältlich sind.</p> <p>Aufgrund der bevorstehenden finalen Version, möchte ich an dieser Stelle kurz die Vor- und Nachteile von <a         href="https://windowslivepreview.com/essentials/sync/">Live Sync</a> aufzeigen, und insbesondere mit der     möglichen Konkurrenz (<a href="https://www.dropbox.com/referrals/NTEwMzUxOTk">Dropbox</a> und <a         href="https://www.wuala.com/referral/AN647NN4JHN3PBAGNGHC">Wuala</a>) vergleichen. Es ist mir dabei klar, dass     die Zielgruppen und Aufgabengebiete der hier verwendeten Konkurrenz-Anbieter nicht zwingend den selben wie Live Sync     entsprechen.</p> <p><strong>Kein Live Sync auf Linux</strong> <br />Anders als Wuala, wo auf Java gesetzt wird und Dropbox die einen     nativen Client haben, funktioniert Live Sync nicht auf Linux obwohl es dank dem <a         href="https://www.mono-project.com">Mono Projekt</a> teilweise möglich wäre .NET Applikationen unter Linux zu     betreiben.</p> <p><strong>Kein Cloud-Backup von versteckten Dateien</strong> <br />Gerade beim programmieren schätze ich     Synchronisationsdienste unheimlich, so füge ich den Code erst dann zum Subversion Archiv hinzu wenn ein Feature     fertig programmiert und nicht schon früher wegen dem Wechsel des Arbeitsgerätes.&#160; <br />Wie bei Wuala ist es     auch mit Live Sync leider nicht möglich versteckte Dateien über die Cloud zu synchronisieren, der Konkurrent Dropbox     erlaubt dies jedoch. Sollen auch mit Live Sync versteckte Ordner wie Subversion Verzeichnisse auf andere Rechner     übertragen geht dies nur über eine direkte P2P Verbindung und ohne Cloud Backup.</p> <p><strong>Synchronisation von Programm Einstellungen</strong> <br />Früher war <a         href="https://delicious.com/">deli.cio.us</a> das Mass aller Dinge wenn es um Lesezeichen ging, egal an welchem     Computer man sass die Favouriten sind immer übers Netz erreichbar. Als Chrome Beta Nutzer konnte ich einige Zeit     später die Bookmarks sogar im Programm selbst synchronisieren und sparte mir somit das immer wiederkehrende Anmelden     bei deli.cio.us. Endlich ist nun auch die Lesezeichen Synchronisierung beim Internet Explorer angekommen, man kann     mir allerdings nicht vorwerfen dass ich daher wieder auf IE wechseln würde, dafür muss klar mehr getan werden.     <br />Das mit der Bookmark synchronisierung geht noch etwas weiter und zwar hat Microsoft mit Live Sync einen Weg     geschaffen wie auch andere Programme ihre Einstellungen über mehrere Computer hinweg einheitlich führen können, so     könnte ein Administrator der Firma XY in der Konfigurationsdatei einer x-beliebigen Firmen Applikation eine Änderung     machen und fast instantan wird dies auf den Rechnern der Angestellten angewandt. Mit Dropbox wäre dies ebenfalls     möglich, falls die Konfigurationsdateien in den Ordner ‘My Dropbox’ verschoben werden können.</p> <p><strong>Sync-Ordner sind frei wählbar <br /></strong>Jedem Dropbox Nutzer ist bekannt, dass nur Dateien im Ordner ‘My     Dropbox’ resp. dem Ordner der bei der Installation angegeben wird, synchronisiert werden. Das Team arbeitet     allerdings schon seit einiger Zeit an einer Lösung bei dem auch x-beliebige Ordner miteinander abgeglichen werden     können. Live Sync auf der anderen Seite kann dies schon jetzt. Beliebige Ordner sind entweder mit der Cloud und     anderen Rechnern oder einfach nur mit bis zu 30 anderen Computern synchronisierbar.</p> <p><strong>Remote Desktop <br /></strong>Als weiteres Killer Feature bekommt Live Sync den aus <a         href="https://www.mesh.com">Mesh</a> bekannten Remote Desktop. Dies ist vorallem praktisch um dem Kunden übers     Internet den Computer zu reparieren oder einfach Geeklike aus dem Büro den Heimrechner zu steuern. </p> <p><strong>Fazit</strong> <br />Microsoft hat sicherlich hie und da noch etliche Schachstellen auszubügeln um im Markt     gegen innovative Produkte wie Dropbox und Wuala bestehen zu können. Ein weiteres absolutes Killer Feature wäre     beispielsweise, dass per Live Sync in die Cloud hochgeladene Dokumente auch mit den <a         href="https://philippkueng.ch/docscom-der-google-docs-killer.html">Office Web Apps</a> per Browser editiert     werden könnten, womit die ganze Nutzungs-Bandbreite unterstützt würde. <br />Man darf allerdings nicht vergessen,     dass Live Sync momentan noch im Beta Status ist und hoffentlich auf die finale Version hin noch um einiges     Attraktiver wird, ob es der Beginn des Synchronisations-Nirvana ist, diese Entscheidung überlasse ich dabei gerne     euch. </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-13-gps-tagging-fur-bilder-auf-dem-htc-hd2-aktivieren.html</id>
    <link href="https://philippkueng.ch/2010-06-13-gps-tagging-fur-bilder-auf-dem-htc-hd2-aktivieren.html"/>
    <title>GPS Tagging für Bilder auf dem HTC HD2 aktivieren</title>
    <updated>2010-06-13T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a href="https://www.flickr.com/groups/mobilecitywalkzuerich/pool/map?mode=group"><img alt="flickr GPS Karte"         src="/assets/images/flickr<i>gps</i>map.png" /></a> <p>Beim <a href="https://www.pixelfreund.ch/2010/04/mobile-city-walk-zuerich/">Mobile City Walk Zürich</a> (<a         href="https://www.flickr.com/groups/mobilecitywalkzuerich/">flickr Gruppe</a>) von Gestern war eine der     Anforderungen, dass die Bilder mit GPS Daten versehen, hochgeladen werden. GPS Tagging mag bei anderen Smartphones     Standard sein, leider nicht so bei meinem Modell dem HTC HD2, was auf Windows Mobile 6.5 basiert.</p> <p>Um dennoch die Bilder mit GPS Informationen in den EXIF Daten zu versehen muss eine kleine Registry Änderung auf dem     Smartphone vollzogen werden. Dafür wird <a href="https://ceregeditor.mdsoft.pl">CERegEdit</a> gebraucht, was nicht     Open Source, jedoch gratis erhältlich ist. <br />Nach dem herunterladen und installieren von CERegEdit, wird das     Smartphone per ActiveSync mit dem Computer verbunden und CERegEdit gestartet. Auf Windows Vista oder Windows 7     sollte CERegEdit unbedingt mit Administrator Rechten gestartet werden, da die Applikation ansonsten nicht richtig     funktioniert. </p> <img alt="htc_camera_app" src="/assets/images/htc_camera_app.jpg" /> <p>Anschliessend nun die Schritte um GPS Tagging für Bilder zu aktivieren.</p> <ol>     <li>Wähle in CERegEdit links oben <strong>Connection</strong> und anschliessend <strong>Connect</strong>, was die         Registry vom Gerät lädt. </li>     <li>Suche in den Ordnern in der linken Spalte nach dem Ordner <strong>HKEY<i>LOCAL</i>MACHINE </strong>&gt;<strong>             Software </strong>&gt;<strong> HTC</strong> &gt;<strong> Camera</strong> &gt;<strong> P10</strong>. </li>     <li>Markiere den Ordner <strong>P10</strong> in der rechten Spalte und doppelklicke auf <strong>Enable</strong> in         der rechten Spalte. </li>     <li>Setze nun den Wert von <strong>Value data</strong> von 0 auf <strong>1</strong> und bestätige mit OK. </li>     <li>Schliesse die Applikation und kappe die Verbindung mit dem Computer. </li>     <li>Öffne die Kamera App auf dem Smartphone, tippe rechts unten auf auf Einstellungen und nachher auf die Kamera         resp. die Aufnahmemodus Auswahl. Hier kann nun der Modus GPS-Foto gewählt werden. Die GPS Bilder befindet sich         übrigens nicht im selben Ordner wie die anderen, nicht GPS getaggten, sondern auf den Speicherkarte unter My         Documents &gt; My POI. </li> </ol></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-08-livestream-vs-kein-livestream-nicht-erfolg-vs-erfolg.html</id>
    <link href="https://philippkueng.ch/2010-06-08-livestream-vs-kein-livestream-nicht-erfolg-vs-erfolg.html"/>
    <title>Livestream vs. kein Livestream - nicht Erfolg vs. Erfolg</title>
    <updated>2010-06-08T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a href="https://www.flickr.com/photos/acaben/541444577/"><img alt="541444577_ffd86b5a25_b[1]"         src="/assets/images/541444577<i>ffd86b5a25</i>b%5B1%5D.jpg" /></a> <p>Am 7. Juni 2010, traute ich mich als nicht Apple-Gerät-Besitzer nach Bern an das <a         href="https://twtvite.com/wwdcbe">#wwdcbe</a> Tweetup wo die WWDC Keynote von Steve Jobs per Liveticker verfolgt     wurde. Anstatt die Demos von Steve als Video zu schauen, besprachen wir die Features untereinander oder checkten die     Twitter Timeline. Am Ende des Abends wussten wir, sofern ich es jetzt sagen kann, über alles Bescheid obwohl nur     kurze Meldungen und Bilder zu uns durchsickerten.</p> <p><strong>Ist der Fakt, dass Apple keinen Livestream anbietet eine Kosten Frage oder allenfalls eine geschickte         Marketingstrategie?</strong> </p> <p>Bisher hatten die Apple Konkurrenten sprich Google und Microsoft jeweils ihre Keynotes Live an jeweils 10'000 bis     20'000 Zuschauer gestreamt. Da sich bei einem Streaming die Bandbreiten für jeden Nutzer addieren, muss bei 20'000     Zuschauern mit ca. 1.5 Mbit/s eine Bandbreite von 30'000 Mbit/s also 30 Gbit/s bereit stehen. Da Apple ebenfalls     verschiedenste Kinotrailer hostet, sollte die Bandbreite die gebraucht wird und die daraus resultierenden Kosten     nicht wirklich entscheidend sein. <br />Auf der anderen Seite kann &quot;kein Livestreaming&quot; viele positive     Effekte haben. Erstens sind die Sitze in dem Saal viel begeehrter, da die anderen Ausserhalb warten müssen bis das     Keynote Video online ist. Zudem ist Twitter, und sind andere Quellen, voll von Neuigkeiten, vornehmlich in     indexierbarem Text, was die Werbewirkung noch einmal maximieren kann.</p> <p><strong>Meine Frage nun, würde diese Taktik auch bei anderen Firmen und Events funktionieren?</strong> </p> <p>Warum bieten beispielsweise Microsoft oder Google einen Livestream an, wäre doch günstiger und besser wenn nicht?     <br />Die einzige Erklärung auf diese Frage beruht bisher darin, dass Google ihre Youtube Plattform und Microsoft     ihren Silverlight Streaming Service promoten möchten und es sich daher nicht leisten können keinen Livestream     anzubieten. </p> <p>Was sind eure Meinungen zu diesem Thema? Pro oder Kontra Livestream?</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-07-website-mit-wget-und-einer-batch-datei-im-parallel-modus-sichern.html</id>
    <link href="https://philippkueng.ch/2010-06-07-website-mit-wget-und-einer-batch-datei-im-parallel-modus-sichern.html"/>
    <title>Website mit WGET und einer Batch Datei im Parallel-Modus sichern</title>
    <updated>2010-06-07T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img alt="festplatte" src="/assets/images/festplatte.jpg" /> <p>Im Januar 2010 habe ich hier auf diesem Blog eine Möglichkeit vorgestellt wie mithilfe einer Batchdatei und des Open     Source Programms WGET die eigenen Webseiten offline gesichert werden können. <a         href="/2010-01-26-webspace-mit-wget-und-einer-batch-datei-sichern.html">Website mit WGET und         einer Batch Datei sichern</a></p> <p>Bei vielen verschiedenen Webseiten kann der Sicherungsvorgang leider ganz schön viel Zeit beanspruchen da <a         href="https://www.gnu.org/software/wget/">WGET</a> und das Batch Skript lediglich seriell ausgeführt werden. Es     gibt allerdings eine Möglichkeit wie das Backup quasi parallel ausgeführt wird. Als Ausgangspunkt brauchen wir das     schon erstellte Backup Skript vom Januar 2010 (backup_skript), welches ungefähr so aussieht:</p></p><p>{% highlight text %} "C:\wget ordner\wget.exe" -P"C:\website sicherung 1" ftp://admin1:passwort1@ftp.example1.com/ –m</p><p>"C:\wget ordner\wget.exe"" -P"C:\website sicherung 2" ftp://admin2:passwort2@ftp.example2.com/ –m {% endhighlight %}</p><p><p>Im Ordner, in welcher sich diese Datei befindet, erstellen wir nun einen Unterordner, in meinem Falle     <strong>website<i>backup</strong>. In dem Ordner website</i>backup wird für jede einzelne Website eine eigene Batch Datei     erstellt, bsp.: example1.bat. In example1.bat kommen nun die Anweisungen, welche nur diese eine Seite betreffen, in     unserem Beispiel also:</p></p><p>{% highlight text %} "C:\wget ordner\wget.exe" -P"C:\website sicherung 1" ftp://admin1:passwort1@ftp.example1.com/ –m {% endhighlight %}</p><p><p>Diese Schritte werden wiederholt bis alle Anweisungen im Skript backup_skript in einzelnen Batch Dateien im Ordner     website_backup vorhanden sind.</p> <p>Zum Schluss öffnet man die Datei backup<i>skript mit einem Editor und es wird pro Batch Datei im Ordner website</i>backup     eine Linie eingefügt. </p></p><p>{% highlight text %} START website_backup\example1.bat START website_backup\example2.bat etc. {% endhighlight %}</p><p><p>Falls nun das Skript backup_skript aufgerufen wird, öffnen sich viele verschiedene Fenster gleichzeitig, wodurch der     Backupprozess eine gewisse Parallelität gewinnnt.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-06-mathematik-formeln-mit-word-und-shortcuts-erstellen.html</id>
    <link href="https://philippkueng.ch/2010-06-06-mathematik-formeln-mit-word-und-shortcuts-erstellen.html"/>
    <title>Mathematik Formeln mit Word und Shortcuts erstellen</title>
    <updated>2010-06-06T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img alt="Mathematikformeln in Word Screenshot" src="/assets/images/mathematikformeln_in_word.png" /> <p>Da ich es leid bin dauernd den ganzen Regenwald an die Vorlesungen mitzuschleppen stellte ich auf Digital um. Es ist     nämlich möglich mit Word und einigen Shortcuts den Text, den der Professor an die Tafel schreibt, recht fliessend     abzutippen. Die Tastenkürzel sind dabei in MathML, einer an LaTeX angelehnten Sprache verfasst. </p> <p>Dank Thomas Co, von der Michigan Technological University und seiner handlichen <a         href="https://www.chem.mtu.edu/~tbco/cm416/EquationEditor_main.pdf"         title="Word MathML Zusammenfassung">Zusammenfasssung</a> sollte dabei die MathML ausdrucksweise rasch erlernbar     sein.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-04-spam-filter-in-gmail-ausschalten.html</id>
    <link href="https://philippkueng.ch/2010-06-04-spam-filter-in-gmail-ausschalten.html"/>
    <title>SPAM Filter in Gmail ausschalten</title>
    <updated>2010-06-04T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Beim Zugriff auf Google Mail per IMAP lädt der Client (Thunderbird, Outlook, etc.) auch die SPAM E-Mails herunter,     sodass Benutzer diese ebenfalls zu Gesicht bekommen. Falls allerdings, aus Tradition, auf POP gesetzt wird um     E-Mails vom Server zu holen, gehen SPAM verdächtige E-Mails eventuell am Nutzer vorbei. Hinzu kommt, dass Google     SPAM nach ca. 60 Tagen automatisch löscht. <p></p> Damit keine Nachrichten verloren gehen, ist es sinnvoll den SPAM Filter mit einem kleinen Kniff zu umgehen. <p>     <img src="/assets/images/2010/6/remove_spam_filter_in_gmail_step1.png" alt="Google Mail Filter Einstellungen" /> </p> Melde dich dafür unter <a href="https://mail.google.com" title="Google Mail">mail.google.com</a> an, klicke oben rechts auf <strong>Einstellungen</strong> und wähle den Tab Reiter <strong>Filter</strong> aus.</p> <img src="/assets/images/2010/6/remove_spam_filter_in_gmail_step2.png" alt="Google Mail Filter Einstellungen is:spam" /> <p>Erstelle einen <strong>neuen Filter</strong> und fülle dabei im Feld <strong>Mit diesen Wörtern</strong> den Begriff     <strong>is:spam</strong> ein. Klicke anschliessend auf <strong>Nächster Schritt</strong>. <p>     <img src="/assets/images/2010/6/remove_spam_filter_in_gmail_step3.png" alt="Google Mail Filter Einstellungen Warnung" /> </p> Die erscheinende Meldung muss mit <strong>OK</strong> bestätigt werden, damit alle E-Mails erfasst werden. <p>     <img src="/assets/images/2010/6/remove_spam_filter_in_gmail_step4.png" alt="Google Mail Filter erstellen" /> </p> Im letzten Schritt sollte das Häckchen bei <strong>Niemals als Spam einstufen</strong> gesetzt werden, bevor mit einem Klick auf <strong>Filter erstellen</strong> der SPAM Filter endgültig umgangen wird. Ab diesem Zeitpunkt sollten nun alle E-Mails im Posteingang landen egal ob POP oder IMAP benutzt wird.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-06-03-bethemayorcom.html</id>
    <link href="https://philippkueng.ch/2010-06-03-bethemayorcom.html"/>
    <title>bethemayor.com</title>
    <updated>2010-06-03T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/6/be_the_mayor_screenshot.png" alt="bethemayor.com Website Screenshot" /> <p>     Da foursquare eine relativ stabile statische <a title="foursquare API"         href="https://groups.google.com/group/foursquare-api/web/api-documentation">API</a> besitzt, (anders als Gowalla)     erstellten Entwickler, schon seit geraumer Zeit, Services die den täglichen 4sq-Nutzer untersützen. <p></p> Der neueste Spross unter den foursquare Webseiten ist <a href="https://bethemayor.com"     title="bethemayor.com">https://bethemayor.com</a>, der Dienst nutzt die OAuth Architektur als Authentifizierung, wie sich dies für einen seriösen Anbieter gehört, und zeigt wieviele Check-Ins noch benötigt werden, bis man sich am jeweiligen Ort Mayor nennen darf. In meinem Fall werde ich wohl beim Hauptbahnhof Zürich nur schwerlich eine Chance gegen <a href="https://twitter.com/phogenkamp">@phogenkamp</a> haben. <p> </p> <strong>Tipp</strong></p><ul><li>Nebenbei verrät bethemayor.com, das zum Mayor nur ein Check-In pro Tag gezählt wird. Geht wohl daher mehr um Ausdauerals um fleissiges Treiben. <a href="https://search.twitter.com/search?q=nicetoknow"    title="Twitter Hashtag: nicetoknow">#nicetoknow</a></p></li></ul>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-05-21-erstes-tweetupaarau.html</id>
    <link href="https://philippkueng.ch/2010-05-21-erstes-tweetupaarau.html"/>
    <title>Erstes #tweetupaarau</title>
    <updated>2010-05-21T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/5/tweetupaarau-geheimprojekt-praesentation.jpg" alt="tweetupaarau Geheimprojekt Präsentation" /> <p>     Gestern am 20. Mai wurde das wahrscheinlich erste Tweetup auf Argauer Boden durchgeführt, das <a         href="https://twtvite.com/tweetupaarau">#tweetupaarau</a>. Die Location wahr angenehm nahe am Bahnhof und konnte     auch sonst überzeugen. <p></p> Wie nicht anders zu erwarten, mit 2 iPads als spezial Gäste, war der Abend eher Apple lastig und Gadgets, wie den von mir mitgebrachten, ZuneHD fasste man teilweise gar nicht an. Verzeihe es @renatomitra dieses eine mal... ;-) <p></p> Ebenfalls schätzte ich die anregenden Diskussionen zum Thema "Cloud Computing", wobei wir mit <a     href="https://twitter.com/avongunten">@avongunten</a> einen Kenner der Szene unter uns hatten. <p></p> Der wahre Grund allerdings, weswegen alle nach Aarau reisten, waren nicht die iPads sondern das Geheimprojekt von <a     href="https://twitter.com/purzlbaum">@purzlbaum</a>. Womit dies leider auch schon alles ist, was man aktuell dazu schreiben darf. (NDAs) <p></p> Abschliessend, das erste #tweetupaarau war eines der grösseren Tweetups die ich bisher besuchte und Gespräche mit Tech-Affinen Menschen zu führen, auch wenn es Apple Nutzer sind ;-), ist für mich halt immer wieder ein Highlight. <br />In diesem Sinne, vielen Dank den beiden Organisatoren <a href="https://twitter.com/retovogel">@retovogel</a> und <a href="https://twitter.com/renatomitra">@renatomitra</a>, am 8. Juni gerne wieder. </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-05-20-chrome-web-store-der-anfang-vom-ende-von-apple.html</id>
    <link href="https://philippkueng.ch/2010-05-20-chrome-web-store-der-anfang-vom-ende-von-apple.html"/>
    <title>Chrome Web Store - der Anfang vom Ende von Apple?</title>
    <updated>2010-05-20T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/5/chrome-web-store.png" alt="Chrome Web Store" /> <p>Gestern an der <a href="https://code.google.com/events/io/2010/" title="Google I/O">Google I/O</a>, der alljährlichen     Entwicklerkonferenz des Suchmaschinenriesen, wurde bekanntgegeben, dass nun auch Chrome einen <a         href="https://chrome.google.com/webstore " title="Chrome Web Store">Web Store</a> bekommt aka. Goldesel für IT     Firmen. Das Konzept an sich ist sicher nicht neu, da Apple schon seit einigen Jahren einen solchen für das iPhone     und nun auch deren Tablet betreibt, und genau da wird es spannend. Google hat mit dem Chrome eine relativ einfache     Umgebung geschaffen in der mit HTML (neu HTML5) etwas CSS und Javascript voll funktionsfähige Applikationen erstellt     werden können die danach gewinnbringend an den Nutzer weiterverkauft werden.</p></p><p><p>Meine Vermutung geht nun dahingehend, dass diese Web Store Applikationen nachher out-of-the-box auf einem Tablet mit     ChromeOS laufen. Für Entwickler denen das nicht genug ist, kommt vielleicht sogar noch Java Support hinzu, was im     Endeffekt das Google Tablet zu einer ernsthaften Konkurrenz für das Apple iPad machen könnte.</p></p><p><p>Es ist mir klar, dass die Prognose aktuell viele unbekannte Variabeln enthält, doch bin ich interessiert was ihr zu     diesem Thema denkt. Hat Google das Potential, Apple aus dem Mobil Geräte Markt zu verdrängen?</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-05-19-subversion-verzeichnisse-in-filezilla-ausblenden.html</id>
    <link href="https://philippkueng.ch/2010-05-19-subversion-verzeichnisse-in-filezilla-ausblenden.html"/>
    <title>Subversion Verzeichnisse in Filezilla ausblenden</title>
    <updated>2010-05-19T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/5/filezilla-hide-hidden-folders-step1.png"     alt="Subversion Verzeichnis in Filezilla ausblenden - Schritt 1" /> <p>Normalerweise schreibt man etwas Code auf dem eigenen Rechner, testet diesen und f&uuml;gt ihn zum <a         title="Subversion" href="https://en.wikipedia.org/wiki/Subversion_(software)">Subversion</a> Verzeichnis hinzu,     danach wird die aktuelle Version exportiert und per <a title="Filezilla Client"         href="https://filezilla-project.org/download.php?type=client">Filezilla</a> auf den eigenen Server hochgelden.     Dies macht Sinn, da somit fixe Versionen vorhanden sind auf die allf&auml;llig wieder zur&uuml;ck gewechselt werden     k&ouml;nnte.</p> <p>Sch&ouml;n und gut, doch was wenn die Applikation schon w&auml;hrend dem programmieren laufend auf dem Server     getestet werden will? L&auml;dt man dann die ganzen SVN Verzeichnisse auch hoch? Oder jeweils einfach Datei um     Datei, sodass die Subversion Daten nur auf dem eigenen Rechner bleiben.</p> <p>Es gibt eine viel einfachere L&ouml;sung. Zuerst wird <strong>View</strong> im Menu ausgew&auml;hlt und danach auf     <strong>Filename filters</strong> geklickt. Alternativ geht auch der Tastatur Shortcut <strong>Ctrl + I</strong>. Im     neu erscheindenen Fenster aktiviert man das <strong>H&auml;ckchen bei CVS and SVN directories</strong> und schon     werden die Subversion Verzeichnisse von Filezilla ignoriert.</p> <img src="/assets/images/2010/5/filezilla-hide-hidden-folders-step2.png"     alt="Subversion Verzeichnis in Filezilla ausblenden - Schritt 2" /> <p>Nun ist es m&ouml;glich einen Ordner, welcher ein SVN Verzeichnis beinhaltet auf den Webserver zu laden ohne dass     dabei die Subversion Dateien ebenfalls &uuml;bertragen werden.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-05-18-docscom-der-google-docs-killer.html</id>
    <link href="https://philippkueng.ch/2010-05-18-docscom-der-google-docs-killer.html"/>
    <title>Docs.com - der Google Docs Killer?</title>
    <updated>2010-05-18T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img src="/assets/images/2010/5/docs.com.jpg" alt="docs.com auf einem HP 2710P" /></p> <p>Am 21. April stellte Microsoft auf der <a title="facebook f8" href="https://www.facebook.com/f8">facebook f8         Konferenz</a> eine Beta Version ihrer <a title="docs.com" href="https://docs.com">Office Web Apps</a> vor. Die     Online Version der bekannten Office Suite beinhaltet bis dato die gebr&auml;uchlichsten Office Anwendungen wie Word,     Excel und Powerpoint.</p> <p>Die Schw&auml;chen von Office Web Apps (OWA) sind momentan die st&auml;rken von Google Docs (GD), so blockiert     beispielsweise OWA bei jedem speichern das Fenster wie man dies schon von Office Workspace her kennt, GD hat mit der     &Uuml;bernahme von <a title="Etherpad" href="https://etherpad.com/">Etherpad</a>&nbsp;(danke an <a         href="https://twitter.com/<i>giu">@</i>giu</a>, <a href="https://twitter.com/LiFrT">@LiFrT</a> und <a         href="https://twitter.com/dan<i>graf">@dan</i>graf</a>) auf der anderen Seite eine Speichertechnik welche sehr     schnell ist und das weiterschreiben erlaubt. Ebenso habe ich pers&ouml;nlich M&uuml;he mit der Fullscreen     Darstellung von OWA, so passen ganze Abs&auml;tze auf eine Linie (24&rdquo;). GD hat dieses Problem erkannt und ihre     Version bedeutend schreib- und lesefreundlicher gestaltet.</p> <p>St&auml;rken von OWA gegen&uuml;ber GD sehe ich in der grossen Verbreitung der Offline Version von Office. So     k&ouml;nnen Nutzer ihre Daten kostenlos auf Skydrive ablegen, diese bei Bedarf mit OWA ab&auml;ndern und sind dabei     niemals gezwungen sich in ein neues Programm einzuarbeiten weil &uuml;berall die bekannte Ribbon Oberfl&auml;che zu     sehen ist. Ebenso ist es m&ouml;glich die neuesten Office Effekte sowohl off- wie online zu verwenden, somit ist der     Nutzer nicht wie bei GD gezwungen die jeweiligen interaktiven Elemente in statische Bilder umzuwandeln.     Zus&auml;tzlich hat Microsoft durch die Integration in Facebook eine gute Basis um eine solide Kundenbindung zu     erreichen.</p> <p><strong>Mein Fazit&nbsp;</strong>&mdash;&nbsp;Trotz der teilweise schlechten Unterst&uuml;tzung und dem derzeit     abgeschalteten Offline Modus ist mein Favorit durchaus Google Docs. Dies aus dem Grund, dass Google Docs deutlich     schneller ist und mir Docs.com den Anschein macht ledigleich ein erweitertes TinyMCE zu sein, welches durch zu viel     Javascript an Performance einb&uuml;sst.&nbsp;</p> <p>Sowohl das von mir getestete Google Docs wie auch Docs.com sind aktuell nicht in einer &ldquo;Business Ready&rdquo;     Phase, daher k&ouml;nnen sich bei beiden noch die einen oder anderen Dinge verbessern. D&uuml;rfen daher noch bei     beiden auf Einsicht hoffen...</p> <p><strong>Update vom 8. Juni 2010</strong>&nbsp;&mdash;&nbsp;Office Web Apps sind ab jetzt ebenfalls auf <a         href="https://office.live.com">office.live.com</a> verfügbar. Mit Office 2010 können die Dateien nun direkt dort     gespeichert und freigegeben werden. Genauere Details kann man durch den <a         href="https://windowsteamblog.com/windows_live/b/windowslive/archive/2010/06/07/office-is-now-live-on-skydrive.aspx">offiziellen         Blog Beitrag</a> oder durch durchs selber ausprobieren erhalten.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-05-17-philippkuengch-in-neuem-glanz.html</id>
    <link href="https://philippkueng.ch/2010-05-17-philippkuengch-in-neuem-glanz.html"/>
    <title>philippkueng.ch in neuem Glanz</title>
    <updated>2010-05-17T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/5/new_blog_design_for_philippkueng.ch.jpg" alt="Neues Blog Theme für philippkueng.ch" /> <p>Nun ist die Zeit gekommen und mein Blog verabschiedet sich von seinem orangen Kleid (pubertäre Phase) und zieht ein     blaues professioneller wirkendes Gewand an.</p></p><p><p>Für das CSS benutzte ich das BlogEngine.NET Standard Stylesheet und erweiterte es mit einigen CSS3 Elementen wie     text-shadow, box-shadow und rounded-border. Ebenso wird ab diesem Moment der <a         href="https://developers.facebook.com/docs/reference/plugins/like" title="Facebook Like Button">Facebook Like         Button</a> und <a href="https://tweetmeme.com/about/retweet_button" title="Tweetmeme Retweet">Tweetmeme         Retweet</a> eingeführt. Bin gespannt ob es allenfalls mehr Konversationen hervorbringt.</p></p><p><p>Das HTML resp. XHTML erfuhr wenige Änderungen und ist, sofern keine Flash Videos oder Widgets von Drittanbietern     eingebunden werden, völlig <a href="https://www.w3.org/" title="World Wide Web Consortium (W3C)">W3C</a> konform.</p></p><p><p>That’s it. Wie gefällt es euch? Evtentuell Anregungen für eine weitere Interationen?</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-04-16-foursquareday.html</id>
    <link href="https://philippkueng.ch/2010-04-16-foursquareday.html"/>
    <title>FoursquareDay</title>
    <updated>2010-04-16T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Heute am 16.4 feiert <a href="https://foursquare.com/">foursquare</a>, der beste Location Dienst ;-), seinen eigenen     Feiertag, den <a href="https://4sqday.com/">foursquareDay</a>. Der Tag ist keineswegs zuf&auml;llig gew&auml;hlt,     sondern unterliegt rein mathematischen Gesetzm&auml;ssigkeiten. So heisst 4 auf Englisch four und four-squared daher     4 im Quadrat was nichts anderes als 16 ist. </p> <p>Leider gibt es in der Schweiz keinen <a href="https://4sqday.com/cities">Ort</a> wo man auch mitfeiern kann,     vielleicht ja n&auml;chstes Jahr. Als Ersatz pr&auml;sentiere ich euch heute die erste Episode der Foursquare Cops. </p></p><p><object width="666" height="395">     <param name="movie" value="https://www.youtube.com/v/N4rfzYul9O8&hl=en_US&fs=1&rel=0&hd=1">     </param>     <param name="allowFullScreen" value="true">     </param>     <param name="allowscriptaccess" value="always">     </param><embed src="https://www.youtube.com/v/N4rfzYul9O8&hl=en_US&fs=1&rel=0&hd=1"         type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="666"         height="395"></embed> </object></p><p><p>Falls ihr noch nicht genug foursquare habt gibt es hier noch mein <a href="https://squarebewidget.codeplex.com">widget         f&uuml;r blogengine</a>.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-04-13-nervige-email-signatur-auf-windows-mobile-htc-ausschalten.html</id>
    <link href="https://philippkueng.ch/2010-04-13-nervige-email-signatur-auf-windows-mobile-htc-ausschalten.html"/>
    <title>nervige Email-Signatur auf Windows Mobile HTC ausschalten</title>
    <updated>2010-04-13T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/4/windows-mobile-email-signatur-ausschalten-htc-00.jpg" alt="" /> <p>Bei meinem in der Schweiz erstandenen HTC HD2 war standardmässig die folgende Email Signatur eingestellt:     <strong>Gesendet von meinem HTC</strong>.<br />     Die Signatur an sich ist nicht wirklich schlimm, doch sobald man Services wie flickr, posterous und eat.ly benutzt     welche Emails parsen, hat man die Email-Signatur plötzlich auf allen Bildern resp. Beiträgen in der     Beschreibung. Natürlich könnte man den Spruch auch einfach jedesmal von Hand löschen, doch warum kompliziert wenn es     auch einfach geht.</p> <img src="/assets/images/2010/4/windows-mobile-email-signatur-ausschalten-htc-01.jpg" alt="" /> <p>Um die Signatur zu deaktivieren resp. ändern tippe auf <strong>Start</strong> und nachher auf das Menu     <strong>E-Mail</strong>. Wähle nun <strong>Menu</strong> (rechts unten) an.</p> <img src="/assets/images/2010/4/windows-mobile-email-signatur-ausschalten-htc-02.jpg" alt="" /> <p>Tippe auf <strong>Optionen</strong> um ins nächste Fenster zu gelangen. Dort kann nun das Konto ausgewählt werden für     welches die Signatur geändert werden soll. Nach der Auswahl einfach auf <strong>Signaturen</strong> tippen und es     ist schon fast geschafft.</p> <img src="/assets/images/2010/4/windows-mobile-email-signatur-ausschalten-htc-03.jpg" alt="" /> <p>Im letzten Schritt hat man die Möglichkeit die Signatur ganz zu deaktivieren oder einfach eine eigene zu definieren.     (Auswahl nach belieben) Nach einmal tippen auf OK ist die nervige Standard Signatur verschwunden.</p></p><p><p>Nebenbei die Screenshots dieses Post wurden mit der Software <a         href="https://www.iliumsoft.com/site/fp/freeware.php">Ilium Software Screen Capture</a> gemacht die gratis     heruntergeladen werden kann. (Leider nicht OSS...)</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-04-11-foursquare-blogenginenet-widget-version-03.html</id>
    <link href="https://philippkueng.ch/2010-04-11-foursquare-blogenginenet-widget-version-03.html"/>
    <title>Foursquare BlogEngine.NET widget version 0.3</title>
    <updated>2010-04-11T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/2/foursquare-logo.png" alt="foursquare logo" /> <p>Hi users of blogengine. I'd like to announce another minor update to the <a         href="https://4squarebewidget.codeplex.com/releases/view/43399"         title="foursquare blogengine.net widget">foursquare widget</a> for your favourite blogging platform which can be     downloaded from <a href="https://4squarebewidget.codeplex.com/releases/view/43399"         title="foursquare blogengine.net widget">codeplex</a>.     By the way this will be the last release working with the feeds, the next release will be running with the     foursquare API.</p> <p><strong>out-of-the-box usage</strong><br />Now everyone is able to use the plugin with your out-of-the-box BE     installation, because I've changed the parts which were using LINQ to use .NET 2.0 methods.     So there's no need to change the framework version to 3.5 anymore...</p> <p><strong>W3C compliant</strong><br />The other thing I'd like to announce is that the widget is now fully W3C     compliant, like BE itself.</p> <p><strong>Icons are back</strong><br />Last I want to mention that the icons are getting embedded again, because they     disappeared in some browsers while displayed via css.</p> <p><strong>Important</strong><br />     You probably have to reset the blogengine application after you've uploaded the widget to your hosting provider.     Sorry for that.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-03-17-autosalon-2010-sind-reine-elektroautos-die-zukunft.html</id>
    <link href="https://philippkueng.ch/2010-03-17-autosalon-2010-sind-reine-elektroautos-die-zukunft.html"/>
    <title>Autosalon 2010 - Sind reine Elektroautos die Zukunft?</title>
    <updated>2010-03-17T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><a href="https://www.flickr.com/photos/agentcmos/4431779918/" title="Auto Salon 2010 Tilt Shift" class="image"><img         src="https://farm3.static.flickr.com/2758/4431779918<i>6410cd734a</i>b.jpg" alt="Auto Salon 2010 Tilt Shift" /></a> <p>Am letzten Freitag habe ich die Vorlesungen für einmal ausfallen lassen und mich auf Genf zum <a         href="https://salon-auto.ch/de">internationalen Autosalon</a> begeben. Ist ja auch nicht jeden Tag… </p> <p>Neben all den schnellen Rennboliden lag der Trend dieses Jahr in umweltschonenden, ökologischen Autos, so präsentiere     zu meinem verwundern sogar Ferrari ein hybrides Auto.</p> <a href="https://www.flickr.com/photos/agentcmos/4440398517/" title="Ferrari Hybrid" class="image"><img         src="https://farm3.static.flickr.com/2720/4440398517<i>08ee731529</i>b.jpg" alt="Ferrari Hybrid" /></a> <p>Das hybride Auto mag gut sein, doch ich denke für Frau und Herr Schweizer wäre eine andere Lösung noch effizienter,     z.B. die Autos welche ganz auf Strom als Antriebskraft setzen, wie dies die Firma <a         href="https://www.protoscar.com/">Protoscar</a> vorstellte. Okay, das Auto an sich könnte etwas vorteilhafter     aussehen, doch sind es nicht die inneren Werte die zählen ;-)</p> <a href="https://www.flickr.com/photos/agentcmos/4441040334/" title="Protoscar Lampo2" class="image"><img         src="https://farm5.static.flickr.com/4038/4441040334<i>d352736324</i>b.jpg" alt="Protoscar Lampo2" /></a> <p>     Die technischen Daten des Lampo2 verheissen nämlich ein maximales Drehmoment von 640Nm welches das 1.5 Tonnen     Elektro-Auto in ca. 5 Sekunden von 0 auf 100km/h beschleunigen kann. Der einizige Minuspunkt sehe in der geringen     Reichweite von 200km, danach müssen die Akkus wieder geladen werden, dies dürfte aber bei unserem dichten     Tankstellennetz kein Problem darstellen.</p> <p>     Neben der Entwicklung des Prototypen beschäftigte sich Protoscar ebenfalls mit der Lade-Frage. So konnten mithilfe     von Partnern, 3 verschiedene Ladetechniken, in Form von Strom-Tankstellen, entwickelt werden. Die offensichtlichste     und günstigste Variante, das Aufladen über Nacht; daneben sind auch Ladestationen an öffentlichen Parkplätzen     vorgesehen. Die schnellste Methode um den Akku wieder zu füllen soll eine 15 Minuten Schnellladung sein, so à la     'drink and drive' (nicht zu verwechseln mit <a href="https://www.vsr.ch/Kampagne2005/deutsch/index.htm">drink or         drive</a>)</p> <p>     Bei den aktuellen Strompreisen schlagen dabei, laut Protoscar, 100km Fahrdistanz mit ungefähr 2.40 Franken zu Buche,     also im Endeffekt ein vielfaches weniger als was herkömmliche Brennstoffe kosten. Ich nehme jedoch an, sollten eines     Tages ein Grossteil der Bevölkerung wirklich auf Elektroautos wie den Lampo2 umsteigen, so müssten die     Stromlieferanten ihre Netzinfrastruktur nochmals für die nun grösseren Verbraucher umbauen, was bei der Stromladung     eine Preiskorrektur nach oben bedeuten würde.</p></p><p><p>Ich kann mir vorstellen, das solche Autos besonders für kleinere regional agierende Unternehmen und für Familien     interessant sein werden. Bis ich das Kleingeld besitze um mir so ein Gefährt anzuschaffen muss ich wohl noch ein     wenig Zug fahren, ist ja sowieso nochmals besser als jedes Elektro-Auto.</p></p><p><p>Was ist eure Meinung zum Thema Autos mit Elektro-Antrieben? Eine Option bei der nächsten Anschaffung? Was spricht     dagegen? </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-03-14-foursquare-blogenginenet-widget-version-02.html</id>
    <link href="https://philippkueng.ch/2010-03-14-foursquare-blogenginenet-widget-version-02.html"/>
    <title>Foursquare BlogEngine.NET widget version 0.2</title>
    <updated>2010-03-14T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><strong>Notice</strong><br />     There's a <a href="/2010-04-11-foursquare-blogenginenet-widget-version-03.html">newer release</a>     available.</p> <img src="/assets/images/2010/3/foursquare-blogengine-widget-version-0.2.png" alt="Foursquare BlogEngine widget version 0.2" /> <p>During the last week I've added <a href="https://maps.bing.com">Bing Maps</a> to the widget, so that you're last     check-ins can be displayed on there.</p> <p><strong>Can I deactivate the map?</strong><br />     I've assumed that not all of you, would like to show your check-ins on the map aswell, so I've implemented the     option to turn the map off.</p> <p><strong>Will the map play nicely with my current theme?</strong><br />     For everyone with a custom designed theme it sometimes can be frustrating adding another widget because you have to     alter design settings everytime a new version comes out, to make this part easier, you can now edit the height and     width settings in the edit section of the foursquare blogengine widget.</p> <p><strong>Where can I find the widget?</strong><br />The <a         href="https://4squarebewidget.codeplex.com/releases/view/41923">new release</a>, as all the other releases, is     available at the <a href="https://4squarebewidget.codeplex.com">according codeplex site</a>.</p> <p><strong>Important</strong><br />     With the current version you'll still need to reset the application after you've uploaded the widget. Sorry for     that.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-03-08-ted-vortrag-uber-augmented-reality-karten.html</id>
    <link href="https://philippkueng.ch/2010-03-08-ted-vortrag-uber-augmented-reality-karten.html"/>
    <title>TED Vortrag von Microsoft über Augmented Reality Karten</title>
    <updated>2010-03-08T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>     Heute möchte ich euch das <a href="https://www.ted.com/talks/blaise_aguera.html">TED Video über Augmented Reality         Karten</a> präsentieren (Karten mit erweiterter Realität). Weiss schon, Microsoft, da werden sicher wieder alle     Apple und Google Fanatiker wegklicken, allerdings ist das deren Verlust, denn es lohnt sich allemal sich dieses     Video zu Gemüte zu führen. Gezeigt wird die neueste Generation von Bing Maps (BM), die nun zumindest in den Städten     der USA, einiges zu bieten hat und eventuell eine ernstzunehmende Konkurrenz für Google Maps (GM) werden könnte. </p></p><p><img src="/assets/images/2010/3/world-wide-telescope-bing-maps.png" alt="WorldWideTelescope in Bing Maps" /> <p><strong>WorldWideTelescope</strong><br />     Implementiert wurden unter anderem altbekannte Dinge wie Streetview, allerdings auch wirklich neue Features wie <a         href="https://www.worldwidetelescope.org">WordWideTelescope</a> sobald in der Streetview Ansicht in den Himmel     geschaut wird. </p> <img src="/assets/images/2010/3/backpack-bing-maps.png" alt="Rucksack Streetview in Bing Maps" /> <p><strong>Lokale Photosynths und Indoor Streetview</strong><br />     Desweiteren sind diejenigen <a href="https://photosynth.net">Photosynths</a>, sogenannte 3-dimensionale Fotocollagen     ,die mit GEO Daten versehen sind besonders herausgehoben, sodass die Gegend noch besser als mit Streetview erkundet     werden kann, somit können auch Innenräume und Büros der Öffentlichkeit zugänglich gemacht werden. An den     hochfrequentierten Orten setzte Microsoft teilweise schon Rucksackkameras ein, und das Resultat kann sich durchwegs     sehen lassen. </p></p><p><img src="/assets/images/2010/3/flickr-integration-bing-maps.png" alt="Flickr Integration in Bing Maps" /> <p><strong>Flickr Bilder präzise in Streetview eingebunden</strong><br />     In der Präsentation werden zudem Interaktionen mit GEO getaggten Flickr Bildern gezeigt, hier sehe ich den     Anwendungszweck besonders in der Darstellung der Veränderung eines Ortes. So könnte man sich sicher schneller wieder     an Orten zurechtfinden, die man seit Jahrzehnten nicht mehr besucht hat oder aber auch einfach um der Bevölkerung     die Geschichte eines Ortes näherzubringen. </p></p><p><img src="/assets/images/2010/3/video-bing-maps.png" alt="Live Video Integration in Bing Maps" /> <p><strong>Live Video in Karten Material eingebettet</strong><br />     Zuletzt folgt das beste, die Live-Video Integration. Keine Ahnung wie die das Signal immer richtig an den schon     vorhandenen BM Bildern ausgerichtet haben, allerdings wäre so was an einem Live Event der Hit, man stelle sich sowas     an Olympischen Spielen vor. </p></p><p><p><strong>Eingeschränkte Nutzung da Silverlight nicht überall installiert ist</strong><br />     Der einzige negativ Punkt sehe ich in der konsequenten Verwendung von Silverlight (SL). Kann mir schon vorstellen     das Video Integration mir Javascript (JS) wohl eher eine ungemütliche Angelegenheit wäre, doch schliesst SL bereits     wieder einige Internet Benutzer aus. Vielleicht wäre hier eine HTML5 Version denkbar?     Die Basis Version von BM ist aber nach wie vor in der HTML mit JS Version verfügbar, halt ohne Glossy Features. </p> <p>Bis dato gelang es mir leider nicht diese Features selbst zu testen da die Version die präsentiert wurde eine private     TP (Technology Preview) war. Da hilft wohl nur warten und Däumchen drehen. </p> <p>Was meint ihr zu den Augmented Reality Karten? Traut euch, nur zu... </p></p><p><object width="666" height="454">     <param name="movie" value="https://video.ted.com/assets/player/swf/EmbedPlayer.swf">     </param>     <param name="allowFullScreen" value="true" />     <param name="wmode" value="transparent">     </param>     <param name="bgColor" value="#ffffff">     </param>     <param name="flashvars"         value="vu=https://video.ted.com/talks/dynamic/BlaiseAguerayArcas<i>2010-medium.mp4&su=https://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed</i>thumbnail.jpg&vw=652&vh=368&ap=0&ti=766&introDuration=16500&adDuration=4000&postAdDuration=2000&adKeys=talk=blaise<i>aguera;year=2010;theme=the</i>creative<i>spark;theme=a</i>taste<i>of</i>ted2010;theme=new<i>on</i>ted_com;event=TED2010;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;" />     <embed src="https://video.ted.com/assets/player/swf/EmbedPlayer.swf"         pluginspace="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"         wmode="transparent" bgcolor="#ffffff" width="666" height="468" allowfullscreen="true"         flashvars="vu=https://video.ted.com/talks/dynamic/BlaiseAguerayArcas<i>2010-medium.mp4&su=https://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed</i>thumbnail.jpg&vw=652&vh=368&ap=0&ti=766&introDuration=16500&adDuration=4000&postAdDuration=2000&adKeys=talk=blaise<i>aguera;year=2010;theme=the</i>creative<i>spark;theme=a</i>taste<i>of</i>ted2010;theme=new<i>on</i>ted_com;event=TED2010;"></embed> </object></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-03-01-foursquare-blogenginenet-widget.html</id>
    <link href="https://philippkueng.ch/2010-03-01-foursquare-blogenginenet-widget.html"/>
    <title>Foursquare BlogEngine.NET widget</title>
    <updated>2010-03-01T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><strong>Notice</strong><br />There's a <a         href="/2010-04-11-foursquare-blogenginenet-widget-version-03.html">newer release</a> available. </p> <img src="/assets/images/2010/2/foursquare-logo.png" alt="foursquare log" /> <p>Last Sunday I decided to build a <a href="https://foursquare.com">foursquare</a> sidebar widget for <a         href="https://www.dotnetblogengine.net/" alt="BlogEngine.NET">BlogEngine.NET</a> since there wasn't anything     around yet. The <a href="https://4squarebewidget.codeplex.com/releases/view/41093">current version</a> simply shows     the last places you've checked-in and is mostly based on the twitter widget from <a         href="https://madskristensen.net/">Mads Kristensen</a>.</p> <img src="/assets/images/2010/2/foursquare-blogengine-widget.png" alt="blogengine sidebar widget for foursquare" /> <p><strong>Requirements</strong><br />     In order to use the widget you will need to have .NET 3.5 installed on your server. I will probably port everything     to .NET 2.0 later, but since I was used to work with LINQ, I implemented everything in .NET 3.5. </p> <p><strong>Installation</strong><br />     First of all download the current version available at <a href="https://4squarebewidget.codeplex.com/">codeplex</a>.     Extract it and upload everything to your BlogEngine directory into the widgets folder. If you've uploaded the files     and switched your current BlogEngine installation to .NET 3.5 you're ready to open your site in the browser and add     the widget to the sidebar.<br />     After you've added the widget, you'll have to specify some settings regarding your foursquare feeds. Simply open <a         href="https://feeds.foursquare.com" alt="foursquare feeds">https://feeds.foursquare.com</a> and copy-paste the     urls for the rss and kml feeds into the according input fields inside the foursquare widget edit section. Then go to     your foursquare page by clicking on me in the navigation bar at the top, copy and paste the url into the account url     input field. Next decide how much your feed should be requested from foursquare. But keep in mind, that if you     choose the number of request per hour to high you might get blocked by foursquare. I guess every 15 minutes should     already be enough for the average user. Finally choose how many check-ins you want to display on your blog. Next     save your settings, and then you're ready to enjoy foursquare together with BlogEngine.NET.</p><p></p> <p><strong>Important</strong><br />     It's possible that the BlogEngine application has to be restarted, after you have added the foursquare widget. </p> <p>If you have any suggestions or ideas how the widget can be extended or improved please feel free to leave to contact me on <a         href="https://twitter.com/philippkueng">twitter</a>.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-02-22-widescreen-wallpaper-von-british-columbia-canada.html</id>
    <link href="https://philippkueng.ch/2010-02-22-widescreen-wallpaper-von-british-columbia-canada.html"/>
    <title>Widescreen Wallpaper von Alberta und British Columbia, Canada</title>
    <updated>2010-02-22T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img src="/assets/images/2010/2/british-columbia-canada.png" alt="" /></p> <p>Im Sommer 2008 gerade nach erfolgreich bestandener Matur war ich zusammen mit einem Freund im Westen Canadas     unterwegs. Dabei entstanden einige Panoramas welche nun endlich zusammengesetzt wurden. (ich weiss... k&ouml;nnte     schneller gehen ;-)</p> <p>Diese Panoramas lassen sich exzellent f&uuml;r Dualscreen PC Systeme als Hintergrundbild nutzen. Die maximale     Aufl&ouml;sung ist jeweils 3840x1200 Pixel was f&uuml;r zwei 24 Zoll Monitore ausreichen sollte. Damit nicht alle     Bilder einzeln heruntergeladen werden m&uuml;ssen, kann man auch das <br /><a         href="/assets/files/2010/2/Widescreen-Wallpaper-Alberta-und-British-Columbia,-Canada.themepack">Windows 7 Themepack</a>     herunterladen.</p> <p><br /><strong>Whistler Blackcomb mit Ilanaaq links</strong></p> <p><a class="image" title="Whistler Blackcomb mit Ilanaaq links by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355823919/"><img             src="https://farm3.static.flickr.com/2726/4355823919<i>0aeee47ee7</i>b.jpg"             alt="Whistler Blackcomb mit Ilanaaq links" /></a></p> <p><br /><strong>Nanaimo auf Vancouver Island</strong></p> <p><a class="image" title="Nanaimo auf Vancouver Island by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355932321/"><img             src="https://farm5.static.flickr.com/4002/4355932321<i>6595d4312f</i>b.jpg"             alt="Nanaimo auf Vancouver Island" /></a></p> <p><br /><strong>Kelowna</strong></p> <p><a class="image" title="Kelowna by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355930295/"><img             src="https://farm5.static.flickr.com/4050/4355930295<i>fa9f59db39</i>b.jpg" alt="Kelowna" /></a></p> <p><br /><strong>Drumheller</strong></p> <p><a class="image" title="Drumheller by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4356620810/"><img             src="https://farm5.static.flickr.com/4072/4356620810<i>0040162104</i>b.jpg" alt="Drumheller" /></a></p> <p><br /><strong>Maligne Lake</strong></p> <p><a class="image" title="Maligne Lake by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4356617890/"><img             src="https://farm5.static.flickr.com/4005/4356617890<i>db84978ba6</i>b.jpg" alt="Maligne Lake" /></a></p> <p><br /><strong>Valley of the five lakes</strong></p> <p><a class="image" title="Valley of the five lakes by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4356614516/"><img             src="https://farm5.static.flickr.com/4013/4356614516<i>d31c036eff</i>b.jpg" alt="Valley of the five lakes" /></a> </p> <p><br /><strong>Valley of the five lakes</strong></p> <p><a class="image" title="Valley of the five lakes by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355859493/"><img             src="https://farm3.static.flickr.com/2660/4355859493<i>bbc337c730</i>b.jpg" alt="Valley of the five lakes" /></a> </p> <p><br /><strong>See oberhalb von Lake Louise</strong></p> <p><a class="image" title="See oberhalb von Lake Louise by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355850417/"><img             src="https://farm5.static.flickr.com/4064/4355850417<i>300760d494</i>b.jpg"             alt="See oberhalb von Lake Louise" /></a></p> <p><br /><strong>Lake Minnewanka</strong></p> <p><a class="image" title="Lake Minnewanka in der n&auml;he von Banff by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355847587/"><img             src="https://farm3.static.flickr.com/2769/4355847587<i>5770f64c7b</i>b.jpg"             alt="Lake Minnewanka in der n&auml;he von Banff" /></a></p> <p><br /><strong>Lake Minnewanka</strong></p> <p><a class="image" title="Lake Minnewanka in der n&auml;he von Banff by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355845207/"><img             src="https://farm3.static.flickr.com/2736/4355845207<i>58ce39c637</i>b.jpg"             alt="Lake Minnewanka in der n&auml;he von Banff" /></a></p> <p><br /><strong>See auf dem Weg von Vancouver auf Banff</strong></p> <p><a class="image" title="See auf dem Weg von Vancouver auf Banff by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4356588258/"><img             src="https://farm5.static.flickr.com/4069/4356588258<i>4c5eafabee</i>b.jpg"             alt="See auf dem Weg von Vancouver auf Banff" /></a></p> <p><br /><strong>See in der n&auml;he von Whistler Bungee</strong></p> <p><a class="image" title="See in der n&auml;he von Whistler Bungee by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355840019/"><img             src="https://farm3.static.flickr.com/2687/4355840019<i>823aa7fbed</i>b.jpg"             alt="See in der n&auml;he von Whistler Bungee" /></a></p> <p><br /><strong>Grouse Mountain bei Vancouver</strong></p> <p><a class="image" title="Grouse Mountain bei Vancouver by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4356567192/"><img             src="https://farm5.static.flickr.com/4012/4356567192<i>2c95f9b5f3</i>b.jpg"             alt="Grouse Mountain bei Vancouver" /></a></p> <p><br /><strong>Insel nahe Tofino auf Vancouver Island</strong></p> <p><a class="image" title="Insel nahe Tofino auf Vancouver Island by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355801673/"><img             src="https://farm5.static.flickr.com/4054/4355801673<i>a93e0891d3</i>b.jpg"             alt="Insel nahe Tofino auf Vancouver Island" /></a></p> <p><br /><strong>Vancouver Island</strong></p> <p><a class="image" title="Vancouver Island by Philipp K&uuml;ng, on Flickr"         href="https://www.flickr.com/photos/agentcmos/4355793519/"><img             src="https://farm3.static.flickr.com/2703/4355793519<i>b604bc0db7</i>b.jpg" alt="Vancouver Island" /></a></p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-02-16-zune-software-cache-verschieben.html</id>
    <link href="https://philippkueng.ch/2010-02-16-zune-software-cache-verschieben.html"/>
    <title>Zune Software Cache verschieben</title>
    <updated>2010-02-16T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/2/zune-software-quickplay.png" alt="Zune Software Quickplay" style="border: none;" /> <p>Die Zune Software das schöne Pendant zu Apples iTunes ist bei mir die wahrscheinlich am meisten genutzte Applikation     neben dem Twitterclient, Outlook und dem Browser.     <br />Damit das Programm schön flüssig läuft und die <a href="https://de.wikipedia.org/wiki/Vodcast">Vodcasts</a>     auch möglichst schnell mit dem Gerät synchronisiert werden können, werden die Videos vorkonvertiert und im Cache     gespeichert. </p> <p>Falls man ohnehin schon knapp an Speicherplatz auf dem C Laufwerk ist dürfte das cachen womöglich eine mittlere     Katastrophe auslösen. Damit es nicht so weit kommt kann man den Cache Speicher einschränken was eine Performance     einschränkung bedeutet oder man verschiebt den Cache Ordner einfach auf ein anderes Laufwerk. Somit gewinnt man     ruckzuck ca. 7GB an Speicherplatz was den Computer unter umständen wieder recht beschleunigen kann.</p> <p><strong>Wie verschiebt man den Cache der Zune Software?</strong><br />     Nach dem starten der Applikation klickt man rechts oben auf <strong>Einstellungen</strong></p><img     src="/assets/images/2010/2/zune-software-einstellungen.png" alt="Zune Software Einstellungen" /> <p>und danach auf <strong>gerät</strong></p><img src="/assets/images/2010/2/zune-software-geraet.png"     alt="Zune Software Gerät Einstellungen" /> <p>und nun auf <strong>Konvertierungseinstellungen</strong>. Unter dem Punkt <strong>Konvertierungsort</strong> ist es     möglich den neuen Speicherort des Caches festzulegen.</p><img     src="/assets/images/2010/2/zune-software-konvertierungseinstellungen-und-cache.png"     alt="Zune Software Konvertierungseinstellungen" /> <p>Nach dem Klick auf OK werden sämtliche Cache Dateien an den neuen Speicherort verschoben. </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-02-02-automatische-mysql-backups-mit-mysql-administrator-unter-windows-vista-7.html</id>
    <link href="https://philippkueng.ch/2010-02-02-automatische-mysql-backups-mit-mysql-administrator-unter-windows-vista-7.html"/>
    <title>Automatische MySQL Backups mit MySQL Administrator unter Windows Vista / 7</title>
    <updated>2010-02-02T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Letzte Woche haben wir gesehen wie man den <a         href="https://philippkueng.ch/webspace-mit-wget-und-einer-batch-datei-sichern.html">Webspace sichern</a>     kann. Dieses mal werden wir uns ums Backup der MySQL Datenbank kümmern.     Kurz vorweg, ich werde ich in diesem Beitrag nur über das sichern einer von aussen zugänglichen Datenbank schreiben.     Ebenfalls ist das hier gezeigte für Windows Vista / 7 vorgesehen. </p> <p>     Bevor wir mit der eigentlichen Sicherung beginnen können, muss ein Passwort für das aktuelle Benutzerkonto vergeben     werden. Um dies zu bewerkstelligen auf <i>Start > Systemsteuerung > Benutzerkonten</i> klicken und <i>Kennwort für         das eigene Konto erstellen</i> anwählen. Passwort eingeben und bestätigen. </p> <p>     <strong>Hinweis:</strong> Durch das hinzufügen eines Passwortes wird nun jedes mal nach dem Ruhezustand oder beim     Hochfahren nach dem Kennwort gefragt. Für die Eingabe beim Hochfahren gibt es allerdings einen Trick sodass man es     nie wieder eingeben muss und der Computer immer direkt ins Konto startet. </p> <p>     <strong>Lösung:</strong> Klicke auf Start und gib ins Suchfeld <i>netplwiz</i> ein. Wähle nun das aktuelle Konto an,     und entferne das Häkchen bei <i>Benutzer müssen Benutzernamen und Kennwort eingeben</i>. Nach einem klick auf     Übernehmen sollte der Computer beim nächsten Starten nicht wieder nach dem Kennwort verlangen. </p> <p>Nachdem die Passwort Angelegenheiten geklärt sind können wir endlich mit der Sicherung der DB beginnen. Dafür     benötigen wir das Programm MySQL Administrator welches Bestandteil der <a         href="https://dev.mysql.com/downloads/gui-tools/5.0.html">MySQL GUI Tools</a> ist. Am einfachsten die Windows     (x86) Variante (aktuell Version 5.0-r17) auswählen und herunterladen. </p> <p>     <strong>Passwort Speicher</strong><br />Sobald das Software Paket installiert ist, kann man den MySQL Administrator     mit der Angabe der Datenbank Daten starten. Damit die Backups automatisch ablaufen, müssen die Passwörter für den     Windows Benutzer Account und die MySQL Datenbanken gespeichert werden. Klicke dafür in der Menüleiste auf     <i>Tools</i> gefolgt von <i>Options</i>. Aktiviere das Häkchen bei <i>Store passwords</i> und wähle für <i>Password         storage method</i> die Option <i>Obscured</i> aus. Bestätige alles mit einem klick auf <i>Apply</i> und     anschliessend <i>Close</i>. </p> <img src="/assets/images/2010/2/mysql-administrator-options-password.png" alt="MySQL Administrator Options Window" /> <p>     <strong>Sicherungsprojekt erstellen</strong><br />Nun zum Backup, klicke in der linken Spalte auf <i>Backup</i> und     dann auf den Knopf <i>New Project</i>.Gib einen Namen für die Sicherung ein und füge zu sichernde Datenbanken mit     eine klick auf den <i>></i> Knopf hinzu. Sobald alle notwendigen DBs hinzugefügt wurden, kann auf den Tab Reiter     <i>Schedule</i> geklickt werden um die Sicherungsintervalle festzulegen. </p> <img src="/assets/images/2010/2/mysql-administrator-create-backup.png" alt="MySQL Administrator Backup erstellen" /> <p><strong>Sicherungsintervalle einstellen</strong><br />Setze zuerst das Häkchen bei <i>Schedule this backup         project</i> und gib den Pfad und den Dateinamen an unter welchem die MySQL Datei auf dem Computer abgelegt     werden soll. Weiter unten findet man die ziemlich selbst erklärenden Einstellungen wo festgelegt werden kann wann     und in welchen Abständen eine Sicherungskopie gemacht wird. Falls alle Variablen gemäss den individuellen     Anforderungen eingestellt sind genügt ein klick auf <i>Save</i> und die Angabe des Passwortes des aktuellen Windows     Benutzerkontos um die automatischen Backups zu aktivieren. </p> <img src="/assets/images/2010/2/mysql-administrator-schedule-backup.png" alt="" /> <p>     <strong>Tipp:</strong> Der Speicherort für die .sql Datei sollte falls möglich nicht auf dem C Laufwerk liegen, da     das Backup sonst aus Grund ungenügender Rechte scheitern könnte. </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-01-26-webspace-mit-wget-und-einer-batch-datei-sichern.html</id>
    <link href="https://philippkueng.ch/2010-01-26-webspace-mit-wget-und-einer-batch-datei-sichern.html"/>
    <title>Website mit WGET und einer Batch Datei sichern</title>
    <updated>2010-01-26T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Computer Backups sind wie gesunde Ern&auml;hrung. Man <s>verdr&auml;ngt</s> vergisst sie aus Bequemlichkeit bis es zu     sp&auml;t ist. Dabei w&auml;ren zumindest Website Backups so einfach zu bewerkstelligen. Wie das genau geht werde     ich in mehreren Teilen zeigen.</p> <p>Um den Speicherplatz mit all den wichtigen Bildern und Dateien zu sichern bedienen wir uns des unter der <a         href="https://en.wikipedia.org/wiki/GPLv3#Version_3">GPL Version 3 Lizenz</a> stehenden <a         href="https://www.gnu.org/software/wget/">WGET</a> Programms. Da WGET in <a         href="https://de.wikipedia.org/wiki/C_(Programmiersprache)">C</a> geschrieben ist, sollten &auml;hnliche Backup     Methoden mit diesem Programm auch auf anderen Betriebssystemen m&ouml;glich sein. Der Einfachheit halber (und weil     ich kein Mac besitze) werde ich hier jedoch nur die Sicherung unter Windows demonstrieren.</p> <p><strong>Zuerst einmal was ist eine Batch Datei?</strong><br />     Eine Batch Datei ist eine normale Text Datei mit der Endung .txt. Der einfachste Weg die Text Datei in eine Batch     Datei zu verwandeln ist, diese in Notepad zu &ouml;ffnen, und danach auf Datei &gt; Speichern unter zu klicken. Im     nun erscheinenden Dialog w&auml;hlt man f&uuml;r Dateityp Alle Dateien (<em>.</em>) aus. Nun kann der neue Dateinamen mit     der Endung .bat eingegeben werden. <i>Bsp.: website-sicherung.bat</i>. Danach auf Speichern klicken und man hat eine     eigene Batch Datei erstellt.</p><img src="/assets/images/2010/1/website-sicherung-bat-notepad.png"     alt="Batch Datei in Notepad erstellen" /> <p>Die Anweisungen, welche in die Batch Datei kommen sind aufgebaut wie folgt. <br /><strong>Wichtig:</strong> Es gilt     alles auf nur eine Linie zu schreiben, da dies sonst als 2 verschiedene Befehle interpretiert wird.</p></p><p>{% highlight text %} [Speicherort der wget.exe Datei] -P[Speicherort der lokalen Website Kopie] ftp://[FTP Benutzername]:[FTP Passwort]@[FTP
Domain] -m {% endhighlight %}</p><p><p><strong>Speicherort der WGET Datei</strong><br />     Dabei gilt es zu beachten, dass falls der Pfad der WGET Datei Leerzeichen enth&auml;lt, alles mit     Anf&uuml;hrungszeichen geschrieben werden muss ansonsten interpretiert der Computer die Zeichen nach dem ersten     Leerzeichen als Variable f&uuml;r das Programm. <i>Bsp.: "C:\wget ordner\wget.exe"</i></p> <p><strong>Speicherort der lokalen Website Kopie</strong><br />     Das Zeichen -P kennzeichnet den nachfolgenden Pfad als Speicherort f&uuml;r die heruntergeladenen Dateien. Es ist     wichtig das kein Leerzeichen zwischen -P und dem Nachfolgenden Pfad ist, da WGET sonst annimmt der Speicherort sei     Leer. <i>Bsp.: -P"C:\website sicherung"</i></p> <p><strong>FTP</strong><br />     Nach dem Speicherort der Daten kommen die FTP Angaben. Da diese sehr unterschiedlich von der eigentlichen Website     sein k&ouml;nnen, empfehle ich hier das jeweilige Datenblatt vom Hosting Anbieter anzuschauen. <i>Bsp.:         ftp://admin:passwort@ftp.example.com/</i></p> <p><strong>Kopierverfahren</strong><br />     Zum Schluss folgen die Zeichen -m, was bedeutet das ein Mirroring (exakte Kopie) erstellt wird.</p> <p>Nachdem nun alle Parameter gekl&auml;rt sind, kann das Beispiel Kommando zusammengesetzt werden.</p></p><p>{% highlight text %} "C:\wget ordner\wget.exe" -P"C:\website sicherung" ftp://admin:passwort@ftp.example.com/ -m {% endhighlight %}</p><p><p><strong>Tipp f&uuml;r Windows Vista / 7 Benutzer:</strong> Falls die Website Kopie auf dem C Laufwerk gespeichert     werden sollen, sind evt. Administrator Rechte notwendig.</p> <p>Schritt 2 wird sich um das sichern der Datenbank drehen und n&auml;chsten Montag hier erscheinen.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-01-19-oracle-sun-und-openofficeorg.html</id>
    <link href="https://philippkueng.ch/2010-01-19-oracle-sun-und-openofficeorg.html"/>
    <title>Oracle, Sun und OpenOffice.org</title>
    <updated>2010-01-19T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Wer an der ETH Zürich studiert muss sich wärend seiner Zeit Punkte in Geisteswissenschaftlichen Fächern     (sogenannten <a         href="https://www.vvz.ethz.ch/Vorlesungsverzeichnis/sucheLerneinheiten.do?lang=de&search=on&semkez=2010S&studiengangTyp=&deptId=&studiengangAbschnittId=37801&bereichAbschnittId=&unterbereichAbschnittId=&lerneinheitstitel=&lerneinheitscode=&famname=&rufname=&wahlinfo=&lehrsprache=&katalogdaten=&search=Suchen">D-GESS</a>)     erarbeiten, damit soll das züchten von ahnungslosen Elite-Zombies verhindert werden.     Um meine Punkte zu sammeln trug ich mich in das Pflichtwahlfach <a href="https://digisus.info/blog/">'Digitale         Nachhaltigkeit in der Wissensgesellschaft' von Marcus M. Dapp</a> ein.      Getreu dem Motto, D-GESS ist nicht einfach eine weitere Vorlesung, war auch die Aufgabenstellung innerhalb des     Semesters eine andere. Gefragt war eine Schriftliche Arbeit und eine dazugehörige Präsentation. Was natürlich schon     Welten besser ist als die sonst üblichen Semester Prüfungen.     Nach einigem Überlegen wählte ich die aktuelle Thematik rund um die Übernahme von Sun durch Oracle und was dies für     Sun's OpenOffice.org (kurz OO.o) bedeuten wird. Ob eine Software Stiftung allenfalls in Frage kommt? Was sind andere     erfolgreiche Stiftungen im Software Sektor? Was sind deren Vor- und Nachteile? - Dies und weitere Fragen werden sich     hoffentlich nach dem lesen <a         href="/assets/files/2010/1/Digitale+Nachhaltigkeit+-+Oracle+Sun+und+Open+Office_final.pdf">meiner Arbeit</a> erübrigen     (ca. 90kB). Zusätzlich sind unten auch die Slides eingebettet, jedoch leider ohne Ton, da ich den vergessen habe     aufzunehmen (ist vielleicht auch besser so ;-) </p> <div style="width:666px;text-align:left" id="__ss_2928863"><object style="margin:0px" width="666" height="556">         <param name="movie"             value="https://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oraclesunundopenoffice-org-100116093101-phpapp02&rel=0&stripped_title=oracle-sun-und-openofficeorg" />         <param name="allowFullScreen" value="true" />         <param name="allowScriptAccess" value="always" /><embed             src="https://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oraclesunundopenoffice-org-100116093101-phpapp02&rel=0&stripped_title=oracle-sun-und-openofficeorg"             type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="666"             height="556"></embed>     </object></div> <p>Das Highlight war jedoch, als eine Woche später <a         href="https://en.wikipedia.org/wiki/Simon<i>Phipps</i>(programmer)">Simon Phipps</a> von der OpenSource Abteilung von     Sun Microsystems an der ETH zu Besuch war, und auch die Vorlesung besuchte. Da er weitestgehend derjenige ist, der     Entscheiden muss / kann wie OO.o zukünftig behandelt wird. Leider konnte er sich nicht wirklich zu der Übernahme     äussern da diese noch nicht abgeschlossen ist. Doch vermittelte er uns Anwesenden viel prektisches Wissen wie Firmen     mit OpenSource umgehen, und damit trotz allen Widerständen gut Gewinn erzielt werden kann.</p> <img src="/assets/images/2010/1/Simon-Phipps.jpg" alt="Simon Phipps - Sun Microsystems" /> <p><strong>Korrektur</strong><br />Wie Stephan in dem Forum Eintrag <a         href="https://de.openoffice.info/viewtopic.php?f=16&t=34701">'Zukunft von OpenOffice nach Sun-Übernahme'</a>     hingewiesen hat, kann eine bestehende GPL Lizenz (auch LPGL und dessen verwandte) nicht zurückgezogen werden. D.h.     Oracle könnte die Lizenz der aktuellen, unter der GPL Lizenz erhältlichen, Version nicht ändern, sondern lediglich     eine spätere Version unter einer neuen Lizenz veröffentlichen.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-01-18-landschaftstreffen-2010-in-siebnen.html</id>
    <link href="https://philippkueng.ch/2010-01-18-landschaftstreffen-2010-in-siebnen.html"/>
    <title>Landschaftstreffen 2010 in Siebnen</title>
    <updated>2010-01-18T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>Am 16.-17.01.2010 war mein Zuhause ganz im Zeichen der Fasnacht. Über 4000 regionale und internationale kostümierte     besuchten uns anlässlich des Landschaftstreffens und marschierten bei der über 3 stündigen Parade durch Siebnen (SZ)     mit.</p> <object width="666" height="500">     <param name="flashvars"         value="offsite=true&lang=en-us&page<i>show</i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157623234246576%2Fshow%2F&page<i>show</i>back<i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157623234246576%2F&set</i>id=72157623234246576&jump_to=">     </param>     <param name="movie" value="https://www.flickr.com/apps/slideshow/show.swf?v=71649">     </param>     <param name="allowFullScreen" value="true">     </param><embed type="application/x-shockwave-flash" src="https://www.flickr.com/apps/slideshow/show.swf?v=71649"         allowFullScreen="true"         flashvars="offsite=true&lang=en-us&page<i>show</i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157623234246576%2Fshow%2F&page<i>show</i>back<i>url=%2Fphotos%2Fagentcmos%2Fsets%2F72157623234246576%2F&set</i>id=72157623234246576&jump_to="         width="666" height="500"></embed> </object> <p>Die deutsche Hexengruppe (in den 2 letzten Bildern der Slideshow sichtbar) enterte sogar unseren Balkon indem sie     über den Wasserabfluss Schacht hochkletterten.</p> <p>Auch das Fernsehen von <a href="https://www.telezueri.ch">Tele Züri</a> war mit <a         href="https://www.telezueri.ch/index.php?id=60814">Benno Kaelin</a> anwesend und berichtete in den     Abendnachrichten davon.</p> <object width="666" height="401">     <param name="movie" value="https://www.youtube.com/v/2t6TAJ0YxGo&hl=en_US&fs=1&">     </param>     <param name="allowFullScreen" value="true">     </param>     <param name="allowscriptaccess" value="always">     </param><embed src="https://www.youtube.com/v/2t6TAJ0YxGo&hl=en_US&fs=1&" type="application/x-shockwave-flash"         allowscriptaccess="always" allowfullscreen="true" width="666" height="401"></embed> </object></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2010-01-06-eine-woche-mit-jolicloud-erfahrungsbericht.html</id>
    <link href="https://philippkueng.ch/2010-01-06-eine-woche-mit-jolicloud-erfahrungsbericht.html"/>
    <title>Eine Woche mit Jolicloud - Ein Erfahrungsbericht</title>
    <updated>2010-01-06T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><img src="/assets/images/2010/1/jolicloud-logo.png" alt="" /> <p>In der letzten Semesterwoche vor den Studienferien habe ich mich einem radikalen Test unterzogen. Die Idee war eine     Woche nur mit <a href="https://www.jolicloud.com">Jolicloud</a> OS zu arbeiten (wenigstens auf dem Laptop) um danach     objektiv ein Urteil über das Produkt fällen zu können.</p> <strong>Microsoft OneNote und Windows Live Writer vs. OpenOffice.org</strong><br /> <img src="/assets/images/2010/1/OneNote_und_Windows_Live_Writer_vs_OOo_und_Dropbox_Sketch.jpg" alt="" /> <p>Zu allererst mussten natürlich passende Programme gefunden werden wie ich sie in der Windows Welt verwende. Trotz <a         href="https://de.wikipedia.org/wiki/Wine">Wine</a> das per Jolicloud problemlos installiert werden konnte brachte     ich es nicht fertig Microsoft OneNote oder <a href="https://download.live.com">Windows Live Writer</a> zu     installieren, wäre wohl auch zu einfach gewesen ;-). Das Problem hätte mit einer virtuellen Windows Machine gelöst     werden können. Jedoch virtuelle Maschine auf Netbook, keine besonders gute Idee! Daher musste ich wohl oder übel     darauf verzichten.</p> <p>Doch zum Glück gab es da noch Evernote, das sogar auch per Jolicloud installiert werden konnte. Naiv installierte ich     es mit einem klick auf das schöne Evernote Icon, doch musste danach feststellen das dies lediglich ein Bookmark für     Firefox war das auf <a href="https://www.evernote.com">Evernote.com</a> verwies. Das ganze wäre nicht weiter schlimm,     könnte ich ein Mobiles Internet Abo mein eigen nennen, ohne ist es dann aber einfach nur nutzlos. Evernote aufgeben     stand noch nicht zur Debatte, so versuchte ich es mit der Evernote Beta Installation 3.5 unter Wine. Die Beta     benötigte leider das .NET Framework 3.5 SP1 woran dann auch dieser Versuch scheiterte. Glücklicherweise     funktionierte dann die letzte Variante, nämlich die finale 3.1 Version für Windows unter Wine. Zum schreiben genügt     Evernote 3.1 gerade, doch brauchte es Aufgrund der Emulation viel mehr Batterie, hat komische PNG Fehler wie in IE6     und ist auch nicht sonderlich schnell. Daher entschied ich mich nach noch einer anderen Alternative zu suchen.</p> <p>OpenOffice.org im Zusammenhang mit Dropbox war die nächstliegende und vermutlich beste Wahl. Die 1-Klick installation     per Jolicloud funktionierte Problemlos und auch Dropbox lies sich ohne murren einrichten.</p> <p><em>Nebenbei auch das Team von Jolicloud findet diese Lösung genial, sodass sie sie ausbauen wollen wie, im Interview         mit Techcrunch Michael Arrington, verkündet wurde (Video unten).     </em></p><object width="666" height="400">     <param name="movie" value="https://www.youtube.com/v/5-foFuQkL1I&hl=en_US&fs=1&">     </param>     <param name="allowFullScreen" value="true">     </param>     <param name="allowscriptaccess" value="always">     </param><embed src="https://www.youtube.com/v/5-foFuQkL1I&hl=en_US&fs=1&" type="application/x-shockwave-flash"         allowscriptaccess="always" allowfullscreen="true" width="666" height="400"></embed> </object> <br /><br /><strong>Gute Performance</strong><br /> <img src="/assets/images/2010/1/Jolicloud_Performance.jpg" alt="" /> <p>Bezüglich der Geschwindigkeit kann ich nur bedingt Auskunft geben, da Jolicloud auf einem 16GB USB Stick installiert     wurde und nicht wie normalerweise auf der internen Festplatte. Auch die Hardware ein HP 2710P (obwohl schon 1.5     Jahre alt) liegt in der Leistungsklasse einiges höher als ein Durchschnitts-Netbook.</p> <p>Die Startzeiten bei meiner Konstellation ist bei ca. 40 Sekunden verglichen mit dem Windows 7 das auf der internen     Festplatte installiert ist und ca. 50 Sekunden benötigt.     Jolicloud muss glücklicherweise nach dem hochfahren nicht mehr unnötig Programme oder deren Teile nachladen, sodass     angeklickte Programme starten wie wenn der Computer schon einige Zeit gelaufen wäre. (Was ja bei Windows nicht immer     der Fall ist ;-) <br />Das allerdings auch Jolicloud nicht perfekt ist zeigte sich, als ich den Standby oder     Ruhezustand Betrieb wechseln wollte. Die Abschaltphase dauerte ungefähr so lange wie wenn man den Computer ganz     herunterfahren wollte. Der spätere Warm-Start benötigte danach ungefähr so lange wie wenn man den Computer kalt     neustartete. Somit verstehe ich nun auch endlich warum die meisten Mitstudenten die Linux verwenden ihre Laptops     immer herunterfahren. </p> <strong>Doppelte Anmeldungen sind einfach nur nervig (und unnötig)</strong><br /> <p>Nachdem man das eine Passwort zum starten der Machine verwendet hat, wird beim starten der Jolicloud Anwendung     wiederum nach einem anderen Passwort gefragt. Das ganze ist völlig verständlich, da die Jolicloud Anwendung eine     Webseite ist die im modifizierten Firefox geöffnet wird. Allerdings wiederspricht das meinem Verständnis von Cloud     OS massiv. Wenn die Jolicloud Entwickler schon den Firefox modifizieren sollten sie sicherlich auch in der Lage sein     diesen Prozess zu vereinfachen. Oder worin sollte sonst der Unterschied zwischen einem normalen Linux und dem     Jolicloud bestehen?</p> <strong>Worin besteht nun der Mehrwert von Jolicloud (PreBeta) gegenüber einer ‚normalen‘ Linux     Distribution?</strong><br /> <p>Dies habe ich mich die ganze Woche ohne Ergebnis gefragt. Bin jedoch offen für Vorschläge. </p> <strong>Mein Fazit</strong><br /> <p>In dieser Woche wurde mir bewusst, dass ich trotz der Abhängigkeit vom Internet nicht alles nur per Internet     erledigen kann resp. will. Gerade Backup Katastrophen in der jüngsten Vergangenheit sollten uns doch darauf     hinweisen, dass es eine Firma relativ wenig stört wenn Benutzerdaten verloren gehen, dies andererseits für Benutzer     weniger der Fall sein wird. </p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2009-12-27-starten-des-scanvorgangs-beim-drucken-der-schnellwahltaste-an-einem-canon-scanner-unter-windows-vista-7.html</id>
    <link href="https://philippkueng.ch/2009-12-27-starten-des-scanvorgangs-beim-drucken-der-schnellwahltaste-an-einem-canon-scanner-unter-windows-vista-7.html"/>
    <title>Starten des Scanvorgangs beim drücken der Schnellwahltaste an einem Canon Scanner unter Windows Vista / 7</title>
    <updated>2009-12-27T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img title="CanoScan Programmauswahl Fenster" src="/assets/images/CanoScan%20Programmauswahl%20Fenster.png"         alt="CanoScan Programmauswahl Fenster" /></p> <p>Mein Scanner, ein Canon CanoScan 8800F hat direkt auf dem Deckel verschiedene Direktwahl-Tasten, damit man beim     scannen nicht immer zum Computer und wieder zur&uuml;ck rennen muss. Was ganz nett klingt hat unter Windows Vista /     7 mit installiertem Photoshop allerdings so seine T&uuml;cken. Nach dem dr&uuml;cken der Schnellwahltaste f&uuml;r     PHOTO/FILM erscheint auf dem Computer eine Auswahl Box in welcher MP Navigator EX Ver1.0 angew&auml;hlt werden muss     damit der Scanvorgang endlich startet.</p> <p>Soviel zur Ausgangslage, nun zu den L&ouml;sungen des Problems. Zuerst sollte der <strong>Scanner         angeschaltet</strong> sein. Dann geht man auf <strong>Start &gt; Ger&auml;te und Drucker</strong>.</p> <p><img title="Windows 7 Ger&auml;te und Drucker" src="/assets/images/Windows_7_Geraete_und_Drucker.png"         alt="Windows 7 Ger&auml;te und Drucker" /></p> <p>Hier <strong>klickt</strong> man <strong>rechts</strong> auf den <strong>Scanner</strong> und w&auml;hlt     <strong>Scaneigenschaften</strong> an.</p> <p><img title="Windows Vista 7 Ger&auml;te und Drucker Scaneigenschaften"         src="/assets/images/Windows<i>Vista</i>7<i>Geraete</i>und<i>Drucker</i>Scaneigenschaften.png"         alt="Windows Vista 7 Ger&auml;te und Drucker Scaneigenschaften" /></p> <p>Nun kann man das gew&uuml;nschte <strong>Ereignis ausw&auml;hlen</strong>, in meinem Fall CanoScan PHOTO/FILM Button     und das Programm welches gestartet werden soll falls die PHOTO/FILM Taste auf dem Scanner gedr&uuml;ckt wird.</p> <p><img title="CanoScan Scaneigenschaften" src="/assets/images/CanoScan%20Scaneigenschaften.png"         alt="CanoScan Scaneigenschaften" /></p> <p>Nun kommen wir zum zweiten Problem, nach dem dr&uuml;cken auf OK erscheint n&auml;mlich die Meldung <strong>Fehler         beim Registrieren des Ereignisses</strong>.</p> <p><img title="Fehler beim Registrieren des Ereignisses"         src="/assets/images/Fehler%20beim%20Registrieren%20des%20Ereignisses.png"         alt="Fehler beim Registrieren des Ereignisses" /></p> <p>Dies ist ein Berechtigungsproblem und kann gel&ouml;st werden indem man die <strong>Windows Taste</strong>     dr&uuml;ckt und <strong>regedit</strong> eingibt, um den Registry Editor aufzurufen.</p> <p><em><strong>Warnung</strong> In der Registry ist Vorsicht geboten, da falsche &Auml;nderungen, neu aufsetzen des         Betriebssystems bedeuten k&ouml;nnen.</em></p> <p>In der Registry geht sucht man den obersten Knoten <strong>HKEY<i>LOCAL</i>MACHINE</strong> und danach die folgenden     Unterknoten <strong>SYSTEM &gt; CurrentControlSet &gt; Control &gt; Class</strong>. Ab hier stehen nur noch vom     Computer generierte Namen und diese k&ouml;nnen bei jedem Computer anders sein. Daher muss der <strong>Knoten Class         angeklickt</strong> werden. Nun w&auml;hlt man oben <strong>Bearbeiten &gt; Suchen</strong> an, und schreibt ins     Suchfeld <strong>imaging devices</strong>. Nach dem Klick auf <strong>Suchen</strong> &ouml;ffnet sich ein Ordner.     (wie unten im Bild)</p> <p><img title="Registry Imaging Devices" src="/assets/images/Registry%20Imaging%20Devices.png"         alt="Registry Imaging Devices" /></p> <p>Nach einem <strong>Rechtsklick auf diesen Ordner</strong> (in meinem Fall {6BDD1FC6-810F-11D0-BEC7-08002BE2092F} )     w&auml;hlt man die Option <strong>Berechtigungen&hellip;</strong></p> <p><img title="Registry Berechtigungen" src="/assets/images/Registry%20Berechtigungen.png" alt="Registry Berechtigungen" /></p> <p>Klickt unter Gruppen- und Benutzernamen, <strong>Benutzer</strong> an und<strong> setzt den Hacken bei Vollzugriff         Zulassen</strong>. Nach dem <strong>&Uuml;bernehmen</strong> der &Auml;nderungen sollte nun auch das Zuweisen     der verschiedenen Programme funktionieren sodass bei einem Klick auf die Scantaste auch wirklich das Scanprogramm     auf dem Computer startet und auch effektiv Zeit eingespart werden kann.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2009-12-04-xbox-hardware-architektur-mit-nick-baker.html</id>
    <link href="https://philippkueng.ch/2009-12-04-xbox-hardware-architektur-mit-nick-baker.html"/>
    <title>Xbox Hardware Architektur mit Nick Baker</title>
    <updated>2009-12-04T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><strong>Nick Baker</strong>, General Manager für das <strong>Xbox Architektur Design</strong> Team stand     <strong>Robert Hess</strong> dem Mann hinter der Studio Sendung von Microsoft, <strong>Behind the Code</strong>,     eine Stunde lang rede und Antwort, was seine Karriere und die Xbox Architektur angeht. Sehr interessant was man mit     einem <a href="https://www.ee.ethz.ch">Master in Electrical Engineering and Information Technology</a> alles     erreichen kann.</p> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="666"     height="500">     <param name="source" value="https://channel9.msdn.com/App_Themes/default/vp09_11_30.xap" />     <param name="initParams"         value="deferredLoad=true,duration=0,m=https://ecn.channel9.msdn.com/o9/ch9/1/6/2/5/0/5/BTCNickBaker_ch9.wmv,autostart=false,autohide=true,showembed=true, postid=505261" />     <param name="background" value="#00FFFFFF" /> <a href="https://go.microsoft.com/fwlink/?LinkID=124807"         style="text-decoration: none;"> <img src="https://go.microsoft.com/fwlink/?LinkId=108181"             alt="Get Microsoft Silverlight" style="border-style: none" /> </a> </object></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2009-12-02-using-the-zunehd-outside-the-us-with-error-code-c00d11cd.html</id>
    <link href="https://philippkueng.ch/2009-12-02-using-the-zunehd-outside-the-us-with-error-code-c00d11cd.html"/>
    <title>Using the ZuneHD outside the US with error code C00D11CD</title>
    <updated>2009-12-02T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img title="zunehd_error_c00d11cd" alt="zunehd_error_c00d11cd" src="/assets/images/zunehd_error_c00d11cd.png" /> Yesterday     my ZuneHD was delivered straight from the US. But unfortunately I wasn’t able to sync it with my computer (German     Windows 7). After some research I stumbled upon this <a         href="https://www.anythingbutipod.com/forum/showthread.php?p=400108">forum thread in anythingbutipod.com (Zune Hd         first sync)</a> which gave which gave me the solution.</p> <p>My ZuneHD was shipped with firmware 4.0 which only support English, Spanish and French Windows language. To upgrade     it you will either have to use an <strong>Windows XP / Vista / Windows 7 with English OS language</strong> or     download and install the <strong>English Language Pack</strong> (I haven’t done this, but it was mentioned in the     forum thread).</p> <p>After the firmware update is on the device (currently 4.3) you should be able to plug it in any Windows computer no     matter what the language of the OS is. (if you use the <a         href="https://www.withinwindows.com/2009/09/17/restore-zune-4-0s-missing-features/?utm<i>source=feedburner&amp;utm</i>medium=feed&amp;utm<i>campaign=Feed:+WithinWindows+(Within+Windows)&amp;utm</i>content=Google+Reader">Zune         Marketplace Registry Hack</a> you have to set the region option to US)</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2009-11-22-visual-studio-2008-sp1-installation-failed-on-x64-windows.html</id>
    <link href="https://philippkueng.ch/2009-11-22-visual-studio-2008-sp1-installation-failed-on-x64-windows.html"/>
    <title>Visual Studio 2008 SP1 installation failed on x64 Windows with Error 1324</title>
    <updated>2009-11-22T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p>If you&rsquo;ve installed Visual Studio 2008 on an x64 Windows Computer you may getting into trouble trying to     install Service Pack 1. First of all you will get an error message (Error 1324) which will tell you that     <strong>Program Files</strong> contains an invalid character. After the installation finished you can access the log     file. (shown below)</p> <p><img title="vs08sp1_installation_log" src="/assets/images/vs08sp1_installation_log_thumb.png"         alt="vs08sp1<i>installation</i>log" /></p> <p>In there select the link (marked yellow).</p> <p><img title="vs08sp1_installation_error_log" src="/assets/images/vs08sp1_installation_error_log_thumb.png"         alt="vs08sp1<i>installation</i>error_log" /> And now search for <strong>pfiles</strong>. You will find something like     G:\PFiles. On my computer G was a virtual drive. So the solution was to deactivate all virtual and physical     read-only drives and then try the installation all over again. This time it worked seamlessly.</p></p>]]></content>
  </entry>
  <entry>
    <id>https://philippkueng.ch/2009-11-20-hello-world.html</id>
    <link href="https://philippkueng.ch/2009-11-20-hello-world.html"/>
    <title>Hello World</title>
    <updated>2009-11-20T23:59:59+00:00</updated>
    <content type="html"><![CDATA[<p><p><img src="/assets/images/2009/6/hello-world.jpg" alt="" /></p> <p>Nun ist es wieder einmal soweit, und ich er&ouml;ffne voller stolz mein neues, pers&ouml;nliches, virtuelles     Tagebuch.</p> <p>Mein anderer Blog <a href="https://www.enlightentheweb.com/">www.enlightentheweb.com</a> hat mich in letzter Zeit     thematisch zu stark eingeschr&auml;nkt, sodass ich seit geraumer Zeit gar nichts mehr ver&ouml;ffentlichte. Als     Ausgleich <a href="https://twitter.com/agentcmos">twitterte</a> ich aktiv, was auf die Dauer nicht&nbsp;wirklich     befriedigend ist, da einem die 140 Zeichen doch st&auml;rker zusetzen. Aus diesem und anderen Gr&uuml;nden habe ich     nun diesen Blog ins Leben gerufen, auf dem ich &uuml;ber pers&ouml;nliche und andere Interessante Dinge berichten     kann, ohne dass mich dabei etwas einschr&auml;nkt.</p> <p><a href="https://www.enlightentheweb.com/">www.enlightentheweb.com</a> wird irgendwann in n&auml;chster Zeit     gel&ouml;scht, einige popul&auml;re Artikel werden jedoch erhalten&nbsp;bleiben. Ich werde diese erneuern und danach     hier integrieren.</p> <p>Es w&auml;re daher sch&ouml;n wenn du diesen Blog <a href="https://philippkueng.ch/atom.xml">abonnieren</a>     w&uuml;rdest, und ab und zu einen Kommentar abgibst.</p></p>]]></content>
  </entry>
</feed>
