<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>This is my weblog in English, German and Korean. If you want to know more about me, then go to hataewon.com.</description><title>tae's log</title><generator>Tumblr (3.0; @hataewon)</generator><link>http://hataewon.tumblr.com/</link><item><title>Moving To Blogger</title><description>&lt;p&gt;I will be logging at &lt;a href="http://weblog.hataewon.com" target="_blank"&gt;&lt;a href="http://weblog.hataewon.com" target="_blank"&gt;http://weblog.hataewon.com&lt;/a&gt;&lt;/a&gt;. Old entries from here will be gradually copied.&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/39671759454</link><guid>http://hataewon.tumblr.com/post/39671759454</guid><pubDate>Fri, 04 Jan 2013 19:57:45 +0100</pubDate></item><item><title>Qmind 0.0.10</title><description>&lt;p&gt;Over the last two weeks I found some time to work on my small Cocoa project &lt;a href="http://qvacua.com" target="_blank"&gt;Qmind&lt;/a&gt;, a mind-mapping app for OS X:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/40def45e37b465a8090238bce54a115d/tumblr_inline_mg2gch4jPv1qjtfzu.png"/&gt;&lt;/p&gt;
&lt;p&gt;Finally, arrow keys can be used to change the selection. And icons can be inserted. However, the deletion of icons will come in version 0.0.10 + X, where X &amp;gt; 0.&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/39587201242</link><guid>http://hataewon.tumblr.com/post/39587201242</guid><pubDate>Thu, 03 Jan 2013 21:18:34 +0100</pubDate><category>qmind</category><category>qvacua</category></item><item><title>2010 Marrenon Rouge
B+
4,30 €
</title><description>&lt;img src="http://25.media.tumblr.com/1cc81887084a71033d3441270773c751/tumblr_mfwzcy8XRR1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2010 Marrenon Rouge&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;B+&lt;/li&gt;
&lt;li&gt;4,30 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/39332494588</link><guid>http://hataewon.tumblr.com/post/39332494588</guid><pubDate>Mon, 31 Dec 2012 22:22:10 +0100</pubDate><category>wine</category></item><item><title>2011 Château Pech-Céleyran La Clape
B+
4,80 €
</title><description>&lt;img src="http://24.media.tumblr.com/5567963ecb0a2e79f63cbfe47e544241/tumblr_mfwz9bLjgQ1ql26ouo1_r1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2011 Château Pech-Céleyran La Clape&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;B+&lt;/li&gt;
&lt;li&gt;4,80 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/39332340808</link><guid>http://hataewon.tumblr.com/post/39332340808</guid><pubDate>Mon, 31 Dec 2012 22:19:00 +0100</pubDate><category>wine</category></item><item><title>Removing Multiple Entries From "Open With"</title><description>&lt;blockquote&gt;
&lt;pre&gt;/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fram ework/Support/lsregister -kill -r -domain local -domain system -domain user&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then, relaunch Finder.&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/39331892312</link><guid>http://hataewon.tumblr.com/post/39331892312</guid><pubDate>Mon, 31 Dec 2012 22:13:32 +0100</pubDate><category>osx</category></item><item><title>Node.js Static HTTP Server</title><description>&lt;p&gt;Since &lt;a href="http://qvacua.com" target="_blank"&gt;&lt;a href="http://qvacua.com" target="_blank"&gt;http://qvacua.com&lt;/a&gt;&lt;/a&gt; consists of only static files, the following node.js static HTTP server comes in handy&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;HOST = null; // null =&amp;gt; localhost
PORT = 8000;

HTTP_STATUS_OK = 200;
HTTP_STATUS_NOT_FOUND = 404;

var http = require("http"),
    url = require("url"),
    path = require("path"),
    fs = require("fs");

function writeNotFound(response) {
    response.writeHead(HTTP_STATUS_NOT_FOUND, {
        "Content-Type": "text/plain"
    });
    response.end("Not Found");
}

function writeBinary(data, response) {
    response.writeHead(HTTP_STATUS_OK);
    response.write(data, "binary");
    response.end();
}

function writeIndexHtml(filename, response) {
    var indexFilename = path.join(filename, 'index.html');

    fs.exists(indexFilename, function (exists) {
        if (!exists) {
            writeNotFound(response);
            return;
        }

        fs.readFile(indexFilename, function (error, data) {
            writeBinary(data, response);
        });

    });
}

