<?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; programming</title>
	<atom:link href="http://momo.brauchtman.net/tag/programming/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>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>qwerted status update</title>
		<link>http://momo.brauchtman.net/2010/01/17/qwerted-status-update/</link>
		<comments>http://momo.brauchtman.net/2010/01/17/qwerted-status-update/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 20:33:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[qwerted]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=498</guid>
		<description><![CDATA[Wow. just wow. The last few days, I received tons of emails from people who want to beta test qwerted, have been featured on some blogs ( androidguys.com , ignore the code , mobiflip , some other languaged-blogs ), thanks &#8230; <a href="http://momo.brauchtman.net/2010/01/17/qwerted-status-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow. just wow. The last few days, I received tons of emails from people who want to beta test qwerted, have been featured on some blogs ( <a href="http://www.androidguys.com/2010/01/13/early-look-probability-based-keyboard-qwerted/">androidguys.com</a> , <a href="http://ignorethecode.net/blog/2010/01/14/qwerted/">ignore the code</a> , <a href="http://www.mobiflip.de/2010/01/android-tastatur-qwerted-erahnt-eingaben-und-passt-layout-dynamisch-an/">mobiflip</a> , some other languaged-blogs ), thanks to the all writers, and got a lot of motivation from the positive reactions.</p>
<p>There are some things I&#8217;d like to adress in a short here. First of all, iPhone indeed has some kind of resizing of the touch areas for specific keys, but it&#8217;s not as extensive as qwerted&#8217;s resizing. Just try it ( I did )! Overall, qwerted and all other android keyboards do have a special problem, and that is that screen estate is fairly limited, and at least on my devices ( g1, google ion ) the screen is notably smaller than the iphone&#8217;s.</p>
<p>The next issue is word suggestions. Many people approached me with that wish. I&#8217;m currently in the process of building &#8220;more necessary&#8221; things, like a dictionary installer, and qwerted will get suggested words after that. But I guess not in the plain way you know word suggestions. Maybe context aware, maybe something else. But they are definitely on the agenda.</p>
<p>A word on pricing. I set up a small survey for beta users ( If you&#8217;re one of those, <a href="http://tinyurl.com/ya6erc8">the survey is on google</a> ), and the results at this point indicate a selling price of about $2.49. I think this is quite fair and reasonable.</p>
<p>I&#8217;m sorry if I forgot to answer some mails or didn&#8217;t reply to questions, it&#8217;s been a few busy days, and I&#8217;m still overwhelmed, amazed and thrilled by the way the whole qwerted-thing developed. And it&#8217;s just the start.</p>
<p>Finally: I guess I&#8217;m going to make the end-of-january deadline!</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2010/01/17/qwerted-status-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iType Demo Video online &#8211; finally getting real</title>
		<link>http://momo.brauchtman.net/2009/12/19/itype-demo-video-online-finally-getting-real/</link>
		<comments>http://momo.brauchtman.net/2009/12/19/itype-demo-video-online-finally-getting-real/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 16:03:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[eclair]]></category>
		<category><![CDATA[iType]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[useful]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=450</guid>
		<description><![CDATA[iType, my project, is finally getting close to release state. But talking is boring, so here is a short demo clip. If you have any questions, please write to itypeapp @ gmail.com I am looking for beta testers, so if &#8230; <a href="http://momo.brauchtman.net/2009/12/19/itype-demo-video-online-finally-getting-real/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>iType, my project, is finally getting close to release state. But talking is boring, so here is a short demo clip. If you have any questions, please write to itypeapp @ gmail.com</p>
<p><strong>I am looking for beta testers, so if you want to test it, please let me know!</strong></p>
<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8280014&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8280014&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>
<p><a href="http://vimeo.com/8280014">iType Demo Video</a> from <a href="http://vimeo.com/user2827961">Moritz Haarmann</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<h4>Related Blogs</h4>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>android</b></li>
<li><a href="http://www.androidguys.com/2009/12/23/mplayit-launches-android-app-store/">Mplayit Launches <b>Android</b> App Store | AndroidGuys</a></li>
<li><a href="http://www.androidguys.com/2009/12/22/nexus-one-video-walkthrough/">Nexus One Video Walkthrough | AndroidGuys</a></li>
<li><a href="http://www.androidguys.com/2009/12/23/npr-news-arrives-for-android/">&#39;NPR News&#39; Arrives for <b>Android</b>! | AndroidGuys</a></li>
<li><a href="http://www.androidguys.com/2009/12/23/motorola-cliq-is-latest-android-handset-to-get-rooted/">Motorola Cliq is Latest <b>Android</b> Handset to Get Rooted | AndroidGuys</a></li>
<li><a href="http://www.healthinlife.com">Health Blog</a>
</li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>eclair</b></li>
<li><a href="http://papundits.wordpress.com/2009/12/22/senator-ben-nelson-takes-last-eclair/">Senator Ben Nelson Takes Last <b>Éclair</b> « PA Pundits – International</a></li>
<li><a href="http://www.christianvanneste.fr/?p=3753">Article de Nord <b>Eclair</b> sur le Front de Lys &#8211; Christian Vanneste <b>&#8230;</b></a></li>
<li><a href="http://geekfor.me/new-release/cdma-hero-eclair-15/">Download: CDMA Hero Android 2.1 v1.5 <b>Eclair</b> [BETA] « Geek For Me <b>&#8230;</b></a></li>
<li><a href="http://www.groovement.co.uk/2009/11/groovement-tokimonsta-eclair-fifi-podcast/">Groovement: TOKIMONSTA / <b>ECLAIR</b> FIFI podcast (Hoya Hoya takeover <b>&#8230;</b></a></li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>iType</b></li>
<li><a href="http://tech.turbu-rpg.com/70/rtti-and-enumerators">RTTI and enumerators</a></li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>keyboard</b></li>
<li><a href="http://worldreportsite.com/btstack-keyboard-jailbreak-app-provides-iphone-text-entry.html">BTstack <b>Keyboard</b> jailbreak app provides iPhone text entry | World <b>&#8230;</b></a></li>
<li><a href="http://zikkir.com/scitech/26326">iPhone gets Bluetooth <b>keyboard</b> driver «</a></li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>programming</b></li>
<li><a href="http://ebooksbaba.com/blogroll/unix-network-programming-volume-2-interprocess-communications/">e-Books Baba » UNIX Network <b>Programming</b>, Volume 2: Interprocess <b>&#8230;</b></a></li>
<li><a href="http://kucb.wordpress.com/2009/12/23/holiday-programming-on-channel-8-tv/">Holiday <b>Programming</b> on Channel 8 TV « KUCB</a></li>
<li><a href="http://www.cherrybombed.com/2009/12/holiday-programming-note/">Holiday <b>Programming</b> Note… | Cherrybombed</a></li>
<li><a href="http://www.cybertheater.com/apple-tv-to-host-slew-of-programming-options/">Apple TV To Host Slew of <b>Programming</b> Options</a></li>
<li><a href="http://www.spottedhere.com/dallas/club/aura+lounge">Aura Dallas</a>
</li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>useful</b></li>
<li><a href="http://www.answeruniverse.com/effective-tips-on-yoga-useful-information-2/">Effective Tips On Yoga &#8211; <b>Useful</b> Information</a></li>
<li><a href="http://noank6.com/2009/01/10/why-a-free-tax-course-is-so-useful/">Why a Free Tax Course is So <b>Useful</b> « noank6.com</a></li>
<li><a href="http://www.answeruniverse.com/a-guide-to-pickling-useful-information-2/">A Guide To Pickling &#8211; <b>Useful</b> Information</a></li>
</ul>
<ul class="pc_pingback">
<li class="hdl" style="list-style: none">Related Blogs on <b>work</b></li>
<li><a href="http://blog.reduceyourworkerscomp.com/?p=1044">Workers Comp Kit Blog Workers Blog Archive » NEW ZEALAND Rehab at <b>&#8230;</b></a></li>
<li><a href="http://videos4you.com/blog/2009/12/23/work-from-home-opportunities-for-the-unemployed/"><b>Work</b> From Home Opportunities For The Unemployed | Philip Harman&#39;s <b>&#8230;</b></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/12/19/itype-demo-video-online-finally-getting-real/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RandomAccessFile weirdness explained, no buffers, just pain.</title>
		<link>http://momo.brauchtman.net/2009/12/18/randomaccessfile-weirdness-explained-no-buffers-just-pain/</link>
		<comments>http://momo.brauchtman.net/2009/12/18/randomaccessfile-weirdness-explained-no-buffers-just-pain/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 15:10:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[antiusability]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=448</guid>
		<description><![CDATA[Ola! I&#8217;ve been coding a new android keyboard lately, a project for my university degree but also : for fun. While I was doing this, specially while implementing a file-based dictionary containing frequency information of all words stored in there, &#8230; <a href="http://momo.brauchtman.net/2009/12/18/randomaccessfile-weirdness-explained-no-buffers-just-pain/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ola! I&#8217;ve been coding a new android keyboard lately, a project for my university degree but also : for fun. While I was doing this, specially while implementing a file-based dictionary containing frequency information of all words stored in there, I stumbled upon a very, very weird Java-behavior.</p>
<p>Let&#8217;s explain it. Using RandomAccessFile, you have both Interfaces, DataInput and DataOutput ( and Closeable ) at your service. Wonderful, I thought, and started to use them. Well, two weeks and endless debugging sessions later I figured out why nothing worked the way it should: RandomAccessFile.</p>
<p>This little class is unable to provide the most simple functionality: Write a byte value, say 42, to a certain position, say 11223 in a file, then seek back to 11223, read a byte value, and make sure it&#8217;s the same. The reason for this odd, strange, undesired, undocumented feature? No shared buffers. In fact, no buffers, just for the explicit read and write operations ( they are mapped to native methods anyway ). So basically, everything should work fine in an unbuffered environment, with an operating system directly writing everything down on file.</p>
<p>Because virtually no operating system works unbuffered, RandomAccessFile doesn&#8217;t work. The working workaround is to sleep for some time or something alike.</p>
<p>By the way, I was only able to figure it out by looking at the openJDK source, an excellent source in case you&#8217;re wondering about some Java behaviour. And thanks to <a href="http://www.marc-seeger.de/">Marc Seeger</a> for his help!</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/12/18/randomaccessfile-weirdness-explained-no-buffers-just-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gravatar Mac Address Book Support Updated for Snow Leopard</title>
		<link>http://momo.brauchtman.net/2009/12/10/gravatar-address-book-support-updated-for-snow-leopard/</link>
		<comments>http://momo.brauchtman.net/2009/12/10/gravatar-address-book-support-updated-for-snow-leopard/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 02:48:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[improvingtheworld]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=444</guid>
		<description><![CDATA[Because the bundle somehow didn&#8217;t work for snow leopard, now it does, and you can get it here. of course . So basically, your mac adressbook is now able to get the gravatars again.. hrhr-]]></description>
			<content:encoded><![CDATA[<p>Because the bundle somehow didn&#8217;t work for snow leopard, now it does, and you can <a href="http://momo.brauchtman.net/wp-content/uploads/2009/12/gravatarize.zip">get it here. </a> of course <img src='http://momo.brauchtman.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . So basically, your mac adressbook is now able to get the gravatars again.. hrhr-</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/12/10/gravatar-address-book-support-updated-for-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Finally: WordPress Benchmark</title>
		<link>http://momo.brauchtman.net/2009/11/23/finally-wordpress-benchmark/</link>
		<comments>http://momo.brauchtman.net/2009/11/23/finally-wordpress-benchmark/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 01:57:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[antiusability]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=431</guid>
		<description><![CDATA[So, there are no real benchmarks of a WordPress running in the wild available ( couldn&#8217;t believe it either.. ). So I got my ab and gnuplot friends and created one. The reason why I&#8217;m doing this that while developing &#8230; <a href="http://momo.brauchtman.net/2009/11/23/finally-wordpress-benchmark/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, there are no real benchmarks of a WordPress running in the wild available ( couldn&#8217;t believe it either.. ). So I got my ab and gnuplot friends and created one. The reason why I&#8217;m doing this that while developing ( or forking, to be honest, marc&#8217;s work ) i was curious what php can achieve. The answer is, as you will see, very sad.</p>
<p>I ran the benchmarks on two different machines. One of them is a xen-based virtual machine with 4gb of RAM and a dedicated CPU. The MySQL server runs on a seperate VM on the same physical device. The first graph shows the results at a concurrency level of 2, the second one a concurrency level of 5.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_s.png" rel="lightbox[431]" title="test1_s"><img class="aligncenter size-medium wp-image-432" title="test1_s" src="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_s-300x225.png" alt="test1_s" width="300" height="225" /></a><br />
<a href="http://momo.brauchtman.net/wp-content/uploads/2009/11/test2_s.png" rel="lightbox[431]" title="test2_s"><img class="aligncenter size-medium wp-image-433" title="test2_s" src="http://momo.brauchtman.net/wp-content/uploads/2009/11/test2_s-300x225.png" alt="test2_s" width="300" height="225" /></a>The second run was performed on the machine where this blog is hosted. All benchmarks are running against WordPress&#8217; index.php, to not allow caching to falsify the results. The machine is also a virtual machine, enough RAM, slow cpu though. Please keep in mind that most people are using that kind of machines for their blogging, because dedicated machines are not exactly.. cheap. Anyhow, concurrency level 2. I didn&#8217;t bother to check what level 5 would have changed, because the time taken for the first one was already 20 minutes.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_m.png" rel="lightbox[431]" title="test1_m"><img class="aligncenter size-medium wp-image-435" title="test1_m" src="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_m-300x225.png" alt="test1_m" width="300" height="225" /></a></p>
<p>For the sake of being mean to all PHP-lovers, I included a bench of an Rails-Application served from the very same VM as the first benchmarks. Of course, you can&#8217;t compare Rails to PHP. But still interesting, I think.</p>
<p><a href="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_k.png" rel="lightbox[431]" title="test1_k"><img class="aligncenter size-medium wp-image-434" title="test1_k" src="http://momo.brauchtman.net/wp-content/uploads/2009/11/test1_k-300x225.png" alt="test1_k" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/11/23/finally-wordpress-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whihyhhaha: Android Native Development Kit released</title>
		<link>http://momo.brauchtman.net/2009/06/26/whihyhhaha-android-native-development-kit-released/</link>
		<comments>http://momo.brauchtman.net/2009/06/26/whihyhhaha-android-native-development-kit-released/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 17:32:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[googleio]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=380</guid>
		<description><![CDATA[As of yesterday, there is a Native Developer Kit for Android available. This came as a surprise for me, as there were not many rumors covering that topic, but regarding the broad coverage on the iphone 3gs lately, and most &#8230; <a href="http://momo.brauchtman.net/2009/06/26/whihyhhaha-android-native-development-kit-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As of yesterday, there is a <a href="http://groups.google.com/group/android-ndk">Native Developer Kit for Android available</a>. This came as a surprise for me, as there were not many rumors covering that topic, but regarding the broad coverage on the iphone 3gs lately, and most of all it&#8217;s amazing speed, Google certainly had to do something to keep Android in the game.</p>
<p>So this is, from my point of view, a very much strategic decision, placed just at the right time. Android&#8217;s finally deployed to a number of new devices, not only by HTC, but also Samsung and other vendors are now adopting it. So after this first hurdle being taken, Google realized that there is more to mobile devices than PIM functionality and a browser, plus some location based gimmicks. Games are a massively growing market inside the mobile universe. And they want to have a part of that cake, but without a Native Development Kit and the ability to interface graphics directly from real machine code, the speed impacts induced by using a Virtual Machine to execute code are still too high for big games. Can I prove it? Well, no need to, to cite google here:</p>
<p><em>In a future release we hope to support linking with OpenGL ES and audio libraries, which should enable high-performance games.</em></p>
<p>By releasing this kit, Google finally opens Android to all those people not willing to write Java Code that perfoms well ( which is not the way Java is handled anywhere else ) and let&#8217;s developers to the optimizing of raw code themselves. I&#8217;m really looking forward to seeing some of the results.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/06/26/whihyhhaha-android-native-development-kit-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using ActiveResource in the wild</title>
		<link>http://momo.brauchtman.net/2009/06/23/using-activeresource-in-the-wild/</link>
		<comments>http://momo.brauchtman.net/2009/06/23/using-activeresource-in-the-wild/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 23:10:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[antiusability]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=378</guid>
		<description><![CDATA[My last posts haven&#8217;t been quite technical, and they haven&#8217;t been quite recent too- I&#8217;m sorry, yet I just don&#8217;t have time. As a brief follow-up: it has been overwhelming in San Francisco ( except for the 300$-dentist bill ), &#8230; <a href="http://momo.brauchtman.net/2009/06/23/using-activeresource-in-the-wild/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My last posts haven&#8217;t been quite technical, and they haven&#8217;t been quite recent too- I&#8217;m sorry, yet I just don&#8217;t have time. As a brief follow-up: it has been overwhelming in San Francisco ( except for the 300$-dentist bill ), and I&#8217;m so looking forward to coming back.</p>
<p>And, tada, I&#8217;ve been spending the last few weeks just entering Rails ( a Ghetto? maybe ) a bit more than I did before. As always, there are cool things to tell. And not so cool things, too. Start with the good ones.</p>
<p>Rails has proven to work extremely well in pre-production mode. No framework-sourced flaws, bugs, whatever. Just nice, and with some caching-salt, speed hasn&#8217;t been an issue, in contrast, it has been amazing.</p>
<p>That&#8217;s the good part of it. The bad part is that Rails claims to be capable of working in a distributed environment, providing services ( they don&#8217;t call them Web Services anymore ) addressable via REST ( buzzzz ) over HTTP, of course. Well, that&#8217;s not quite true. If you stick with the <a href="http://api.rubyonrails.org/classes/ActiveResource/Base.html">example given in the docs</a>, and are in fact happy with a remote object capable of experiencing an unauthenticated change of some first name, this is nothing but true. But when it comes to some other features, e.g. associations or caching, one question came up: are they serious?</p>
<p>Let&#8217;s do some demos. In case you want to include objects of a has-many relationship, the way of choice is ( <a href="http://api.rubyonrails.org/classes/ActiveRecord/Serialization.html">according to the ActiveRecord::Serialization docs</a> ) either to call to_xml with really ugly parameters ( such as @ship.to_xml :include=&gt;[:passengers, :sailors ] ) in a non-dry manner or to override to_xml, both not being exactly Rails-like, ugly, hard to maintain and only loosely coupled with real-world requirements.</p>
<p>The other part, the consuming part where ActiveResource is indeed responsible for handling everything, has been consequently kept free of useful stuff. This could on the one hand be a pro for people hating Rails&#8217; magic, but it&#8217;s just quite far away from being usable. And it has nothing in common with the way ActiveRecord behaves. Any options? Sure.</p>
<p>At the moment, I&#8217;m sticking with <a href="http://agilewebdevelopment.com/plugins/hyperactive_resource">HyperactiveResource</a>, the funniest named plugin ever. It extends ActiveResource to play a bit more nice, yet it&#8217;s not the ultimate answer, but a great extension, still. If you&#8217;re into some serious Rails stuff with some distributed thingies, you should give it a try.</p>
<p>So what&#8217;s missing? The feeling to work with something that has been designed by someone who actually uses it doing more than changing first names. I&#8217;m really disappointed by having to deal with the framework, something I wasn&#8217;t used to with Rails before in that intensity. And while Java EE may be a pain, for distributed stuff, it&#8217;s still a very good way if you need reliable and consistent, proven-to-work solutions.</p>
<p>In my next post, I&#8217;ll talk about my android experiences so far. Love it <img src='http://momo.brauchtman.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/06/23/using-activeresource-in-the-wild/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Waiting for&#8230; Android wishlist</title>
		<link>http://momo.brauchtman.net/2009/04/22/waiting-for-android-wishlist/</link>
		<comments>http://momo.brauchtman.net/2009/04/22/waiting-for-android-wishlist/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:46:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[googleio]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[seetheworld]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://momo.brauchtman.net/?p=350</guid>
		<description><![CDATA[Welcome in the middle of my night, I&#8217;m currently spending my days working, my evenings eating ( barbecue, it&#8217;s gettin&#8217; hot in here.. ) and my nights either trying to watch my favorite TV-shows or sleeping. And if none of &#8230; <a href="http://momo.brauchtman.net/2009/04/22/waiting-for-android-wishlist/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Welcome in the middle of my night, I&#8217;m currently spending my days working, my evenings eating ( barbecue, it&#8217;s gettin&#8217; hot in here.. ) and my nights either trying to watch my favorite TV-shows or sleeping. And if none of those shows is on, my head notices me of several thoughts, most of the time presented at a rather disturbing concurrency level, related to &#8230; android.</p>
<p>I&#8217;m still exploring the API, and Android as a complete product, and the more I learn, the more I&#8217;m getting caught by it. And I&#8217;m sure that a few years from now, many people now using costly, unhandy notebooks will be using devices based on something like Android.</p>
<p>But let&#8217;s try to stick to the title of this post. First of all, I&#8217;m really looking forward to Google I/O. I booked a flight, it&#8217;s my 2nd time in San Francisco ( I don&#8217;t know where to sleep yet, but there&#8217;s some time left to figure it out, hints welcome ), excited. And I&#8217;m working towards finishing my own keyboard implementation to show it off. I&#8217;m not going to talk about it in detail as long as there is no working demo available, and it will take some time, trust me.</p>
<p>I&#8217;m also waiting for Cupcake. Cupcake, for the ones of you who are not familiar with Android, is a read-only development branch, meant to publish non open-source development efforts. These efforts also include the creation of an Interface to implement custom Input Methods, be it a Keyboard or anything else that allows for input of textual data. One could very well think of a Morse-to-Text button ( idea for a tutorial ), a rotate-to-write or an application using an artificial neural network to do some lip-reading using the phones camera. Though the last one will be quite resource-consuming, the point is, anything can be done using the very generic API.</p>
<p>Once again, if you want to use it, get yourself the Cupcake Sources. It&#8217;s well explained at source.android.com. I somehow made it, without spending more than about 30 minutes, to build emulator images and the rest i needed to get going. And although the Eclipse plugin reports an error, it&#8217;s working even for cupcake.</p>
<p>Luckily, when building the stuff you need the docs are also being created, explaining what you need. I especially recommend to take a look at the built-in keyboard&#8217;s implementation, as it&#8217;s very readable and self-explaining.</p>
<p>I&#8217;m really hoping to find some time to publish a tutorial on this topic, but I&#8217;m not able to promise anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/04/22/waiting-for-android-wishlist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Development: The controller, the view, a pain, it&#8217;s true.</title>
		<link>http://momo.brauchtman.net/2009/03/03/web-development-the-controller-the-view-a-pain-its-true/</link>
		<comments>http://momo.brauchtman.net/2009/03/03/web-development-the-controller-the-view-a-pain-its-true/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 22:29:16 +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=315</guid>
		<description><![CDATA[I&#8217;m currently heavily involved in developing a rather huge application for the web. Nowadays, there is a certain illusion that frameworks, be it the Java EE using Spring or Rails and it&#8217;s friends simplify development and make it actually fun &#8230; <a href="http://momo.brauchtman.net/2009/03/03/web-development-the-controller-the-view-a-pain-its-true/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently heavily involved in developing a rather huge application for the web. Nowadays, there is a certain illusion that frameworks, be it the Java EE using Spring or Rails and it&#8217;s friends simplify development and make it actually fun developing for the web.</p>
<p>At least for me, this fun suddenly ends when it comes to controllers and their more-or-less tight integration to according views. The traditional, but still largely used, MVC-pattern worked perfect for monolithic, big pages with each one having a clearly defined function.</p>
<p>Today, the world changed. AJAX is still hot shit, and using it without a) blowing up the lines of code in both the view and the controller requires either writing a lot of unreusable helper-functions or depending on templates ( or partials ), anyhow, prepared lines of view code.</p>
<p>But the core idiom of AJAX, the ability to exchange single parts of a website without touching the rest of it, is and cannot be addressed efficiently using these two methods, at least not with the claim that development is fun. It&#8217;s not fun ( at least not here.. again ) to include templates over and over and over again. Web development is still, tell me I&#8217;m wrong, struggling with the Presentation rather than solving complicated Model-related tasks. And there is either no one concerned or I am way to stupid to get the point.</p>
<p>I&#8217;m really looking for a metalanguage describing a web-interface, with all it&#8217;s bindings to data, to related controllers and a framework being able to process such a thing ( including caching and so on ), making it straightforward to develop an ajax-based interface, tailored to one&#8217;s needs.</p>
<p>For those of you pointing at one of the many JavaScript Frameworks, like GWT, enabling such a functionality: It&#8217;s not what I mean. It&#8217;s a more general, server-side processed approach, enabling slim clients and fast page processing.</p>
<p>Edit: I know, editing posts is not best practice, but this small additions isn&#8217;t wort another post. So I was really thinking a lot about what I wrote here, and I&#8217;m quite confident that the main point is indeed the fact the code that logically belongs to the viewer ( something that loads a list for an autocompleter ) is still around in the controller which creates a scenario we usually try to avoid using MVC.. view code in the controller. And updating the view once again requires updating the controller code, most likely at least. What is the other option? To let that simple code be created by a helper at the time it&#8217;s needed. Same for Content-type switching orgies to format the output properly. I&#8217;m on it, to make coding a little more fun.</p>
<p>And if I&#8217;ve been missing some hot new thing ( I&#8217;ve been playing with CouchDB, jiha ), please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://momo.brauchtman.net/2009/03/03/web-development-the-controller-the-view-a-pain-its-true/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

