<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>I am Zef</title>
	
	<link>http://zef.me</link>
	<description>Technology, Me, You.</description>
	<lastBuildDate>Sat, 25 Feb 2012 05:12:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zefme" /><feedburner:info uri="zefme" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://zef.me/?pushpress=hub" /><item>
		<title>9 Years of Blogging</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/H4SinpUAdtQ/9-years-of-blogging</link>
		<comments>http://zef.me/4054/9-years-of-blogging#comments</comments>
		<pubDate>Sat, 25 Feb 2012 05:06:26 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=4054</guid>
		<description><![CDATA[I missed it. Crap. Feb 10th marked by 9 year blogging anniversary. Sure. There&#8217;s been ups and downs in the volume of posts that appeared here. At some point I managed to post once every single day for a year. For the past few months it&#8217;s been quiet, at least on zef.me. But I still [...]]]></description>
			<content:encoded><![CDATA[<p>I missed it. Crap. Feb 10th marked by 9 year blogging anniversary.</p>

<p>Sure. There&#8217;s been ups and downs in the volume of posts that appeared here. At some point I managed to post once every single day for a year. For the past few months it&#8217;s been quiet, at least on zef.me. But I still blog &#8212; more on <a href="http://c9.io/site/author/zefhemel/">other websites</a>. Little over 1,600 posts in 9 years.</p>

<p>Next year requires a more extensive celebration.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/H4SinpUAdtQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/4054/9-years-of-blogging/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/4054/9-years-of-blogging</feedburner:origLink></item>
		<item>
		<title>We don’t need no IDE!</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/o5oLIqPzcbY/we-dont-need-no-ide</link>
		<comments>http://zef.me/3982/we-dont-need-no-ide#comments</comments>
		<pubDate>Sat, 25 Feb 2012 04:41:52 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3982</guid>
		<description><![CDATA[Two quotes from a random Quora question asking for a HTML/CSS/PHP IDE: You don&#8217;t need a full-blown IDE for web development and &#8230; you can&#8217;t go wrong with TextMate. It&#8217;s easy to use, convenient, and extensible. Plus the syntax highlighting blows everything else out of the water. I wonder. What happened the past few years? [...]]]></description>
			<content:encoded><![CDATA[<p>Two quotes <a href="http://www.quora.com/What-is-a-good-IDE-for-someone-learning-HTML-CSS-PHP-MySQL-and-Javascript">from a random Quora question</a> asking for a HTML/CSS/PHP IDE:</p>

<blockquote>
  <p>You don&#8217;t need a full-blown IDE for web development</p>
</blockquote>

<p>and</p>

<blockquote>
  <p>&#8230; you can&#8217;t go wrong with TextMate. It&#8217;s easy to use, convenient, and extensible. Plus the syntax highlighting blows everything else out of the water.</p>
</blockquote>

<p>I wonder. What happened the past few years?</p>

<p>The 90&#8242;s and 00&#8242;s were the golden age of IDEs. No longer did you have to use plain text editors that did nothing but paint your code in colors. No longer did you have to use a command-line based debugger. No longer did you have to open up a reference manual to see what arguments that one method takes or how it works. No longer did you even have to remember what methods a string object has. No longer did you have to do Find &amp; Replace refactoring.</p>

<p><img src="http://zef.me/wp-content/uploads/2012/02/villa.jpg" alt="" title="villa" width="550" height="395" class="alignnone size-full wp-image-4037" /></p>

<p>But today, IDEs got a bad rap.</p>

<p>Since the growing popularity of dynamic languages, people seem to get the idea that IDEs are only required for those bloaty old languages like C# and C++ and oh-my <em>Java</em>. IDEs are, general perception seems to be, bloaty pieces of software. Resource hogs. Slow. Badly designed. Not cool.</p>

<p>So, the current generation of programmers &#8212; <em>you</em>, most likely &#8212; seems to have moved away from the languages typically associated with IDEs. You use <em>cool</em> languages, like Ruby, Python, PHP and JavaScript. And <em>cool</em> languages don&#8217;t need no IDE. You&#8217;re pretty happy with your simple, basic text editor.</p>

<p><img src="http://zef.me/wp-content/uploads/2012/02/boxman.480.jpg" alt="" title="boxman.480" width="480" height="326" class="alignnone size-full wp-image-4038" /></p>

<p>Your language don&#8217;t need no code completion &#8212; you can keep the entire API of your application in your head. You don&#8217;t need no refactoring &#8212; you no longer make design mistakes. You don&#8217;t need no debugger &#8212; because, there&#8217;s no more bugs in <em>your</em> software, and <code>console.log</code> ought to be enough for everybody. You don&#8217;t need constant analysis of your code and clearly marked warnings and errors &#8212; you&#8217;ll find the mistakes you made when it is time. You don&#8217;t need integrated API documentation &#8212; you know everything there is to know already.</p>

<p>But perhaps there is still <a href="http://vimeo.com/36579366/">a lot of opportunity for doing amazing stuff in the IDE space</a>. Maybe an IDE <em>can</em> be very useful. Cool. Great. Even for <em>dynamic</em> languages.</p>

<p>Yeah &#8212; maybe.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/o5oLIqPzcbY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3982/we-dont-need-no-ide/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://zef.me/3982/we-dont-need-no-ide</feedburner:origLink></item>
		<item>
		<title>Avoiding JavaScript Pitfalls Through Tree Hugging</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/eDTO5qanGbc/avoiding-javascript-pitfalls-through-tree-hugging</link>
		<comments>http://zef.me/4030/avoiding-javascript-pitfalls-through-tree-hugging#comments</comments>
		<pubDate>Sun, 05 Feb 2012 11:45:33 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=4030</guid>
		<description><![CDATA[Mid-january I have a talk about treehugger.js at MeetJS Summit. Treehugger is the library I developed for use in Cloud9 for various code analysis features. The video of my live coding is not always super clear, but I think it gives a good, albeit brief, introduction to my work there anyway. To play with treehugger.js [...]]]></description>
			<content:encoded><![CDATA[<p>Mid-january I have a talk about <a href="https://github.com/ajaxorg/treehugger">treehugger.js</a> at <a href="http://summit.meetjs.pl">MeetJS Summit</a>. Treehugger is the library I developed for use in Cloud9 for <a href="http://cloud9ide.posterous.com/toward-better-code-editing">various code analysis features</a>.</p>

<p>The video of my live coding is not always super clear, but I think it gives a good, albeit brief, introduction to my work there anyway. To play with treehugger.js (as I did during the talk), you can use the <a href="http://ajaxorg.github.com/treehugger/test.html">treehugger.js playground</a>.</p>

<iframe width="560" height="315" src="http://www.youtube.com/embed/wY3Ycpqa3KE" frameborder="0" allowfullscreen></iframe>
<img src="http://feeds.feedburner.com/~r/zefme/~4/eDTO5qanGbc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/4030/avoiding-javascript-pitfalls-through-tree-hugging/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/4030/avoiding-javascript-pitfalls-through-tree-hugging</feedburner:origLink></item>
		<item>
		<title>Dr. Zef</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/SkM4C0E5HTg/dr-zef</link>
		<comments>http://zef.me/4006/dr-zef#comments</comments>
		<pubDate>Fri, 20 Jan 2012 08:11:43 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=4006</guid>
		<description><![CDATA[Last week Wednesday I successfully defended my PhD thesis. Therefore, I am now officially a doctor. I was a little nervous, because you don&#8217;t know in advance what questions will be be asked during the defense. However, it was a very nice, friendly defense. You can download my thesis as PDF, though I must warn [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zef.me/wp-content/uploads/2012/01/defense1.jpg" alt="" title="defense1" width="550" height="387" class="alignright size-full wp-image-4009" /></p>

<p>Last week Wednesday I successfully defended my PhD thesis. Therefore, I am now officially a doctor. I was a little nervous, because you don&#8217;t know in advance what questions will be be asked during the defense. However, it was a very nice, friendly defense.</p>

<p><a href="http://zef.me/thesis.pdf">You can download my thesis as PDF</a>, though I must warn you: it&#8217;s a page turner!</p>

<p><img src="http://zef.me/wp-content/uploads/2012/01/defense2.jpg" alt="" title="defense2" width="550" height="376" class="alignright size-full wp-image-4010" /></p>

<blockquote>
  <p>Domain-Specific Languages (DSLs) are programming language aimed at a particular problem domain, e.g. banking, database querying or website
  page lay-outs. Through the use of high-level concepts, a DSL raises the level of abstraction and expressive power of the programmer, and
  reduces the size of programs.</p>
  
  <p>This dissertation covers various aspects of the design and implementations of such DSLs. Throughout the project, two DSLs were
  developed: WebDSL, a language for rapid web application development, and mobl, a DSL for mobile application development. Using these two
  case studies, the dissertation explores the design space, as well as techniques developed to implement the compiler and IDE for such DSLs.</p>
  
  <p>The general design principle applied is syntactic integration and separation of concerns. Rather than using a number of DSLs to build a
  single application, our approach is to develop a single, integrated DSL that can be used to develop the entire application, while still
  enabling clear separation of concerns. The result of this integration is static verification &#8212; the ability to instantly be notified when
  your program is inconsistent, without having to run it.</p>
  
  <p>The dissertation covers five aspects of DSL design and implementation: (1) Verification, the ability to verify applications written using the DSL; (2) Coverage, how to ensure that a DSL enables its user to express what he needs to express; (3) Abstractions, the use as well as
  the definition of abstractions in a DSL; (4) Code generation, techniques for efficiently generating executable code from a DSL; (5)
  Portability, the ability to generate code from a DSL that is runnable on multiple platforms.</p>
</blockquote>
<img src="http://feeds.feedburner.com/~r/zefme/~4/SkM4C0E5HTg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/4006/dr-zef/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://zef.me/4006/dr-zef</feedburner:origLink></item>
		<item>
		<title>Reality Distortion through Text</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/zsKFg2Mt9jY/reality-distortion-through-text</link>
		<comments>http://zef.me/3985/reality-distortion-through-text#comments</comments>
		<pubDate>Thu, 29 Dec 2011 16:08:32 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[Because I care]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3985</guid>
		<description><![CDATA[One of Steve Jobs&#8217; most amazing traits was the ability to &#8220;invoke&#8221; a reality distortion field. He did it many a time. He went on stage, pitched his new product and even though you didn&#8217;t need it at all &#8212; you&#8217;d feel deep inside that in fact you really did. You had to have it. [...]]]></description>
			<content:encoded><![CDATA[<p>One of Steve Jobs&#8217; most amazing traits was the ability to &#8220;invoke&#8221; a reality distortion field. He did it many a time. He went on stage, pitched his new product and even though you didn&#8217;t need it at all &#8212; you&#8217;d feel deep inside that in fact you really <em>did</em>. You had to have it.</p>

<p>According to his biography, Steve did this in many aspects of his life. Not just on stage, but also during meetings and even with his disease. In the later case that did not work out so well.</p>

<p>I always wondered &#8212; what is the essence of this distortion field? Could I do that, or is it Steve-specific? Does it require you hearing him, seeing him, or could he do the same thing through text? Yeah. Would it be possible to convince somebody of about anything as long as you would pitch it the right way <em>in text</em>, online? Is it about the pitch, or is it more than that? Can you somehow perfect a writing style that does that?</p>

<p>Since then I made an attempt or two, of really working on pitching an idea <em>just</em> right. Perfecting it in every possible way. Attempting to describe it in such a way that you simply <em>could not</em> disagree. And I think, at times, I did pretty well. But then I found out the reality of an online audience.</p>

<p>They don&#8217;t read this far. <a href="http://en.wikipedia.org/wiki/Wikipedia:Too_long;_didn't_read">TL;DR</a>.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/zsKFg2Mt9jY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3985/reality-distortion-through-text/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://zef.me/3985/reality-distortion-through-text</feedburner:origLink></item>
		<item>
		<title>Blog Activity</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/GOTZ3eUTjeA/blog-activity</link>
		<comments>http://zef.me/3978/blog-activity#comments</comments>
		<pubDate>Mon, 28 Nov 2011 09:48:33 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3978</guid>
		<description><![CDATA[Although it&#8217;s quiet here, I&#8217;ve been putting down a fair amount of words on the Cloud9 IDE company blog recently. For your reading pleasure: Towards JavaScript Refactoring Never Commit to your Master Effective Code Editing with Cloud9 The Time has Come to Add Classes to JavaScript Complete Your Code]]></description>
			<content:encoded><![CDATA[<p>Although it&#8217;s quiet here, I&#8217;ve been putting down a fair amount of words on the <a href="http://cloud9ide.posterous.com/">Cloud9 IDE company blog</a> recently. For your reading pleasure:</p>

<ul>
<li><a href="http://cloud9ide.posterous.com/toward-better-code-editing">Towards JavaScript Refactoring</a></li>
<li><a href="http://cloud9ide.posterous.com/never-commit-to-your-master">Never Commit to your Master</a></li>
<li><a href="http://cloud9ide.posterous.com/effective-code-editing-with-cloud9">Effective Code Editing with Cloud9</a></li>
<li><a href="http://cloud9ide.posterous.com/the-time-has-come-to-add-classes-to-javascrip">The Time has Come to Add Classes to JavaScript</a></li>
<li><a href="http://cloud9ide.posterous.com/complete-your-code">Complete Your Code</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/zefme/~4/GOTZ3eUTjeA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3978/blog-activity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/3978/blog-activity</feedburner:origLink></item>
		<item>
		<title>Everything “In The Cloud”</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/_mibAOiMFQI/everything-in-the-cloud</link>
		<comments>http://zef.me/3972/everything-in-the-cloud#comments</comments>
		<pubDate>Sun, 04 Sep 2011 13:11:38 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3972</guid>
		<description><![CDATA[Here&#8217;s what I use my computer for: Browsing the web Email Twitter, Facebook, &#8230; Listening to music Watching video Chat/call/skype Developing software I realized that all of these take place &#8220;in the cloud&#8221; (distributed on multiple servers across on the internet) today. There&#8217;s very little vital data that I still store locally on my harddrive. [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s what I use my computer for:</p>

<ul>
<li>Browsing the web</li>
<li>Email</li>
<li>Twitter, Facebook, &#8230;</li>
<li>Listening to music</li>
<li>Watching video</li>
<li>Chat/call/skype</li>
<li>Developing software</li>
</ul>

<p>I realized that all of these take place &#8220;in the cloud&#8221; (distributed on multiple servers across on the internet) today. There&#8217;s very little vital data that I still store locally on my harddrive.</p>

<p>Browsing the web, email, twitter, Facebook is all online, all this data is in the cloud. I do most of my music listening on <a href="http://www.spotify.com">Spotify</a>, which also stores my playlists, and have my iTunes Music directory backed-up on <a href="http://www.dropbox.com">Dropbox</a>. Recently I have been uploading almost all my documents to <a href="http://docs.google.com">Google Docs</a> as well as some video content (which I can now stream from my Docs account). Chatting and calling is also all online, using Skype, IRC and Google Talk.</p>

<p>Last Thursday I started my job at <a href="http://wwww.cloud9ide.com">Cloud9 IDE, Inc.</a> who build the Cloud9 IDE &#8212; which, you guessed it, enables you to develop software in the cloud.</p>

<p>I think I can truthfully say that if my laptop breaks down right now, it really wouldn&#8217;t matter. I wouldn&#8217;t lose any important data.</p>

<p>None.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/_mibAOiMFQI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3972/everything-in-the-cloud/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://zef.me/3972/everything-in-the-cloud</feedburner:origLink></item>
		<item>
		<title>Plus</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/Uc6b2ogIfCs/plus-2</link>
		<comments>http://zef.me/3968/plus-2#comments</comments>
		<pubDate>Mon, 04 Jul 2011 12:33:25 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3968</guid>
		<description><![CDATA[Don&#8217;t want to show off or anything, but I&#8217;m on Google+ so follow/encircle me if you like!]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t want to show off or anything, but <a href="https://plus.google.com/107856299524979235620/posts">I&#8217;m on Google+</a> so follow/encircle me if you like!</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/Uc6b2ogIfCs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3968/plus-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/3968/plus-2</feedburner:origLink></item>
		<item>
		<title>State of Code</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/GRks1jkT940/state-of-code</link>
		<comments>http://zef.me/3961/state-of-code#comments</comments>
		<pubDate>Wed, 29 Jun 2011 19:07:33 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3961</guid>
		<description><![CDATA[In case you hadn&#8217;t noticed: I have launched a new site: StateOfCode.com. Another site? Indeed. Whenever I write on zef.me I feel it has to be personal somehow. It&#8217;s all about me, right? Hence the name :-) I&#8217;m not going to report on &#8220;news&#8221;. I&#8217;m not going to do interviews. Who would participate in an [...]]]></description>
			<content:encoded><![CDATA[<p>In case you hadn&#8217;t noticed: I have launched a new site: <a href="http://www.stateofcode.com">StateOfCode.com</a>. <em>Another</em> site? Indeed.</p>

<p>Whenever I write on zef.me I feel it has to be personal somehow. It&#8217;s all about <em>me</em>, right? Hence the name :-) I&#8217;m not going to report on &#8220;news&#8221;. I&#8217;m not going to do interviews. Who would participate in an interview for somebody&#8217;s personal blog?</p>

<p>And yet, I&#8217;d like to do those things. I feel there is a lot of interesting stuff going on in my field of interest: programming languages, frameworks and other developer tools &#8212; stuff we can never learn enough about. I have found that simply e-mailing a person involved in such a project, asking them questions is a great way to extract this information: &#8220;You seem to be passionate about <em>x</em> can you let us share in your enthusiasm?&#8221;</p>

<p>It turns out most people are actually friendly and <em>want</em> to answer your questions &#8212; they would like to share their interest.</p>

<p>This, combined with the latest &#8220;programmer&#8217;s news&#8221; is what I aim <a href="http://stateofcode.com">StateOfCode.com</a> to become. It makes it possible to get other people to help me out on the site some day (anybody interested?). And since the site has been online barely two weeks, and already had about 6,000 visitors &#8212; it looks like a promising endeavor.</p>

<p>So far I&#8217;ve published two interviews. One with <a href="http://www.stateofcode.com/2011/05/bruno-jouhier/">Bruno Jouhier</a> on streamline.js , and another with <a href="http://www.stateofcode.com/2011/06/lisp-the-programmable-programming-language-with-manuel-simoni/">Manuel Simoni</a> (of the great <a href="http://axisofeval.blogspot.com/">Axis of Eval</a> blog) on Lisp. There&#8217;s another  interesting one queued to be published next week, and a few more people have agreed to participate. But there is room for opinion pieces as well,  <a href="http://www.stateofcode.com/2011/06/are-web-apps-an-insult-to-users/">Are Web Apps And Insult to Users</a> got a fair amount of response.</p>

<p>Anyway. It&#8217;s a new project and I&#8217;m enjoying it. Want to help out? Write posts, have tips? Know people I should talk to? <a href="mailto:zef@zef.me">Email me</a> or <a href="http://twitter.com/zef">contact me on twitter</a>.</p>

<p>Be sure to follow <a href="http://twitter.com/stateofcode">@stateofcode</a> on twitter as well (or me, new posts are pushed to both twitter accounts).</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/GRks1jkT940" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3961/state-of-code/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/3961/state-of-code</feedburner:origLink></item>
		<item>
		<title>+</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/1C0d5MYeuxI/plus</link>
		<comments>http://zef.me/3953/plus#comments</comments>
		<pubDate>Wed, 29 Jun 2011 07:54:33 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[plus]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3953</guid>
		<description><![CDATA[Official Google Announcement Behind the scenes post by Steven Levy While We Await The Native App, The Google+ iPhone Mobile Web App Is Pretty Solid]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/918/"><img src="http://zef.me/wp-content/uploads/2011/06/googleplus.png" alt="" title="googleplus" width="535" height="281" class="alignright size-full wp-image-3954" /></a></p>

<p><object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/xwnJ5Bl4kLI?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/xwnJ5Bl4kLI?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></object></p>

<ul>
<li><a href="http://googleblog.blogspot.com/2011/06/introducing-google-project-real-life.html">Official Google Announcement</a></li>
<li><a href="http://www.wired.com/epicenter/2011/06/inside-google-plus-social/">Behind the scenes post by Steven Levy</a></li>
<li><a href="http://techcrunch.com/2011/06/28/google-plus-iphone-web-app">While We Await The Native App, The Google+ iPhone Mobile Web App Is Pretty Solid</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/zefme/~4/1C0d5MYeuxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3953/plus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/3953/plus</feedburner:origLink></item>
		<item>
		<title>Bye Bye File System</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/ACXW4msi1Rs/bye-bye-file-system</link>
		<comments>http://zef.me/3931/bye-bye-file-system#comments</comments>
		<pubDate>Sun, 19 Jun 2011 15:36:04 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[Because I care]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[ia writer]]></category>
		<category><![CDATA[ios]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3931</guid>
		<description><![CDATA[I don&#8217;t want to deal with files and directories anymore. A few weeks ago I bought IA Writer for Mac (thanks Stephan!) &#8212; the most basic text editor one could imagine. Its goal is to facilitate distraction-free writing. Before being turned into a Mac app, it was a successful application on the iPad. As you [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t want to deal with files and directories anymore.</p>

<p>A few weeks ago I bought <a href="http://www.informationarchitects.jp/en/">IA Writer</a> for Mac (thanks <a href="https://twitter.com/evilhackerdude">Stephan</a>!) &#8212; the most basic text editor one could imagine. Its goal is to facilitate distraction-free writing. Before being turned into a Mac app, it was a successful application on the iPad.</p>

<p>As you are likely aware, iOS apps don&#8217;t expose file systems. When you open an app like IA Writer you can immediately start typing, either in a previously created document or a new one. As a user you don&#8217;t have to deal with directories or file names, meaning you don&#8217;t have to make two choices:</p>

<ol>
<li>What am I going to call my document?</li>
<li>Where am I going to put it?</li>
</ol>

<p>You may think it&#8217;s silly, but those two choices seem to considerably reduce my &#8220;barrier to entry&#8221; when it comes to creating a new document. When I want to create a new document I don&#8217;t care what it&#8217;s called or where it&#8217;s stored, I just want to enter content.</p>

<p>As it turns out, IA Writer <em>for Mac</em> does not mirror this paradigm. I can start typing immediately, but it doesn&#8217;t save content automatically and to save it&#8230; you guessed it: you have to choose a file name and location to store it. I have found this really reduced my pleasure of using IA writer &#8212; it&#8217;s not purely about content anymore, I also have to worry about keeping things tidy. Is this file name descriptive enough? Can I really store this in my Documents directory, won&#8217;t that pollute it? Stuff I really don&#8217;t want to be bothered anymore. I&#8217;ve been spoiled. The same thing goes for other applications too: Keynote, Eclipse, graphic editors. The file system is a pain.</p>

<p>It&#8217;s not just mobile where the file system has disappeared. The web has largely got rid of it. Google Docs don&#8217;t have file names or directory names. Neither do Gmail or calendar. Files and directories are a major distraction.</p>

<p>As far as I&#8217;m concerned, the file system is dead. If I&#8217;m looking for something, I&#8217;ll open an app and search for it. Get those directories and files out of my face.</p>

<p>(This was written in a unsaved IA Writer file.)</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/ACXW4msi1Rs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3931/bye-bye-file-system/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://zef.me/3931/bye-bye-file-system</feedburner:origLink></item>
		<item>
		<title>Ars’s Duke Nukem Forever Review</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/RKDQ2OwizQU/ars-duke-nukem-forever-review</link>
		<comments>http://zef.me/3922/ars-duke-nukem-forever-review#comments</comments>
		<pubDate>Fri, 17 Jun 2011 09:44:46 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[game]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3922</guid>
		<description><![CDATA[I&#8217;m not a gamer. Nevertheless, like many, I have been fascinated with Duke Nukem Forever as the prototypical example of vaporware. It&#8217;s been in the works since 1996 and never seemed to be released. A few days ago, finally, it has been. Although it looks like it would have been better if it was never [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zef.me/wp-content/uploads/2011/06/DukeNukemForever.jpg" alt="" title="DukeNukemForever" width="250" height="315" class="alignright size-full wp-image-3927" />I&#8217;m not a gamer. Nevertheless, like many, I have been fascinated with <a href="http://en.wikipedia.org/wiki/Duke_Nukem_Forever">Duke Nukem Forever</a> as the prototypical example of vaporware. It&#8217;s been in the works since 1996 and never seemed to be released. A few days ago, finally, it has been.</p>

<p>Although it looks like it would have been better if it was never released at all.</p>

<p>According to the <a href="http://arstechnica.com/gaming/reviews/2011/06/duke-nukem-forever-review-barely-playable-unfunny-and-rampantly-offensive.ars">Ars Technica review</a> it&#8217;s a pretty horrible game. Not just bad &#8212; but <em>bad</em>:</p>

<blockquote>
  <p>In the first few moments of Duke Nukem Forever, your character pees in a urinal and then earns an achievement for reaching into a toilet and extracting a piece of human excrement. Why does the game reward you for doing this? I have no idea. It&#8217;s not part of a joke or important to the story; the designers of the game apparently feel that you would miss out by not holding some poo in your virtual hand.</p>
</blockquote>

<p>But infantile humor is not the worst. The game appears to contain rampantly offensive story elements.</p>

<p>Ars Technica:</p>

<blockquote>
  <p>Just in case you didn&#8217;t feel like the game had adequately rubbed your nose in its horrific depiction of women, Duke arrives at a point where two nude ladies promise to lose their pregnancy weight from bearing their alien children, and they plead with you to let them live. (These are the same characters who performed fellatio on you during the beginning sequences of the game.)</p>
  
  <p>The only way past this section of the game is to kill both women.</p>
</blockquote>

<p>That&#8217;s just poor, <em>poor</em> taste.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/RKDQ2OwizQU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3922/ars-duke-nukem-forever-review/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zef.me/3922/ars-duke-nukem-forever-review</feedburner:origLink></item>
		<item>
		<title>Web vs. Native On Mobile: The Never Ending Struggle</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/GUbCFLHOgzM/web-vs-native-on-mobile-the-never-ending-struggle</link>
		<comments>http://zef.me/3911/web-vs-native-on-mobile-the-never-ending-struggle#comments</comments>
		<pubDate>Fri, 10 Jun 2011 10:35:49 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobl]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3911</guid>
		<description><![CDATA[It seems to be an everlasting battle: what&#8217;s &#8220;better&#8221;: developing mobile native applications or developing mobile web applications? Sadly, the answer is boring: it depends. What matters to you as the developer? Multiple-platform support. Web applications are a cheap way to go. Develop your application once, run on many platforms immediately. You can reuse the [...]]]></description>
			<content:encoded><![CDATA[<p>It seems to be an everlasting battle: what&#8217;s &#8220;better&#8221;: developing mobile <em>native</em> applications or developing mobile <em>web</em> applications? Sadly, the answer is boring: it depends.</p>

<p>What matters to you as the developer?</p>

<p><strong>Multiple-platform support.</strong> Web applications are a cheap way to go. Develop your application once, run on many platforms immediately. You can reuse the same code base on multiple platforms. When going the native route you will likely have to entirely redevelop (and maintain) your application on every platform.</p>

<p><strong>Quick iteration.</strong> Iteration can happen quickly on the web: simply deploy a new version and all users get it instantly. Deployment of native applications requires an explicit update action from the user, plus a (possibly lengthy) approval process on some stores (e.g. Apple&#8217;s AppStore).</p>

<p><strong>Integration with the OS.</strong> Web applications can do less than native applications. Need access to the camera, file system, address book, notifications (or even extend those features)? That&#8217;s a no-go for pure web applications (at least, for now). However, you can wrap your web app using <a href="http://www.phonegap.com">PhoneGap</a> to get access to many of those APIs as well, the drawback is that you lose the advantage of being able to iterate quickly, because you have to deploy your applications through app stores.</p>

<p>What matters to your users?</p>

<p><strong>Performance.</strong> Web applications are <em>typically</em> slower than native applications. Of course, it is possible to write extremely slow native applications, but assuming good development practices: a native application will always outperform a web app. That&#8217;s the way it is, that&#8217;s the way it will be. However, on the long term, the performance of native and web apps will converge. The question is: what are your performance requirements? Is a web application <em>fast enough</em>?</p>

<p><strong>Native look and feel.</strong> By default, a web application is not going to have a native look-and-feel. You can get quite far in mimicking a native look and feel (e.g. by using similar colors, similar transitions), yet &#8212; very likely &#8212; your users are going to be able to notice the difference. I have yet to see a web app where I couldn&#8217;t notice it was not native. The question is: does it matter? How important is it that the user notices a difference? Take the <a href="http://gmail.com">Gmail</a> mobile web application, for instance. It doesn&#8217;t look native, but it looks clean and it works well. Does it bother me it&#8217;s not a native application? Not enough not to use it.  I prefer it over Apple&#8217;s native mail application because <em>I</em> choose functionality over looks.</p>

<p><strong>User experience.</strong> The way the user interfaces are laid-out and operated differ slightly from platform to platform. Although iPhone and Android appear to be extremely similar, there are subtle differences in how the user interfaces are organized and operated. Android makes use of the touch screen, as well as three (hardware) buttons: back, menu and search. No such buttons exist on iOS. The back button is typically an on-screen button, but the idea of a pop-up menu is inherently non-iOS-esque. For web applications this is a problem. First of all, a web app cannot take advantage of additional hardware buttons (other than the back button), but beyond that, you will likely not want to redevelop the way your UI is laid-out for every platform. Thus, you have to come up with some sort of greatest-common denominator: pick the user interface elements that all platforms support and use those exclusively. Is that a problem? Depends who you ask.</p>

<p>So&#8230;</p>

<p>Even though I develop <a href="http://www.mobl-lang.org">mobl</a> (a language for mobile web application development) I&#8217;ll be honest. As <em>user</em>, if I could choose between a web app and a native app, having the same feature set, I would go for the native one. However, from a <em>developer&#8217;s</em> perspective it&#8217;s a much more difficult choice. It completely depends on target audience (what do they care about, what devices do they use?) and specific requirements of the application (do I care about performance, do I need OS integration?).</p>

<p>And I haven&#8217;t even touched on development models and tools yet.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/GUbCFLHOgzM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3911/web-vs-native-on-mobile-the-never-ending-struggle/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zef.me/3911/web-vs-native-on-mobile-the-never-ending-struggle</feedburner:origLink></item>
		<item>
		<title>Post-PhD Plans: Cloud 9 IDE</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/tsO1u0ZZn7k/post-phd-plans-cloud-9-ide</link>
		<comments>http://zef.me/3881/post-phd-plans-cloud-9-ide#comments</comments>
		<pubDate>Thu, 26 May 2011 10:58:38 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ajax.org]]></category>
		<category><![CDATA[cloud9ide]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3881</guid>
		<description><![CDATA[Starting September 1st I will be employed by Ajax.org, the Amsterdam based company that is developing Cloud 9 IDE &#8212; not to be confused with the similarly named Amsterdam-based soccer club. Why an IDE in &#8220;the cloud&#8221;? During the past decade more and more of the stuff we do every day has moved online: e-mail, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zef.me/wp-content/uploads/2011/05/Screen-shot-2011-05-26-at-9.43.03-AM.png" alt="" title="Screen shot 2011-05-26 at 9.43.03 AM" width="569" height="235" class="alignnone size-full wp-image-3882" /></p>

<p>Starting September 1st I will be employed by <a href="http://ajax.org">Ajax.org</a>, the Amsterdam based company that is developing <a href="http://c9.io">Cloud 9 IDE</a> &#8212; not to be confused with the similarly named <a href="http://www.ajax.nl">Amsterdam-based soccer club</a>.</p>

<p><strong>Why an IDE in &#8220;the cloud&#8221;?</strong><br />
<img src="http://zef.me/wp-content/uploads/2011/05/Screen-shot-2011-05-26-at-12.57.34-PM-450x298.png" alt="" title="Screen shot 2011-05-26 at 12.57.34 PM" width="450" height="298" class="alignnone size-medium wp-image-3904" /></p>

<p>During the past decade more and more of the stuff we do every day has moved online: e-mail, word processing, spreadsheets, chat, collaboration tools. The obvious next &#8212; almost inevitable &#8212; step is to move the IDE (Integrated Development Environment) to the cloud as well. Exit Eclipse. Enter Cloud9.</p>

<p>A few (potential) advantages:</p>

<ul>
<li>Your code is accessible anywhere, from any computer, but also mobile device: iPhone, iPad. Just point your browser to a URL and off you go.</li>
<li>No complex tool setup. It&#8217;s typically very difficult to properly install your IDE (e.g. Eclipse) with all the plug-ins, web servers etc. A Cloud IDE makes this simpler, just point your browser at a URL and everything just works: testing web servers run in the cloud, deployment is simple etc.</li>
<li>Real-time collaboration with team members: remember Google Wave? Imagine collaborating on a single code base with many developers. Great for pair programming.</li>
</ul>

<p>An IDE implemented in Javascript is now possible because Javascript speeds are rapidly improving. If you try out <a href="http://c9.io">Cloud9</a> right now you&#8217;ll see it is very snappy already. Another often heard criticism is that you cannot use web apps when offline. Cloud9 will soon feature <a href="http://googlecode.blogspot.com/2011/05/working-offline-with-cloud9-on-google.html">offline support</a> allowing you to work, even without an Internet connection.</p>

<p><strong>Why me?</strong><br />
I have been working for the past 4 years on code analysis tools and compilers. I implemented <a href="http://www.mobl-lang.org">a language from scratch</a>, covering both the compiler side, as well as the IDE side (error checking, code completion etc.). The group that I&#8217;m doing my PhD in has a lot of experience with developing such tools, and I will be leveraging much of that knowledge to build a language infrastructure for Cloud 9, enabling others, as well as Ajax.org itself, to easily build great language support for any programming language, including features like inline error highlighting, code analysis, code outlining, code completion and refactoring. Recently a lot of my work has been in Javascript, so I know the language pretty well &#8212; which is useful, because Cloud9 is almost 100% built on Javascript, both on the client and on the server (they use <a href="http://nodejs.org">node.js</a>).</p>

<p>Initially, the focus will be on dynamic languages, starting with Javascript, but rapidly adding other languages as well &#8212; hopefully resulting in an infrastructure that anybody can use to build Cloud9 support for their language of choice. I have done some preliminary work on this with <a href="https://github.com/zefhemel/treehugger">treehugger.js</a>, a language processing library written in Javascript. Treehugger.js intends to be the jQuery of AST transformations, borrowing a lot of ideas from <a href="http://www.strategoxt.org">Stratego/XT</a> and the <a href="http://www.program-transformation.org/Tools/ATermLibrary">ATerm</a> library (both of which I have been using for the past years, and represent the state of the art in program transformation and analysis tools). I&#8217;d like to look into other options as well, such as attribute grammars &#8212; anything to simplify language analysis, helping the developer to do their job more efficiently.</p>

<p>There are some Javascript analysis tools already (including <a href="http://zeonjs.com/">Zeon.js</a>, <a href="http://doctorjs.org/">DoctorJS</a>, <a href="https://github.com/olov/jsshaper">JSShaper</a> and of course <a href="http://www.jslint.com/">JSLint</a>, the latter already being integrated in Cloud9). We have to see if we can integrate, collaborate or borrow ideas from these tools for Cloud9.</p>

<p><strong>What about <a href="http://www.mobl-lang.org">mobl</a>?</strong><br />
Ajax.org is interested in mobl. We have yet to see what role it will play in the company as well as in Cloud9. There are several options there. All I can say is: don&#8217;t worry, mobl is not dead :)</p>

<p><strong>Weren&#8217;t you moving to Poland?</strong><br />
Indeed I am! I will be working on site in Amsterdam for the first few weeks and then move to Poland (<a href="http://maps.google.nl/maps?f=q&amp;source=s_q&amp;hl=nl&amp;geocode=&amp;q=poznan&amp;aq=&amp;sll=51.929818,4.367893&amp;sspn=0.012967,0.02459&amp;ie=UTF8&amp;hq=&amp;hnear=Pozna%C5%84,+Powiat+Pozna%C5%84ski,+Groot-Polen,+Polen&amp;t=h&amp;z=11">Poznań</a> to be exact) and work remotely. Ajax.org has more employees distributed around the world and this will become even more the case in the future. This shouldn&#8217;t be a problem, as they are developing a product to make this easier after all.</p>

<p>Anyway. This is still a couple of months ahead. First I have a PhD thesis to finish up.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/tsO1u0ZZn7k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3881/post-phd-plans-cloud-9-ide/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://zef.me/3881/post-phd-plans-cloud-9-ide</feedburner:origLink></item>
		<item>
		<title>Augmented Reality RPG</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/jTooAgXpiyY/augmented-reality-rpg</link>
		<comments>http://zef.me/3872/augmented-reality-rpg#comments</comments>
		<pubDate>Fri, 13 May 2011 09:06:39 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3872</guid>
		<description><![CDATA[Last week, for the first time, I had some time to play some of the games I had been buying over the past months on my iPad. The one that made most of and impression was Aralon, a role-playing game (RPG). I spent several hours running around in its virtual world, shooting bad guys with [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, for the first time, I had some time to play some of the games I had been buying over the past months on my iPad. The one that made most of and impression was <a href="http://itunes.apple.com/nl/app/aralon-sword-and-shadow-hd/id399045373?mt=8">Aralon</a>, a role-playing game (RPG). I spent several hours running around in its virtual world, shooting bad guys with my bow.</p>

<p>I&#8217;m not much of a gamer. Generally I find it somewhat of a waste of time. Yet, millions of people do not seem to agree. Online RPGs such as World of Warcraft have tens, if not hundreds of thousands of players. They spend hours a day walking around in a virtual world, completing virtual quests, collecting virtual items and fighting virtual enemies. I always wondered why people would do this. Is the interesting angle the social component? It&#8217;s kind of cool that you&#8217;re not alone exploring this world, there are others as well that you can interact with, team up with and trade with.</p>

<p>I found the whole Aralon experience oddly satisfying. You kill bad guys, help people with their problems, earn money with which you can buy weapons and these thing. You get more experienced and learn new skills along the way. It&#8217;s almost like leading a small second life, except more quantifiable and more fast paced.</p>

<p>Still, I find a bit of a shame that you have to sit inside behind a computer screen to play this. I&#8217;m aware of LARPs (Life-Action Role-Playing Games), but I find those a bit extreme. Not everybody wants te dress up as a warlord of some kind. I definitely
don&#8217;t want to.</p>

<p>What if we could turn this into a casual, augmented reality, location-based game, played on our mobile phones?</p>

<p>Rather than virtually running around in a virtual world, you physically run around in the real world. Your neighborhood, your city, other cities, other countries even when on holiday. Based on your actual location you would receive virtual quests on your phone. &#8220;You see a boy crying on X street, he lost his dog. Can you find it for him?&#8221; Accept. Walking around the block you see on your phone the dog is nearby. You pick it up (virtually of course, you don&#8217;t know where the creep has been), return to the boy&#8217;s location, return it to him and get some reward in return.</p>

<p>You &#8220;see&#8221; a runner nearby, challenging you to a run around the block. You accept, win and earn some more money. Using these rewards you can go to the (virtual) merchant around the corner to get a cool looking t-shirt that other players can see on their phone when they&#8217;re nearby. Or a set of electric binoculars to temporarily see farther away (allowing you to see, and pick up items that are farther away from you). Quests could involve nearby players involving actual real-life interaction.</p>

<p>The advantage over pure-virtual RPGs? You actually get exercise walking around your town. You actually meet real people. Real stores and restaurants could offer real discounts in exchange for some quest. It can be used for education as well. For instance, a zoo may develop quests to teach players actual things about actual animals requiring them to walk around the zoo, observing animal behavior, answering multiple-choice questions, earning them a special &#8220;animal observer level 1 achievement&#8221; that every other nearby players and friends can see. Companies may hand out virtual stickers you can make part of your virtual image. Cities and towns can develop tour guides as bots and quests. Virtual items may be traded with other players.</p>

<p>I think such a game may be a very interesting competitor to many location-based services like foursquare, where you check-in and earn badges &#8212; and that&#8217;s it. Actually turning it into a real game would be much more engaging I would think.</p>

<p>Technically such a game is not very difficult to develop. The server maintains a database of players, their items, ongoing quests and their locations; bots and some representation of their quests and instances of those bots all over the world; items that lie around, with associated value and uses. It&#8217;s essentially just a big database of locatable things and some algorithms to ensure there is something to do wherever there are players. A mobile client then simply asks &#8220;give me a list of nearby things&#8221; and enables the interaction with those things.</p>

<p>The big challenge would be the development of content. Virtual worlds are large, but the actual world is a lot larger. How do you augment the entire world with items and quests? Initially, an approach could be to develop a large collection of generic quests that can be instantiated on demand in different locations. Boys can lose their dogs all around the world, can they not? People can ask you to deliver messages and runners can challenge you to a duel no matter where you are in the world. Technically, if you log on to the game such quests could be instantiated dynamically if others are not available.</p>

<p>Subsequently, for major cities, companies, sights, zoos and museums, custom quests can gradually be developed. Potentially by these companies, sights and cities themselves.</p>

<p>Maybe it would be possible to crowd-source the writing of quests, run it as an open source project of some kind. Although one would have to come up with a sparse way of giving out rewards to avoid &#8220;push this button to earn $10,000.&#8221; Another way could be to let players act as quest-givers, letting other players perform real-life quests for them where rewards are taken from the quest-giver&#8217;s personal &#8220;account&#8221;.</p>

<p>It surely would be an interesting experiment, would it not? Has this never been tried?</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/jTooAgXpiyY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3872/augmented-reality-rpg/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://zef.me/3872/augmented-reality-rpg</feedburner:origLink></item>
		<item>
		<title>Zef: An Audio/Visual Experience</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/r-ia_vDMHCM/zef-an-audiovisual-experience</link>
		<comments>http://zef.me/3868/zef-an-audiovisual-experience#comments</comments>
		<pubDate>Tue, 10 May 2011 07:53:34 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3868</guid>
		<description><![CDATA[While I was away, a video was published in which I appear, promoting our the research project MoDSE that my PhD is a part of: In addition, a Devnology podcast has been published interviewing me about mobl, WebDSL and model-driven engineering in general. You can listen to that here. It&#8217;s about an hour long.]]></description>
			<content:encoded><![CDATA[<p>While I was away, a video was published in which I appear, promoting our the research project MoDSE that my PhD is a part of:</p>

<iframe width="560" height="349" src="http://www.youtube.com/embed/Y9nxP0ywpPs" frameborder="0" allowfullscreen></iframe>

<p>In addition, a <a href="http://devnology.nl/en/podcast">Devnology podcast</a> has been published interviewing me about mobl, WebDSL and model-driven engineering in general. <a href="http://devnology.nl/en/podcast">You can listen to that here</a>. It&#8217;s about an hour long.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/r-ia_vDMHCM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3868/zef-an-audiovisual-experience/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://zef.me/3868/zef-an-audiovisual-experience</feedburner:origLink></item>
		<item>
		<title>Motorola Bluetooth Headset</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/cZNYDwaeNR8/motorola-bluetooth-headset</link>
		<comments>http://zef.me/3846/motorola-bluetooth-headset#comments</comments>
		<pubDate>Mon, 04 Apr 2011 20:06:39 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[headset]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3846</guid>
		<description><![CDATA[Have I turned into a gadget and app reviewer all of a sudden? Nah, don&#8217;t worry. It&#8217;s just that after a day full of academic paper writing (not my favorite past time), I need to crank out some text where I can be me. Not adhering to any rules but my own &#8212; where I [...]]]></description>
			<content:encoded><![CDATA[<p>Have I turned into a gadget and app reviewer all of a sudden? Nah, don&#8217;t worry. It&#8217;s just that after a day full of academic paper writing (not my favorite past time), I need to crank out some text where I can be me. Not adhering to any rules but my own &#8212; where I can start a sentence with &#8220;but&#8221;. And can break a line wherever I damn well please. Did I just use the d word?</p>

<p>But beyond that, where I can spend a paragraph not really saying anything profound, not backing up my statements with references. Writing for the sake of writing&#8230; Know what I&#8217;m sayin&#8217;?.</p>

<p>Anyway.</p>

<p>Two weeks ago I bought the <a href="http://www.motorola.com/Consumers/US-EN/Consumer-Product-and-Services/Mobile+Phone+Accessories/Headsets/Bluetooth-Stereo-Music-Headphones/MOTOROKR-S305-Wireless-Stereo-Headphones-US-EN">Motorokr S305 stereo bluetooth headset</a>.</p>

<p><img src="http://zef.me/wp-content/uploads/2011/04/Screen-shot-2011-04-04-at-9.37.41-PM.png" alt="" title="Screen shot 2011-04-04 at 9.37.41 PM" width="372" height="241" class="alignnone size-full wp-image-3848" /></p>

<p>There she is. Isn&#8217;t she a beauty, with the drop shadow and everything? Almost looks like an Apple product.</p>

<p>Just for kicks I won&#8217;t start with the problem statement, but rather with the conclusion: it&#8217;s pretty good, and you should get it, if you can, if you want to. It costs around $50 (I bought it for 45 euros), so not that expensive. It pinches my ear a little bit, but nothing unacceptable. My ears will just have to adjust, I suppose.</p>

<p>What it does is connect to my (i)Phone and play music, sound, make calls. Wirelessly. Bluetooth, you know. Sounds quality is ok for podcasts and audiobooks (which I use it for) and phone calls, not the bestest for super high-quality stereo surround music. Although it does support stereo, did I mention that?</p>

<p>And last but not least. The problem statement. I&#8217;m Dutch. I cycle. Over the past year and a half I have killed four Apple headphone cables because I had my phone in my pocket while cycling, the cable just slowly breaks until I lose sound in one ear. First this was covered by warranty. Now I have to pay the $30 something per headphone set myself.</p>

<p>Not good.</p>

<p>Solution: get rid of the cables. Get a bluetooth headset.</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/cZNYDwaeNR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3846/motorola-bluetooth-headset/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zef.me/3846/motorola-bluetooth-headset</feedburner:origLink></item>
		<item>
		<title>Podcaster: Great iPhone Podcasting App</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/oY_c5q4FYXU/podcaster-great-iphone-podcasting-app</link>
		<comments>http://zef.me/3837/podcaster-great-iphone-podcasting-app#comments</comments>
		<pubDate>Mon, 04 Apr 2011 19:22:55 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3837</guid>
		<description><![CDATA[Over the past months I&#8217;ve been using Podcaster, a pretty good podcasting application for iPhone. Before I used iTunes to download podcasts and sync them to my iPhone, but it is fairly annoying to have to plug-in your phone every morning before going to work. Podcaster allows you to subscribe, download and listen to podcasts [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zef.me/wp-content/uploads/2011/04/Screen-shot-2011-04-04-at-9.20.26-PM-299x450.png" alt="" title="Screen shot 2011-04-04 at 9.20.26 PM" width="150" align="right" />Over the past months I&#8217;ve been using <a href="http://podcaster.fm/">Podcaster</a>, a pretty good podcasting application for iPhone. Before I used iTunes to download podcasts and sync them to my iPhone, but it is fairly annoying to have to plug-in your phone every morning before going to work.</p>

<p><a href="http://podcaster.fm/">Podcaster</a> allows you to subscribe, download and listen to podcasts directly on your phone. No need to sync with your computer anymore. Podcasts can even be downloaded in the background (after you switch to another application it keeps downloading). It really works well.</p>

<p>It costs under $2. Very much recommended.</p>

<p><a href="http://itunes.apple.com/nl/app/podcaster-formerly-rss-player/id377195245?mt=8">iTunes link.</a></p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/oY_c5q4FYXU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3837/podcaster-great-iphone-podcasting-app/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://zef.me/3837/podcaster-great-iphone-podcasting-app</feedburner:origLink></item>
		<item>
		<title>Changing the World, One Paper at a Time</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/lwi5C1JSPyo/changing-the-world-one-paper-at-a-time</link>
		<comments>http://zef.me/3765/changing-the-world-one-paper-at-a-time#comments</comments>
		<pubDate>Thu, 17 Mar 2011 12:48:37 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3765</guid>
		<description><![CDATA[Software Engineering is an important field. Millions and millions are spent every year on developing software even though, frankly, we suck at it: Software is delivered too late. Software has bugs. Software is completely incomprehensible to its users. So, companies and governments around the world invest in software engineering research. Professors and PhD students are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Software_engineering">Software Engineering</a> is an important field. Millions and millions are spent every year on developing software even though, frankly, we suck at it: Software is delivered too late. Software has bugs. Software is completely incomprehensible to its users.</p>

<p>So, companies and governments around the world invest in software engineering research. Professors and PhD students are hired to investigate the problems and come up with solutions. The solutions are written up in academic papers and published to academic conferences. Academic conferences are mostly attended by other academics, listening to each other, collaborating, sharing ideas.</p>

<p>So much for the theory.</p>

<p>I myself am part of this system. I&#8217;m a PhD student, 3.5 years in. I <a href="http://researchr.org/profile/zefhemel/publications/published">have published papers</a>, and I have attended conferences. When I submit a paper to a conference about 3-4 people peer review it and, ideally, accept it. It&#8217;s then published to conference proceedings, available in book-form, as well as online, typically behind a pay wall (downloading one of my papers individually costs around $10). Therefore, my paper readership is in practice mostly limited to other academics, whose universities pay big bucks to get access to conference proceedings.</p>

<p><a href="http://www.flickr.com/photos/eelcovisser/3131743260/"><img src="http://farm4.static.flickr.com/3115/3131743260_08fa89bbd2.jpg"/></a></p>

<p>When publishing to a conference, you also get to go to go and talk publicly about your paper for about half an hour. There will likely be a few dozen people in the room, half of which are typing away on their laptops.</p>

<p>The thing is, <a href="http://swerl.tudelft.nl/">in our group</a>, a lot of us build tools. The target audience of those tools, ideally, is not the academic world, it&#8217;s the software engineering world &#8212; not people <em>talking</em> or <em>researching</em> it, but the people <em>doing</em> it. That is, while we are writing papers for academics, we don&#8217;t really reach our target audience directly. Sure, indirectly, when your ideas are good, they may reach the mainstream one day. But that will likely be a matter of years.</p>

<p>I&#8217;m doing work in the programming language space &#8212; how many languages you use today came from academia? A few (a recent one is Scala), but most were developed in industry.</p>

<p>Why?</p>

<p>As it turns out building tools that are robust and reliable take a lot of <em>engineering work</em>. Research is only a small part of it, and that&#8217;s a problem because you cannot publish engineering work, you&#8217;re an academic, you publish research. All the time you spend engineering on your tools, you&#8217;re not spending researching and writing papers. Published papers are currency. I must add here that <a href="http://swerl.tudelft.nl/bin/view/Main/WebHome">in our group</a> they&#8217;re really good about these things, we get a lot of time to do engineering without a professor breathing in our neck yelling &#8220;publish, publish!&#8221; We are encouraged to build real, useable tools. Still, intrinsic in the system is that for an important part success is measured by publication count. My PhD thesis is to be filled with published papers.</p>

<p>What&#8217;s the result? A bunch of tools are out there that, even if you wanted to, you cannot even download, or if you can, don&#8217;t compile, and if they do, are not documented. Abandoned after the paper was published.</p>

<p>But I digress.</p>

<p>Beside publishing papers, I have a <a href="http://zef.me">blog</a>. Over the past years I published a few blog posts that were related to my work. Some of them ended up on the frontpages of <a href="http://programming.reddit.com">programming reddit</a> and <a href="http://news.ycombinator.com">hacker news</a> and many of them were read more times in one day than all my papers together will likely be read over my life time. And the readers are programmers &#8212; exactly my target audience. Sure, some of these readers called me names &#8212; but I like to think I planted some seeds here and there. I believe that my blogging has done more in terms of &#8220;changing the world&#8221; than any of my papers (so far, at least).</p>

<p>I&#8217;ll give three examples.</p>

<h2>1</h2>

<p>A year and a half ago I published <a href="http://zef.me/2308/when-rails-fails">When Rails Fails</a>, which was a small part of the related work research I did for <a href="http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2010-034.pdf">this paper</a> (have you read it?). My main message was: Ruby on Rails is not very forgiving when you make mistakes, you often get horrible error messages at runtime. Sure, I got half the Rails community taking a dump on my porch, but the blog article raised an issue: you should&#8217;t have to put up with this, the bar must be raised. Some people picked it up and were discussing solutions. Not sure if this changed anything, but it&#8217;s a start.</p>

<h2>2</h2>

<p>A year ago I published <a href="http://zef.me/2774/persistence-js-an-asynchronous-javascript-orm-for-html5gears">persistence.js: An Asynchronous Javascript ORM for HTML5/Gears</a>, a post about a little Javascript library that I needed for what eventually would become <a href="http://www.mobl-lang.org">mobl</a>, but did not yet exist. <a href="http://www.persistencejs.org/">persistence.js</a> is more of an engineering project than a research project. There were some new-ish ideas, but basically it was just implementing an Object-Relational Mapper in Javascript. Nothing to write a paper about. Although persistence.js didn&#8217;t make a splash entrance, slowly but steadily a community grew around it, and today persistence.js it being maintained by about a dozen contributors and it expanded from the browser to the server, where Javascript is rapidly taking off with node.js. Recently I got a thankful e-mail from one the guys behind <a href="https://www.readability.com">Readability</a> who use persistence.js in their mobile application. No paper, but impact on the industry? A little, at least.</p>

<h2>3</h2>

<p>Lately, we have been struggling with <a href="http://www.mobl-lang.org">mobl</a>, the language for mobile development that launched this January. Interest in mobl is been pretty incredible since I built a reasonable website, started blogging about it, and wrote an <a href="http://www.infoq.com/articles/Mobl">InfoQ article</a>. And thus I spent the past few months mostly fixing bugs, adding features and providing support the growing community of users. I gave a few talks about mobl, both in an academic setting and in industry and everywhere the feedback has been overwhelmingly positive. People are impressed with this stuff. Yet, the paper we wrote about mobl and submitted to a big web-related academic conference got rejected. &#8220;Where is the research contribution here?&#8221; they asked. Mobl is a nice mashup of programming language ideas, yet none of them are truly new. <em>You</em> may not have seen them all before, but that&#8217;s likely because they were published in academic papers, and who reads those during breakfast? Not me. The trick, now, is to somehow package the mobl story in such a way that our future reviewers will see it as enough of a research contribution to publish it. We&#8217;ll see what happens there.</p>

<p>Yet, I believe, even if mobl for some reason would not be the next big thing (can you imagine? ;)), our real audience will have seen it and thought &#8220;that one thing there, that is a really cool feature&#8221;. They will look for that feature in future languages and frameworks, because they know it exists &#8212; the bar has been raised.</p>

<p>Now that I mention it. If I&#8217;m being extremely cynical, for an academic knowing that &#8220;that one language had that cool feature&#8221; may be a reason <em>not</em> to implement it, because it&#8217;s not novel, it&#8217;s not a research contribution. But maybe I&#8217;m stretching it a bit.</p>

<h2>So?</h2>

<p>&#8220;What&#8217;s your point, mate? Set fire to the whole institution they call &#8216;academic research&#8217;?&#8221;</p>

<p>Meh. Let&#8217;s not do that just yet. I do think, but this depends on the kind of research that you do, that academics should talk to their <em>real</em> audience more. Don&#8217;t only submit papers to academic conferences, but industrial conferences as well. Blog. Create screencasts. Somehow negotiate time to build a real, usable, stable tool with a website that uses at least one feature from HTML 4.</p>

<p>And to those who give out research grants: expect more than academic papers, expect usable products and the PR that goes with it.</p>

<p>There&#8217;s so much interesting work happening in academia and the people that it affects simply don&#8217;t get to see it. It&#8217;s a shame.</p>

<p>We can do better than this!</p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/lwi5C1JSPyo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3765/changing-the-world-one-paper-at-a-time/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://zef.me/3765/changing-the-world-one-paper-at-a-time</feedburner:origLink></item>
		<item>
		<title>InfoQ: Mobl a DSL for Mobile Web Development</title>
		<link>http://feedproxy.google.com/~r/zefme/~3/ApZ6x0gNSwY/infoq-mobl-a-dsl-for-mobile-web-development</link>
		<comments>http://zef.me/3760/infoq-mobl-a-dsl-for-mobile-web-development#comments</comments>
		<pubDate>Mon, 07 Mar 2011 13:32:02 +0000</pubDate>
		<dc:creator>Zef</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[infoq]]></category>
		<category><![CDATA[mobl]]></category>

		<guid isPermaLink="false">http://zef.me/?p=3760</guid>
		<description><![CDATA[After the InfoQ news article about mobl, I was invited to write a full-length article there as well. Well, I did, and here it is: 2900 words of mobl goodness: Application development for mobile devices such as smart phones and tablets is popular. Apple&#8217;s AppStore (for iPhone, iPod and iPad) has over 350,000 applications and [...]]]></description>
			<content:encoded><![CDATA[<p>After the <a href="http://www.infoq.com/news/2011/02/Mobl">InfoQ news article</a> about mobl, I was invited to write a full-length article there as well. Well, I did, and here it is: <a href="http://www.infoq.com/articles/Mobl">2900 words of mobl goodness</a>:</p>

<blockquote>
  <p>Application development for mobile devices such as smart phones and tablets is popular. Apple&#8217;s AppStore (for iPhone, iPod and iPad) has over 350,000 applications and Android&#8217;s marketplace is quickly catching up counting over 200,000 applications. Android and iOS are not the only two mobile platforms, however. BlackBerry is a big player in business, as is Nokia. Microsoft recently launched Windows Phone 7, and HP announced new WebOS devices. While choice is great for users, it is a nightmare for us, developers. What platform should we target with our applications?</p>
</blockquote>

<p><a href="http://www.infoq.com/articles/Mobl">InfoQ article</a></p>
<img src="http://feeds.feedburner.com/~r/zefme/~4/ApZ6x0gNSwY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zef.me/3760/infoq-mobl-a-dsl-for-mobile-web-development/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://zef.me/3760/infoq-mobl-a-dsl-for-mobile-web-development</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

