<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Moritz Haarmann&#039;s Blog &#187; admin</title>
	<atom:link href="http://momo.brauchtman.net/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://momo.brauchtman.net</link>
	<description>random thoughts.</description>
	<lastBuildDate>Fri, 27 Jan 2012 15:54:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pragmatische Notebook-Kaufberatung</title>
		<link>http://momo.brauchtman.net/2012/01/27/pragmatische-notebook-kaufberatung/</link>
		<comments>http://momo.brauchtman.net/2012/01/27/pragmatische-notebook-kaufberatung/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 15:54:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[deutsch]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=680</guid>
		<description><![CDATA[Da ich, wie die meisten aufmerksamen Leser dieses Blogs vielleicht schon bemerkt haben, Technik- bzw. IT-affin bin, und sich diese traurige Wahrheit auch schon in meinem Bekanntenkreis herumgesprochen hat, möchte ich an dieser Stelle alle zukünftigen Anfragen zum Thema Notebook-Kaufberatung &#8230; <a href="http://momo.brauchtman.net/2012/01/27/pragmatische-notebook-kaufberatung/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Da ich, wie die meisten aufmerksamen Leser dieses Blogs vielleicht schon bemerkt haben, Technik- bzw. IT-affin bin, und sich diese traurige Wahrheit auch schon in meinem Bekanntenkreis herumgesprochen hat, möchte ich an dieser Stelle alle zukünftigen Anfragen zum Thema Notebook-Kaufberatung in einem Blogpost final beantworten. Aufgrund des Entwicklungsstands moderner Geräte ist es denke ich sicher anzunehmen, dass dieser Post für die nächsten 2-3 Jahre gültig bleibt.</p>
<p>Die grundlegenden Anforderungen der meisten Leute, die mit der Frage &#8216;Welches Notebook soll ich mir kaufen&#8217; zu mir kommen, sind sehr vergleichbar. Es werden Office-Fähigkeiten gesucht, weiterhin sollte ein Browser vernünftig laufen und kleiner Multimedia-Aktionen sind auch vorgesehen – Zum Beispiel ein Test von Photoshop für nichtkommerzielle Zwecke oder das Bearbeiten eines kleinen Videos.</p>
<p>Hier kommt die gute Nachricht: Mir fällt beim besten Willen kein Gerät ein, das heute, 2012, produziert und verkauft wird, dass diese Fähigkeiten nicht besitzt. Dieses Phänomen kann wirklich gut mit dem <a href="http://de.wikipedia.org/wiki/Mooresches_Gesetz">Mooreschen Gesetz</a> belegt werden, dass 1965 von Gordon Moore formuliert wurde, und besagt, dass sich &#8220;die Komplexität integrierter Schaltkreise mit minimalen Komponentenkosten regelmäßig verdoppelt&#8221;, im Original alle 24 Monate, nach Intel all 18 Monate. Dieses Gesetz hat bis heute Gültigkeit in einer Vielzahl von Bereichen, unter anderem der Pixelzahl der Sensoren einer Digitalkamera, Festplattengrößen und natürlich auch der Komplexität und somit Geschwindigkeit von Computerprozessoren.</p>
<p>Was das bedeutet, ist dass ein Rechner aus dem Jahr 2012 ungefähr doppelt so schnell ist als ein preislich Vergleichbarer Rechner aus dem Jahr 2010, wobei dieser ebenfalls wieder doppelt so schnell war wie ein Rechner aus dem Jahr 2008 usw..</p>
<p>Die Implikationen für den normalen Benutzer sind, dass man heutzutage relativ sicher sein kann, dass die Rechner die man bekommt wirklich schnell genug für alles sind. Die Rechenleistung kann also nur marginal entscheidend für die Kaufentscheidung sein.</p>
<p>Gehen wir also weiter zu einem spannenden Thema, nämlich dass der internen Komponente wie z.B. Arbeitsspeicher und Festplatte. Arbeitsspeicher ist sozusagen der Schreibtisch des Prozessors, hier werden wichtige Daten direkt und schnell zugreifbar Abgelegt. Während vor 15 Jahren 16MB noch Luxus waren, sind heute 2 oder 4GB in Consumer-Rechnern Standard, was wiederum völlig ausreicht, wenn man sich in der Office,Internet,Photoshop-Ecke befindet.</p>
<p>Die Festplatte hingegen ist die einzige Komponente von der man sagen kann dass sich die Entwicklung im Umbruch befindet. Technisch sind heute 3 Terabyte-Platten keine Sensation mehr und gängig. Das Problem mit Festplatten ist jedoch deren mechanische Bauart und somit begrenzte Geschwindigkeit. Seit mehreren Jahren entwickelt sich zunehmende der Trend zu sogenannten<a href="http://de.wikipedia.org/wiki/Solid-State-Drive"> Solid State Drives ( SSD )</a>, die auf einer ähnlichen Technologie wie Arbeitsspeicher oder USB-Sticks basieren. Das macht sie zum einen Energieeffizienter, zum anderen aber auch um ein Vielfaches schneller als konventionelle Festplatten. Da die Produktion und Fertigung dieser SSDs jedoch aufwändiger ist als die von herkömmlichen Festplatten, schlägt sich das im Moment noch im Preis nieder – konventionelle Festplatten kosten ca. 8-15 Cent pro GB, während es bei SSDs bei 90 Cent pro GB anfängt. Wer Wert auf absolute Geschwindigkeit legt, investiert gut in eine SSD, für viele normale Benutzer macht es jedoch wahrscheinlich einen vernachlässigbaren Unterschied. Wichtig ist zusätzlich noch dass SSDs keine mechanischen Komponenten haben, also sehr stoßunempfindlich sind und keine Geräusche machen.</p>
<p>Was ist bei einem Notebook noch wichtig? Das hängt immer vom persönlichen Nutzungsschema ab, ich werde hier noch auf die Punkte Verarbeitungsqualität, Bildschirmgröße/Auflösung und Akkulaufzeit eingehen.</p>
<p>Der Bildschirm ist der wohl sichtbarste und wichtigste Teil eines Notebooks. Gerade bei den Displays findet man die größten Unterschiede zwischen günstigen und hochpreisigen Geräten. Teilweise befinden sich in hochpreisigen 11&#8243;-Geräten Bildschirme mit höheren Auflösungen ( also einer höheren Anzahl an Pixeln ) als in billigen 15&#8243; Geräten. Dieser Unterschied macht sich beim Arbeiten gewaltig in ganz simpel mehr oder weniger Fläche auf dem Desktop bemerkbar und entscheidet im Zweifel darüber, ob man ständig Scrollen muss oder das meiste schon sieht. Hier ist also ganz offensichtlich genaues hinschauen beim Kauf gefragt – die einzige Lösung hier später einen Fehlkauf zu verbessern ist ein externer Monitor der an das Notebook angeschlossen wird. Grundsätzlich sollte alles über <a href="http://en.wikipedia.org/wiki/Display_resolution">1440&#215;900</a> ( Richtwerte ) bei 13&#8243;-15&#8243; als ausreichend angeshene werden. Werte darunter sind natürlich, je nach Geldbeutel, erhältlich, jedoch sinkt in meinen Augen mit einer zu kleinen Auflösung die Produktivität überdurchschnittlich.</p>
<p>Wo wir schon beim nächsten Punkt sind – Produktivität. Die wichtigsten sichtbaren Komponenten eines Notebooks sind die Tastatur und das Trackpad. Während die Tastatur heute meistens im Chiplet-Design gebaut wird ( d.h. mit kleinen Abständen zwischen den Tasten ), gibt es bei den Trackpads gravierende Unterschiede. Für beide Punkte gilt allerdings dass man hier am besten in einem Laden &#8220;Probetippt&#8221;, da sich gerade bei Tastaturen die Geister scheiden. Wichtige Metriken für das Trackpad sind vor allem die Größe und ob und wie Scrolling unterstützt wird, d.h. ob ein virtuelles &#8220;Mausrad&#8221; eingebaut ist. Auch hier finden sich zwischen den Preisniveaus große Unterschiede, und gerade billige Geräte fallen durch eine &#8220;Billige&#8221; Verarbeitung negativ auf. Wer nicht ständig anbauen will ( Externe Maus, Tastatur ) ist gut beraten gleich richtig zu kaufen.</p>
<p>Generell ist die Frage, wieviel Wert man auf die Verarbeitung des Notebooks legt – es liegt auf der Hand dass sich dier Hersteller gerade in diesem Punkt deutlich diversifizieren. Wer damit leben kann dass sein Notebook komplett aus Plastik kommt und nach 4 Monaten zu klappern und zu wackeln anfängt, der ist wohl mit 300 Euro im Rennen. Wer etwas mehr Wert auf langlebigkeit legt muss wahrscheinlich tiefer in die Tasche greifen.</p>
<p>Wer sich oft unterwegs an die Arbeit macht, interessiert sich spätestens seit Starbucks die Steckdosen abgebaut hat für die Akkulaufzeit seines mobilen Begleiters. Spätestens wenn der mobile Alleskönner nach 50 Minuten schwarz wird, weil die Batterie leer ist, wird sich noch darüber freuen, immer das in der Regel schwere Netzteil noch mitzunehmen. Gute Akkulaufzeit wird zum einen aus einer guten Abstimmung der Komponenten auf das hoffentlich aktuelle Betriebssystem, vernünftige Nutzung und die größe der eingebauten Batterie beeinflußt. Die Klassenbesten erreichen heute übrigens Laufzeiten von 5-7 Stunden, während viele Notebooks im günstigen Segment ( 300-500 Euro ) gerade mal 1-2 Stunden oder weniger schaffen. Wie immer: Sich vorher überlegen was man braucht. Nur daheim: billig kaufen, nur draußen: teuer kaufen.</p>
<p>Zuletzt möchte ich noch auf den bekannten Ausstoß &#8220;900 Euro für ein Notebook sind zuviel&#8221; eingehen. Ich will nicht in Frage stellen dass 900 Euro viel Geld sind, gerade für Studenten oder junge Leute mit wenig Einkommen. Man muss sich aber immer auch überlegen, wie lange man ein Notebook sinnvoll nutzen möchte &#8211; gerade MacBooks lassen sich gut 3 Jahre nutzen und danach immer noch für die Hälfte des Kaufpreises verkaufen.</p>
<p>Aber genug geredet, hier eine unvollständige Liste von Geräten in jeder Preiskategorie.</p>
<table>
<tbody>
<tr>
<th>Preisliga</th>
<th>Info</th>
<th>Amazon</th>
</tr>
<tr>
<td>ca. 300€</td>
<td>15&#8243; Notebook mit allem was man braucht, nicht besonders schnell aber ausreichend. Wichtig: Kein Betriebssystem!</td>
<td><a href="http://www.amazon.de/gp/product/B004YJYR7A/ref=as_li_ss_tl?ie=UTF8&amp;tag=morihaarblog-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B004YJYR7A">Fujitsu Lifebook AH530</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.de/e/ir?t=morihaarblog-21&amp;l=as2&amp;o=3&amp;a=B004YJYR7A" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr>
<td>ca. 500€</td>
<td>Solides 15&#8243;-Notebook mit aktuellem Prozessor, Windows 7 und ziemlich viel Schnickschnack.</td>
<td><a href="http://www.amazon.de/gp/product/B005FN3JPK/ref=as_li_ss_tl?ie=UTF8&amp;tag=morihaarblog-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B005FN3JPK">Fujitsu Lifebook SH531</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.de/e/ir?t=morihaarblog-21&amp;l=as2&amp;o=3&amp;a=B005FN3JPK" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr>
<td>ca. 700€</td>
<td>Dicker Prozessor aber schlechte Auflösung für den Preis.</td>
<td><a href="http://www.amazon.de/gp/product/B0068GM67K/ref=as_li_ss_tl?ie=UTF8&amp;tag=morihaarblog-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B0068GM67K">Acer Aspire Style 5755G</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.de/e/ir?t=morihaarblog-21&amp;l=as2&amp;o=3&amp;a=B0068GM67K" alt="" width="1" height="1" border="0" /></td>
</tr>
<tr>
<td>alles über 1000€</td>
<td>MacBook Pro eben: Solide verbaut, ausreichende Leistung und hoher Wiederverkaufswert.</td>
<td><a href="http://www.amazon.de/gp/product/B005YYTHZG/ref=as_li_ss_tl?ie=UTF8&amp;tag=morihaarblog-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B005YYTHZG">Apple MacBook Pro 13&#8243;</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.de/e/ir?t=morihaarblog-21&amp;l=as2&amp;o=3&amp;a=B005YYTHZG" alt="" width="1" height="1" border="0" /></td>
</tr>
</tbody>
</table>
<p>Hinweis: Das ist alles total subjektiv und sehr willkürlich. Es gibt bestimmt in jeder Kategorie ein viel besseres Notebook dass ich nicht kenne.</p>
<p>P.S. Anne, das ist für dich!</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2012/01/27/pragmatische-notebook-kaufberatung/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hours.app Beta is out!</title>
		<link>http://momo.brauchtman.net/2011/11/17/hours-app-beta-is-out/</link>
		<comments>http://momo.brauchtman.net/2011/11/17/hours-app-beta-is-out/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 09:25:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=671</guid>
		<description><![CDATA[We are in beta. I am part of a great team, and we are building Hours. Hours is a new take on Time Tracking, and we think that we are ready to get your feedback. Head over to www.thehoursapp.com and grab &#8230; <a href="http://momo.brauchtman.net/2011/11/17/hours-app-beta-is-out/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We are in beta. I am part of a great team, and we are building Hours. Hours is a new take on Time Tracking, and we think that we are ready to get your feedback. Head over to <a href="http://thehoursapp.com/">www.thehoursapp.com</a> and grab your beta, we&#8217;d love to hear what you think about it. P.S.: iPhone version is in the making, will be out by the end of this year. And, if you think hours is worthy, spread the word <img src='http://momo.brauchtman.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img class="alignright" title="Hours icon" src="http://thehoursapp.com/images/icon_hours3.png" alt="" width="850" height="846" /></p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/11/17/hours-app-beta-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Install Jenkins on OS X and make it build Mac stuff</title>
		<link>http://momo.brauchtman.net/2011/11/12/howto-install-jenkins-on-os-x-and-make-it-build-mac-stuff/</link>
		<comments>http://momo.brauchtman.net/2011/11/12/howto-install-jenkins-on-os-x-and-make-it-build-mac-stuff/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 02:41:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=663</guid>
		<description><![CDATA[This guide is intended for Lion users. I just tried it on my machine, and it works. Let&#8217;s hope it works for you as well. What&#8217;s covered: How to install Jenkins as a standalone Service How to configure a Job &#8230; <a href="http://momo.brauchtman.net/2011/11/12/howto-install-jenkins-on-os-x-and-make-it-build-mac-stuff/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This guide is intended for Lion users. I just tried it on my machine, and it works. Let&#8217;s hope it works for you as well.</p>
<p>What&#8217;s covered:</p>
<ul>
<li>How to install Jenkins as a standalone Service</li>
<li>How to configure a Job that builds a generic Mac-Application</li>
<li>Configuring Public Key SSH-Access ( Useful for git )</li>
</ul>
<div>Prerequisites</div>
<div>
<ul>
<li>Java must be installed</li>
<li>XCode ( any version that works on Lion will do )</li>
<li>You shouldn&#8217;t have any services running on port 8080</li>
</ul>
</div>
<h1>Installing Jenkins</h1>
<p>Jenkins is available as a <a title="Jenkins Native Mac OS Package" href="http://mirrors.jenkins-ci.org/osx/latest">native package</a> from the <a href="http://jenkins-ci.org/">Jenkins homepage</a>.  Just install it, as you would install any other package. After you&#8217;ve done that, you might want to check if <a href="http://localhost:8080/">http://localhost:8080/</a> is reachable. If it&#8217;s not, you may have to launch the .war-File by opening it. It&#8217;s located in /Applications/Jenkins/.</p>
<p>In case the server is running, you&#8217;ll most likely get a 404 &#8216;not found&#8217; message from the winstone-server that is bundled. If you dig in your syslog, you&#8217;ll find a reviling stack trace that indicates that a file can&#8217;t be found..</p>
<pre>java.io.FileNotFoundException: /Users/Shared/Jenkins/Home/war/META-INF/MANIFEST.MF (No such file or directory)</pre>
<p>I don&#8217;t know why the package is broken, but it&#8217;s quite easy to fix this. I found some great advice on <a href="http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/">ColonelPanic.net</a>.</p>
<p>First, we&#8217;ll create a dedicated jenkins user. At this point, there isn&#8217;t one, so just type this into your terminal</p>
<pre>sudo dscl . create /Users/jenkins
sudo dscl . create /Users/jenkins PrimaryGroupID 1
sudo dscl . create /Users/jenkins UniqueID 300
sudo dscl . create /Users/jenkins UserShell /bin/bash
sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/
sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/
sudo dscl . passwd /Users/jenkins</pre>
<p>Now that you have created the user, it&#8217;s time to tell the LaunchAgent that came with the install package to use this user to run Jenkins. The file you have to change for this is located at <strong>/Library/LaunchDaemons/org.jenkins-ci.plist</strong> . Just open it in your favorite editor and change the value of UserName to jenkins.</p>
<pre>	&lt;key&gt;UserName&lt;/key&gt;
	&lt;string&gt;jenkins&lt;/string&gt;</pre>
<p>After doing that, the Home folder of jenkins, /Users/Shared/Jenkins/Home needs a new owner.</p>
<pre>sudo chown -R jenkins /Users/Shared/Jenkins</pre>
<p>After doing all that, saving the modified launch file and chown&#8217;ing the Home, unload and reload the service:</p>
<pre>sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist</pre>
<p>Now you should be greeted by Jenkins if you try again <a href="http://localhost:8080" target="_blank">localhost:8080</a>. If not make sure that you followed the steps above correctly. If you did that but it still doesn&#8217;t work, please leave a comment.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/11/Ohne-Titel.png" rel="lightbox[663]" title="Jenkins Welcome Screen"><img class="aligncenter size-full wp-image-669" title="Jenkins Welcome Screen" src="http://momo.brauchtman.net/wp-content/uploads/2011/11/Ohne-Titel.png" alt="" width="716" height="498" /></a></p>
<p>If you need to access your git repos using a public ssh key, you can generate one now by logging in as the jenkins user and running ssh-keygen</p>
<pre># su jenkins
Password:
bash-3.2$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key...</pre>
<p>You can then upload the file to wherever you need it.</p>
<h1> Create a Job for a XCode Project</h1>
<p>Before we dive right in, you need to install the git-plugin. This is done by navigating to &#8220;Manage Jenkins&#8221; from the welcome screen and then selecting plugins. There are about a million, but you just need git for the moment, as I assume that your project is using git. Once you&#8217;ve installed the plugin, set up your git username and email in the &#8220;Manage Jerkins&#8221; &#8220;Configure System&#8221; menu. If you omit that step, the source retrieval will fail.</p>
<p>Having setup Jenkins now, it&#8217;s time to do some real work. The welcome screen should look similar to the one below, so just go and create a new free-style-software-project. This is the simplest approach possible, but it&#8217;s always nice to get results fast&#8230; The job configuration screen should show up now, and it&#8217;s time to enter some details.</p>
<p>First of all, we need to setup the SCM section, so Jenkins knows where to get the sources from. Just enter your repos git-URL in the appropriate field. To test the whole thing, you can use any git-hosted project you like that homes a XCode-Project.</p>
<p>If you want, you can run a build now to make sure that the git-setup works correctly, but it isn&#8217;t required to do so.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/11/Ohne-Titel-4.png" rel="lightbox[663]" title="Jenkins Build Phase"><img class="aligncenter size-full wp-image-668" title="Jenkins Build Phase" src="http://momo.brauchtman.net/wp-content/uploads/2011/11/Ohne-Titel-4.png" alt="" width="802" height="605" /></a>As you can see in the screenshot, the next step is creating the build-phase. You can just enter xcodebuild, which will then build your project and Jenkins will notice if it doesn&#8217;t work and display it, but I think it&#8217;s more interesting to both build a project and archive the App that was built. To achieve that, I created a simple two-line-command</p>
<pre>xcodebuild
cd build/Release; zip -r $BUILD_TAG.zip *.app/</pre>
<p>Jenkins can archive specific artefacts that were created during the build. To save the generated zip-file just enter the **/*.zip pattern in the &#8220;Archive Artefacts&#8221; field. If you haven&#8217;t built your project yet, there may be a big red warning saying that the filter doesn&#8217;t match any files, but it&#8217;s safe to ignore it.</p>
<p>Of course, this is the most minimal build setup you could use, but for my purposes it&#8217;s completely sufficient. The BUILD_TAG used is a unique tag that can be used for filenames. After you&#8217;ve saved the changes to the configuration, it&#8217;s time to run a build and see if it works.</p>
<p>There are a lot of ways to go from here, but I hope this tutorial helped you to get Jenkins up and running!</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/11/12/howto-install-jenkins-on-os-x-and-make-it-build-mac-stuff/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>iPad App concept based on a fluid layout</title>
		<link>http://momo.brauchtman.net/2011/09/16/ipad-app-concept-based-on-a-fluid-layout/</link>
		<comments>http://momo.brauchtman.net/2011/09/16/ipad-app-concept-based-on-a-fluid-layout/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 09:34:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=653</guid>
		<description><![CDATA[I&#8217;m going to discuss briefly a concept idea i had recently, replacing full-screen view controllers with a .. fluid layout. Just look at the video first to get an idea of what I&#8217;m talking about. Keep in mind that this &#8230; <a href="http://momo.brauchtman.net/2011/09/16/ipad-app-concept-based-on-a-fluid-layout/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to discuss briefly a concept idea i had recently, replacing full-screen view controllers with a .. fluid layout. Just look at the video first to get an idea of what I&#8217;m talking about. Keep in mind that this is in no way a finished/polished app ( and probably will never be one, considering trademarks and stuff ).</p>
<p><strong>Important note: This app and concept is not affiliated, endorsed or sponsored by ikea. But since it&#8217;s non-commercial I hope they won&#8217;t shøøt me.</strong></p>
<p><iframe src="http://player.vimeo.com/video/29136481?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="400" height="300"></iframe></p>
<p><a href="http://vimeo.com/29136481">iPad fluid app layout concept</a> from <a href="http://vimeo.com/derwildemomo">Moritz Haarmann</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>So, what&#8217;s wrong with the classic view controllers on the iPad? Nothing, absolutely nothing. They are fine. I just wanted to try out this idea, and the video is the result. If you want to test it, leave a comment and I&#8217;ll get back to you ( or not ). I guess it is obvious that I&#8217;ve been inspired by the Twitter-iPad UI to some extent.</p>
<p>Maybe the most important lesson I learned programming this demo was that it&#8217;s really hard to create an interface that acts in accordance with the direct manipulation paradigm.. when there is no real counterpart. I thought about a stack of cards or some other stack model, but none of those resize their content or just &#8220;move out&#8221; if there is not enough room. I am still not fully convinced that every interaction is right, but at least it feels right most of the time now. If you are curious, there can be an arbitrary number of panels around, of course only limited by memory consumption, without affecting the UI or overall perfomance.</p>
<p>Since I don&#8217;t have a phone capable of recording videos right now, you have to believe me that the UI is really snappy on an iPad 2 and yes, it&#8217;s even fun to use it.</p>
<p>If you are interested in how I got the data you might want to read <a href="http://momo.brauchtman.net/2011/08/25/fun-with-nokogiri-screen-scraping-ikea-com/">a previous post that explained how to retrieve the data from IKEA</a>. Was fun <img src='http://momo.brauchtman.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>What do you think? Too confusing? Interesting? Let me know!</p>
<p><strong>Update</strong>: If you want to <em>test it locally</em>, please enter your<a href="https://docs.google.com/spreadsheet/viewform?formkey=dGd4MHh2elBabTNkeVMwVHU5cmNpZmc6MQ#gid=0"> UUID here</a>. No guarantee whatsoever, first come, first serve.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/09/16/ipad-app-concept-based-on-a-fluid-layout/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
		<item>
		<title>Touch based text input sucks.</title>
		<link>http://momo.brauchtman.net/2011/09/16/640/</link>
		<comments>http://momo.brauchtman.net/2011/09/16/640/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 05:50:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[improvingtheworld]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=640</guid>
		<description><![CDATA[I made the experience that an extra-bold title might attract readers. Let&#8217;s see. It just occurred to me today that touch based input using software-emulated keyboards with keys and stuff is more stupid than anything else I can think of. &#8230; <a href="http://momo.brauchtman.net/2011/09/16/640/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I made the experience that an extra-bold title might attract readers. Let&#8217;s see. It just occurred to me today that touch based input using software-emulated keyboards with keys and stuff is more stupid than anything else I can think of. Why is that?</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/09/typewriter_1_lg.gif" rel="lightbox[640]" title="typewriter_1_lg"><img class="alignright size-thumbnail wp-image-641" title="typewriter_1_lg" src="http://momo.brauchtman.net/wp-content/uploads/2011/09/typewriter_1_lg-150x150.gif" alt="" width="150" height="150" /></a>Keyboards were invented for typewriters. Typewriters are mechanical machines used by humans to avoid handwriting. Since the first typewriters were invented somewhere around the <a href="http://en.wikipedia.org/wiki/Typewriter#Early_innovations">18th century</a>, they were rather clumsy, and the machinery used wasn&#8217;t really working too well, which is why something as awkward as the QWERTY-layout was invented. The QWERTY-layout, still used today, had its justification in the fact that early typewriters had problems when adjacent keys were used simultaneously, which lead to those keys blocking each other. At this point, in the year 1867, keyboard innovation stalled. No real invention has ever had an effect on any keyboard that is widely used until today. There have been some, like the <a href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">Dvorak layout</a>, a proposed alternative to the QWERTY-layout, but none of these made it&#8217;s way to the mainstream, unfortunately.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/09/keyboard20080429.jpeg" rel="lightbox[640]" title="Standard Apple Keyboard"><img class="alignright size-thumbnail wp-image-642" title="Standard Apple Keyboard" src="http://momo.brauchtman.net/wp-content/uploads/2011/09/keyboard20080429-150x150.jpg" alt="" width="150" height="150" /></a>Today, we are using beautiful, ultra-turbo-high-speed computers that are still equipped with QWERTY-keyboards. And the nonsense doesn&#8217;t stop here, we even shrunk those keyboards down to create digital equivalents. This is just ridiculous. I am in no way doubting that a trained writer can actually write fast using an iPhone, iPad or Android Keyboard, but the reason is certainly not the superior design of those keyboards, but our ability to adapt to even the worst of circumstances.</p>
<p>Of course, numerous attempts have been made to improve the typing experience by adding suggestions, which is done on both Android and iOS, and by invisibly changing the &#8220;Hit Box&#8221; of each key, which is also done on both platforms. I have done <a href="http://www.github.com/moritzh/qwerted">qwerted</a>, which did that highlighting both extremely and visually. There have been similar attempts to do this by <a href="http://www.thickbuttons.com/">Thickbuttons</a>, and maybe some others. IBM recently filed a patent that deals with arranging the keys on a touch keyboard to adapt to a specific user, certainly interesting. But it just masks the fact that this approach is seriously flawed, as it still relies on the basic QWERTY-pattern, instead of something better.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/09/ad93b03c952f6398-1.jpeg" rel="lightbox[640]" title="ad93b03c952f6398-1"><img class="alignright size-thumbnail wp-image-643" title="ad93b03c952f6398-1" src="http://momo.brauchtman.net/wp-content/uploads/2011/09/ad93b03c952f6398-1-150x150.jpg" alt="" width="150" height="150" /></a>Another approach that has become quite popular lately is the <a href="http://www.swype.com/">Swype</a>&#8216;s approach. When using Swype ( or SlideIT, and there are certainly a few other similar apps for all systems except stock iOS ), the user just moves over the keys the input consists of. Their homepage has some demo videos if you are curious. Again, the foundation is the old-school QWERTY-keyboard, and even though this concept is highly interesting and working reportedly very well, I consider it broken by design.</p>
<p>The question is: why are we wasting a huge amount of screen real estate displaying keys that won&#8217;t ever be typed ( or touched over ) ? Take for example Q and X. Those keys are so rarely used after a word has started, it&#8217;s unnecessary that they are displayed by default. But it&#8217;s getting better: We can even predict very reliably which words are likely to be typed even after a few words or letters have been typed. If you don&#8217;t trust me on this one, you should try <a href="http://bloggerindraft.blogspot.com/2011/08/introducing-google-scribe-in-blogger.html">Google Scribe</a>. The techniques used here are based on n-grams ( at least a part of it ). N-Grams describe a set of n words, which can then be evaluated in terms of probability. Google has extracted a huge set of n-grams from their datasets which can be obtained at the <a href="http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13">LDC</a>.</p>
<p>Someone must have come up with a great idea to revolutionize touch input. Like, not some fancy new feature, no, a completely new approach. <a href="http://www.inference.phy.cam.ac.uk/dasher/">Do you know Dasher</a>? Something like that, of course massively polished.</p>
<p>I hope you are getting my point here, and I&#8217;m sorry I don&#8217;t have anything more to offer but a few entry points if you want to read further. This is really interesting field and, if time allows, I&#8217;d like to do some work here. What are your ideas?</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/09/16/640/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with nokogiri: Screen-scraping ikea.com</title>
		<link>http://momo.brauchtman.net/2011/08/25/fun-with-nokogiri-screen-scraping-ikea-com/</link>
		<comments>http://momo.brauchtman.net/2011/08/25/fun-with-nokogiri-screen-scraping-ikea-com/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 18:12:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[useful]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=631</guid>
		<description><![CDATA[I recently discovered that ikea is really scraping-friendly – they have their categories and products belonging to a category all linked very clean, and the product pages themselves include, as json, the complete product data necessary to display a product &#8230; <a href="http://momo.brauchtman.net/2011/08/25/fun-with-nokogiri-screen-scraping-ikea-com/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently discovered that ikea is really scraping-friendly – they have their categories and products belonging to a category all linked very clean, and the product pages themselves include, as json, the complete product data necessary to display a product somewhere else ( say, on an iPad ). They also feature the assembly instructions linked as pdf and more fun stuff. Just open <a href="http://www.ikea.com/us/en/catalog/products/10159834">any product page</a> and browse the source, you will discover a field named &#8220;jProductData&#8221; which is just what you want.</p>
<p>So i decided it&#8217;s time for me to try nokogiri, a beautiful and fast framework for processing urls and searching through the HTML. I managed to write a scraper in only very few lines that actually works. Since the json is embedded in regular JavaScript, i had to use rkelly to parse the javascript part and extract the right data.</p>
<p>For the datamodel, I used ohm with redis, which takes about no time to setup and works as advertised. </p>
<p>If you are curious, the source is available at <a href="https://github.com/moritzh/ikea-data">github</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/08/25/fun-with-nokogiri-screen-scraping-ikea-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with CFHTTPMessage, Headers and the HTTP Standard</title>
		<link>http://momo.brauchtman.net/2011/08/17/fun-with-cfhttpmessage-headers-and-the-http-standard/</link>
		<comments>http://momo.brauchtman.net/2011/08/17/fun-with-cfhttpmessage-headers-and-the-http-standard/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 15:52:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[icantbelievethisistrue]]></category>
		<category><![CDATA[improvingtheworld]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=615</guid>
		<description><![CDATA[TL:DR; CFHTTPMessage combines duplicate headers to a single string value containing all headers comma seperated. Thank you. I am currently developing a Proxy app that visualizes requests and gives you the ability to plug-and-play like filter and modify requests, which &#8230; <a href="http://momo.brauchtman.net/2011/08/17/fun-with-cfhttpmessage-headers-and-the-http-standard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>TL:DR; CFHTTPMessage combines duplicate headers to a single string value containing all headers comma seperated. Thank you. </p>
<p>I am currently developing a Proxy app that visualizes requests and gives you the ability to plug-and-play like filter and modify requests, which makes it a quite powerful tool for debugging web applications, mobile apps and so on.</p>
<p>Of course, this tool is built using Cocoa and Core Foundation. Interesting enough, Core Foundation brings a Type called &#8220;CFHTTPMessage&#8221;, which handles a lot of low-level message parsing and processing, and is really handy and quite easy to use. </p>
<p>There is one drawback: CFHTTPMessage is not designed to handle both the order in which the headers arrived in a message and duplicate header fields. The first point is somewhat irrelevant, as the HTTP1.1 standard points out that servers are not supposed to depend on any order in the clients – it&#8217;s really only a minor issue. The latter point is complicated. HTTP relies on duplicate headers a lot, consider this HTTP request ( Real life!! )</p>
<p><code><br />
POST /wp-admin/admin-ajax.php HTTP/1.1<br />
X-Requested-With: XMLHttpRequest<br />
Accept-Charset: ISO-8859-1<br />
Accept-Charset: utf-8;q=0.7<br />
Accept-Charset: *;q=0.3<br />
Accept-Encoding: gzip,deflate,sdch<br />
Content-Type: application/x-www-form-urlencoded<br />
Origin: http://momo.brauchtman.net<br />
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1<br />
Cookie: word<br />
Cookie:  wordpress_xxxxxxxx<br />
Cookie:  wordpress_logged_in_xxxxxx; httponly; expires=Tue<br />
Referer: http://momo.brauchtman.net/wp-admin/post-new.php<br />
Host: momo.brauchtman.net<br />
Accept-Language: de-DE<br />
Accept-Language: de;q=0.8<br />
Accept-Language: en-US;q=0.6<br />
Accept-Language: en;q=0.4<br />
Accept: */*<br />
Content-Length: 1160<br />
</code></p>
<p>There are quite some duplicates here. So the clever guys at Cupertino just forgot to handle duplicate headers at all? No, not really. But they just didn&#8217;t document what they are doing with it, which isn&#8217;t that clever at all, but fortunately, <a href="http://www.opensource.apple.com/source/CFNetwork/CFNetwork-128/HTTP/CFHTTPMessage.c">the sources are available here</a>. So after a bit of digging, I found out that duplicates are simply appended to a former header with same key, which sucks – the delimiter used is a simple comma, which is quite regularly found in header values, which makes splitting an art for itself. </p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/08/17/fun-with-cfhttpmessage-headers-and-the-http-standard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talking about code debt..</title>
		<link>http://momo.brauchtman.net/2011/08/15/talking-about-code-debt/</link>
		<comments>http://momo.brauchtman.net/2011/08/15/talking-about-code-debt/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 19:01:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=612</guid>
		<description><![CDATA[A mess is not a technical debt. A mess is just a mess. You should really read this article clarifying that, well, a mess has nothing to do with code debt.]]></description>
			<content:encoded><![CDATA[<blockquote><p>A mess is not a technical debt. A mess is just a mess.</p></blockquote>
<p>You should really read this article clarifying that, well, <a href="http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt">a mess has nothing to do with code debt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/08/15/talking-about-code-debt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apples Network Link Conditioner only built for certain CPUs..</title>
		<link>http://momo.brauchtman.net/2011/08/06/apples-network-link-conditioner-only-built-for-certain-cpus/</link>
		<comments>http://momo.brauchtman.net/2011/08/06/apples-network-link-conditioner-only-built-for-certain-cpus/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 16:32:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[antiusability]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=604</guid>
		<description><![CDATA[Xcode 4.1 comes with a nice tool called Network Link Conditioner, which is basically a GUI to configure certain settings of your network to make it behave like a &#8220;Lossy Edge Connection&#8221; or something similar. Why would anyone want to &#8230; <a href="http://momo.brauchtman.net/2011/08/06/apples-network-link-conditioner-only-built-for-certain-cpus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Xcode 4.1 comes with a nice tool called Network Link Conditioner, which is basically a GUI to configure certain settings of your network to make it behave like a &#8220;Lossy Edge Connection&#8221; or something similar. Why would anyone want to do this? In a nutshell, a bunch of bugs in iOS apps are only visible in such environments and hard to catch in office settings with perfect connections. So, to work around that perfect connection, this tool has been invented</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2011/08/nlcnlc.jpg" rel="lightbox[604]" title="Screenshot"><img class="aligncenter size-medium wp-image-606" title="Screenshot" src="http://momo.brauchtman.net/wp-content/uploads/2011/08/nlcnlc-300x160.jpg" alt="" width="300" height="160" /></a></p>
<p>Apple-like, it looks great and &#8230; doesn&#8217;t work ( which is not that Apple-like at all ). At least on my brand-new Early 2011 MBP, it just crashes. So I got curious and ask some friends to double-check it, and bingo, they had similar issues on the comparable i7-equipped machines.</p>
<p>Back at home, I fired the tool on my ancient 2009 iMac, and voila, it works just fine. So.. what the hell is going on there?</p>
<p>[update] I tested the network link conditioner on my new i5-iMac, not a problem there.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/08/06/apples-network-link-conditioner-only-built-for-certain-cpus/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Finally, a fine Go Write-Up/Comparison</title>
		<link>http://momo.brauchtman.net/2011/06/08/finally-a-fine-go-write-upcomparison/</link>
		<comments>http://momo.brauchtman.net/2011/06/08/finally-a-fine-go-write-upcomparison/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 19:55:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=592</guid>
		<description><![CDATA[That is worth linking to just for this highlight Look at your average web application&#8217;s lib directory. I wouldn&#8217;t be suprised to see a hundred JAR files there, all just for a simple search database or shopping site which even &#8230; <a href="http://momo.brauchtman.net/2011/06/08/finally-a-fine-go-write-upcomparison/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>That is worth linking to just for this highlight </p>
<blockquote><p>
Look at your average web application&#8217;s lib directory. I wouldn&#8217;t be suprised to see a hundred JAR files there, all just for a simple search database or shopping site which even PHP would do in 10k LOC. And should you be adventurous, try to build it yourself. A world of fun! Setting up a Linux system from scratch, without any step-by-step instructions, is easier. Trust me, I have done both. Be sure you know how to spell &#8220;dependency hell&#8221; forwards and backwards before you begin.
</p></blockquote>
<p>Here you go: <a href="http://www.syntax-k.de/projekte/go-review">Why all C-like languages except one suck.</a>. ( CC, btw ).</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2011/06/08/finally-a-fine-go-write-upcomparison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