var server = http.createServer(function (request, response) {
    var uri = url.parse(request.url).pathname;
    var filename = path.join(process.cwd(), uri);

    fs.stat(filename, function (error, stats) {
        if (error) {
            writeNotFound(response);
            return;
        }

        if (stats.isDirectory()) {
            writeIndexHtml(filename, response);
            return;
        }

        fs.readFile(filename, function (error, data) {
            writeBinary(data, response);
        });
    });
});

server.listen(PORT, HOST);
console.log("Server @ http://" + (HOST || "localhost") + ":" + PORT);&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;By default &lt;code&gt;index.html&lt;/code&gt; will be served when the URL directs to a folder. It does not have error handling whatsoever: sufficient for development.&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/39149161255</link><guid>http://hataewon.tumblr.com/post/39149161255</guid><pubDate>Sat, 29 Dec 2012 21:15:55 +0100</pubDate><category>nodejs</category></item><item><title>Anema E Core Trattoria</title><description>&lt;p&gt;Lohengrinstraße 11, 81925 München, Germany, &lt;a href="http://www.anema-e-core.com/" target="_blank"&gt;anema-e-core.com&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;J: Pizza with vegetables, C+&lt;/li&gt;
&lt;li&gt;T: Saltimbocca alla Romana (Kalbsmedaillons mit Parmaschinken und Salbei), B&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38891717053</link><guid>http://hataewon.tumblr.com/post/38891717053</guid><pubDate>Wed, 26 Dec 2012 21:56:26 +0100</pubDate><category>restaurant</category></item><item><title>2004 Solís Diego de Almagro Gran Reserva
B+
7,40 €
</title><description>&lt;img src="http://25.media.tumblr.com/2457f3ee6b8481f49ce208ddd7fde509/tumblr_mfnoktZHL31ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2004 Solís Diego de Almagro Gran Reserva&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;B+&lt;/li&gt;
&lt;li&gt;7,40 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38891312850</link><guid>http://hataewon.tumblr.com/post/38891312850</guid><pubDate>Wed, 26 Dec 2012 21:50:53 +0100</pubDate><category>wine</category></item><item><title>Mocking Class Method in Objective-C</title><description>&lt;p&gt;Once in a while, when testing your Objective-C code, you want or have to mock a class method. Or you want to replace the implementation of a class method. The following code replaces the implementation of &lt;code&gt;originalClassMethod&lt;/code&gt; of &lt;code&gt;SomeClass&lt;/code&gt; with the implementation of &lt;code&gt;mockClassMethod&lt;/code&gt; of &lt;code&gt;MockClass&lt;/code&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;Method mockMethod = class_getInstanceMethod([MockClass class], @selector(mockClassMethod));
IMP mockImpl = method_getImplementation(mockMethod);
Method originalMethod = class_getClassMethod([SomeClass class], @selector(originalClassMethod));
IMP originalImpl = method_setImplementation(originalMethod, testImpl);&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Don&amp;#8217;t forget to import &lt;code&gt;objc/runtime.h&lt;/code&gt;.&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/38488250964</link><guid>http://hataewon.tumblr.com/post/38488250964</guid><pubDate>Fri, 21 Dec 2012 22:04:22 +0100</pubDate><category>objective-c</category><category>testing</category></item><item><title>2011 Farnese Sangiovese
B+
4,40 €
</title><description>&lt;img src="http://25.media.tumblr.com/4af1fd6731eaf63c47d2b43be6943783/tumblr_mfeek2lCcZ1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2011 Farnese Sangiovese&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;B+&lt;/li&gt;
&lt;li&gt;4,40 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38486188389</link><guid>http://hataewon.tumblr.com/post/38486188389</guid><pubDate>Fri, 21 Dec 2012 21:36:02 +0100</pubDate><category>wine</category></item><item><title>Git Submodule Cheat Sheet</title><description>&lt;p&gt;&lt;ul&gt;&lt;li&gt;Adding a new submodule&lt;br/&gt;&lt;code&gt;git submodule add git://URL/TO/SUBMODULE.git SUMMODULE_NAME&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Getting, ie downloading, the newly added submodule&lt;br/&gt;&lt;code&gt;git submodule init&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Updating all submodules&lt;br/&gt;&lt;code&gt;git submodule update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Make changes to a submodule&lt;br/&gt;&lt;ol&gt;&lt;li&gt;cd SUBMODULE&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git checkout master&lt;/code&gt; (or whatever branch you want to edit)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code ... code ... code ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd ..&lt;/code&gt; (go to the parent repo)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit SUBMODULE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/38485841898</link><guid>http://hataewon.tumblr.com/post/38485841898</guid><pubDate>Fri, 21 Dec 2012 21:31:15 +0100</pubDate><category>git</category></item><item><title>2009 Principe de Viana Crianza
A-
5,90 €
</title><description>&lt;img src="http://25.media.tumblr.com/70eab2cf50860191258d945c8da46fc6/tumblr_mfammvQN2a1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2009 Principe de Viana Crianza&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A-&lt;/li&gt;
&lt;li&gt;5,90 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38320156980</link><guid>http://hataewon.tumblr.com/post/38320156980</guid><pubDate>Wed, 19 Dec 2012 20:40:07 +0100</pubDate><category>wine</category></item><item><title>2011 Casabianca Sussingo
C-
5,95 €
</title><description>&lt;img src="http://25.media.tumblr.com/f20c24655a4108d23f76dfee06c521b7/tumblr_mfamkcwv9s1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2011 Casabianca Sussingo&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;C-&lt;/li&gt;
&lt;li&gt;5,95 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38320058949</link><guid>http://hataewon.tumblr.com/post/38320058949</guid><pubDate>Wed, 19 Dec 2012 20:38:36 +0100</pubDate><category>wine</category></item><item><title>2010 Seigneurie de Peyrat Classique
A-
6,90 €
</title><description>&lt;img src="http://24.media.tumblr.com/e49b4615ef2dc7d6d77c4b5bf1ffe61b/tumblr_mfamgc9fQH1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2010 Seigneurie de Peyrat Classique&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A-&lt;/li&gt;
&lt;li&gt;6,90 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38319909477</link><guid>http://hataewon.tumblr.com/post/38319909477</guid><pubDate>Wed, 19 Dec 2012 20:36:12 +0100</pubDate><category>wine</category></item><item><title>2007 Espinosa Cencipeñas Crianza
C+
4,95 €
</title><description>&lt;img src="http://25.media.tumblr.com/8c337c07531540e7196e4a4f4c8dc7fd/tumblr_mfama5mYie1ql26ouo1_r1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;2007 Espinosa Cencipeñas Crianza&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;C+&lt;/li&gt;
&lt;li&gt;4,95 €&lt;/li&gt;
&lt;/ul&gt;</description><link>http://hataewon.tumblr.com/post/38319675300</link><guid>http://hataewon.tumblr.com/post/38319675300</guid><pubDate>Wed, 19 Dec 2012 20:32:00 +0100</pubDate><category>wine</category></item><item><title>Kun Woo Paik with Daejeon Philharmonic Orchestra @ Hercules...</title><description>&lt;img src="http://24.media.tumblr.com/a73b8b96ad8199c79fb9b702ca9c4dfd/tumblr_mf6g3msqdp1ql26ouo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Kun Woo Paik with &lt;/span&gt;&lt;span&gt;Daejeon Philharmonic Orchestra @ &lt;/span&gt;&lt;span&gt;Hercules Hall&lt;/span&gt;&lt;span&gt;, Munich.&lt;/span&gt;&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/38144266607</link><guid>http://hataewon.tumblr.com/post/38144266607</guid><pubDate>Mon, 17 Dec 2012 14:28:33 +0100</pubDate><category>concert</category></item><item><title>"Wir werden ihm, diesem unseren Staat, das geben, dessen er bedarf. Seine Autorität, wo immer sie..."</title><description>“Wir werden ihm, diesem unseren Staat, das geben, dessen er bedarf. Seine Autorität, wo immer sie gebraucht wird, legitimiert sich allein aus dem Grundgesetz und aus den von den Volksvertretungen beschlossenen Gesetzen. Wir werden unseren Staat weder den Kurzschlüssen der Panik noch den Interessen privilegierter Gruppen ausliefern. Recht und Gesetz beruhen nicht primär auf Justiz und Polizei, so lebensnotwendig beide Institutionen sind und so sehr sie des Verständnisses und der Unterstützung aller Bürger bedürfen. Recht und Gesetz beruhen zuallererst auf der Gerechtigkeit: Schutz der Schwachen, Bändigung der Mächtigen und der übermütigen; sie erfordern einen Staat, der das Notwendige — mit Hilfe klarer Gesetze und einer effektiven Verwaltung — auch gegen die geballten Interessen von Privilegierten durchsetzen kann.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Willy Brandt, 12. Oktober 1972&lt;/em&gt;</description><link>http://hataewon.tumblr.com/post/37020730785</link><guid>http://hataewon.tumblr.com/post/37020730785</guid><pubDate>Sun, 02 Dec 2012 10:26:11 +0100</pubDate><category>brandt</category><category>rede</category></item><item><title>"Chief among these was the stoning to death of adulterers, a punishment which has absolutely no..."</title><description>“Chief among these was the stoning to death of adulterers, a punishment which has absolutely no foundation whatsoever in the Quran but which Umar justified by claiming it had originally been part of the Revelation and had somehow been left out of the authorized text. Of course, Umar never explained how it was possible for a verse such as this “accidentally” to have been left out of the Divine Revelation of God, but then again, he didn’t have to.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Reza Aslan, No god but God&lt;/em&gt;</description><link>http://hataewon.tumblr.com/post/36608971924</link><guid>http://hataewon.tumblr.com/post/36608971924</guid><pubDate>Mon, 26 Nov 2012 21:33:22 +0100</pubDate><category>book</category><category>islam</category></item><item><title>Gyges und sein Ring, Residenz Theater München</title><description>&lt;p&gt;Gähn&amp;#8230;&lt;/p&gt;</description><link>http://hataewon.tumblr.com/post/36605317734</link><guid>http://hataewon.tumblr.com/post/36605317734</guid><pubDate>Mon, 26 Nov 2012 20:34:22 +0100</pubDate><category>theater</category></item><item><title>Continuous Integration for Cocoa Reloaded</title><description>&lt;p&gt;First do the following:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Open the &amp;#8220;Manage Schemes&amp;#8230;&amp;#8221; dialog and check &amp;#8220;Shared&amp;#8221; for schemes you want to have available for Jenkins. Xcode generates &amp;#8220;xcshareddata&amp;#8221; folder inside the xcodeproj file.&lt;/li&gt;
&lt;li&gt;Open &amp;#8220;Build Settings&amp;#8221; for the test target and set &amp;#8220;Bundle Loader&amp;#8221; and &amp;#8220;Test Host&amp;#8221; to blank by deleting them.&lt;/li&gt;
&lt;li&gt;Create a free-style job.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;For tests using OCUnit:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Download &lt;a href="https://github.com/ciryon/OCUnit2JUnit/" target="_blank"&gt;ocunit2junit&lt;/a&gt; and put it somewhere.&lt;/li&gt;
&lt;li&gt;Add an &amp;#8220;Execute shell&amp;#8221; build step and insert the following&lt;br/&gt;&lt;code&gt;xcodebuild -scheme NAME_OF_TEST_SCHEME -configuration Debug clean test | /PATH/TO/ocunit2junit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the &amp;#8220;Publish JUnit test result report&amp;#8221; post-build action with &lt;code&gt;**/test-reports/*.xml&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_me1uz9K1NT1qjtfzu.png"/&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;For static analysis using clang-analyzer:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Download &lt;a href="http://clang-analyzer.llvm.org/" target="_blank"&gt;clang-analyzer&lt;/a&gt; and put it somewhere.&lt;/li&gt;
&lt;li&gt;Install &amp;#8220;Clang Scan-Build Plugin&amp;#8221; for Jenkins&lt;/li&gt;
&lt;li&gt;Add an &amp;#8220;Execute shell&amp;#8221; build step and insert the following&lt;br/&gt;&lt;code&gt;/PATH/TO/scan-build -k -v -v -o clangScanBuildReports xcodebuild -scheme NAME_OF_SOME_SCHEME -configuration Debug clean build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the &amp;#8220;Publish Clang Scan-Build Results&amp;#8221; post-build action&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_me1vbyxgW31qjtfzu.png"/&gt; &lt;/li&gt;
&lt;/ol&gt;</description><link>http://hataewon.tumblr.com/post/36512938290</link><guid>http://hataewon.tumblr.com/post/36512938290</guid><pubDate>Sun, 25 Nov 2012 16:38:43 +0100</pubDate><category>Jenkins</category><category>Cocoa</category></item></channel></rss>
