<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Stefan Tilkov&apos;s Random Stuff</title>
        <link>http://www.innoq.com/blog/st/</link>
        <description>Thoughts on Architecture, REST and SOA, Model-Driven Development, and whatever else crosses my path</description>
        <language>en</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Wed, 14 May 2008 09:14:44 +0100</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>JRuby on Rails @ RheinJUG</title>
            <description><![CDATA[<p>Last Thursday, I had a lot of fun talking about JRuby on Rails at the <a href="http://www.rheinjug.de/">Düsseldorf Java User Group</a> -- I had a great audience with smart questions and a topic I'm really excited about. As usual, I've put <a href="/blog/st/presentations/2008/2008-05-09-JRuby--JUGD.pdf">the slides online</a>.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/jruby_on_rails_rheinjug.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/jruby_on_rails_rheinjug.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Ruby and RoR</category>
            
            
            <pubDate>Wed, 14 May 2008 09:14:44 +0100</pubDate>
        </item>
        
        <item>
            <title>XML Tax</title>
            <description><![CDATA[<p>Excellent answer from <a href="http://norman.walsh.name/2008/05/13/thetax">Norm Walsh</a> to Jeff Atwood's <a href="http://www.codinghorror.com/blog/archives/001114.html">XML criticism</a>:</p>

<blockquote>
  <p>I don't necessarily think all the alternatives to XML suck, but the mindless, knee-jerk rejection of XML because it contains a small amount of additional syntax certainly does. Like all tools, it's a question of how you use it. Please think twice before subjecting yourself, your fellow programmers, and your users to more fragile, ASCII-only, ad hoc syntaxes.</p>
</blockquote>

<p>This is an occasion where I agree that both alternatives (XML and more light-weight approaches) are worth being considered.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/xml_tax.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/xml_tax.html</guid>
            
            
            <pubDate>Wed, 14 May 2008 07:34:08 +0100</pubDate>
        </item>
        
        <item>
            <title>Dynamic Languages Strike Back</title>
            <description><![CDATA[<p><a href="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html">Superb talk by Steve Yegge</a> (judging from the transcript, at least). Be sure to check out the comments, too.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/dynamic_languages_strike_back.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/dynamic_languages_strike_back.html</guid>
            
            
            <pubDate>Tue, 13 May 2008 22:35:30 +0100</pubDate>
        </item>
        
        <item>
            <title>Implementing a Blog</title>
            <description><![CDATA[<p><a href="http://www.martin-probst.com/blog/2008/05/13/implementing-a-blog">Martin Probst</a> on all those &#8220;easy&#8221; blog apps:</p>

<blockquote>
  <p>Implementing a blog is writing a tiny handler that shoves stuff into the database and out of it, and then spending ridiculous amounts of time filtering comments for spam. Which is one of the really difficult things to do on the internet - validating users as real users, without being inaccessible.</p>
</blockquote>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/implementing_a_blog.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/implementing_a_blog.html</guid>
            
            
            <pubDate>Tue, 13 May 2008 19:39:24 +0100</pubDate>
        </item>
        
        <item>
            <title>&quot;Blogosphäre&quot; (aus JavaSPEKTRUM 03/08)</title>
            <description><![CDATA[<blockquote>
  <p>Haben Sie es sich mit “Ihrer” Haus-und-Hof-Programmiersprache gemütlich gemacht? Vielleicht ist die Zeit gekommen, sich neu und breiter zu orientieren – glaubt man zumindest dem Tenor zahlreicher Blog-Postings, stehen wir vor der Zeit der “polyglotten Programmierer”.</p>
</blockquote>

<p>Meine <a href="http://www.sigs.de/blog/js/?p=36">Kolumne im aktuellen JavaSPEKTRUM</a> ist online.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/blogosphare_aus_javaspektrum_0_1.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/blogosphare_aus_javaspektrum_0_1.html</guid>
            
            
            <pubDate>Tue, 13 May 2008 09:56:23 +0100</pubDate>
        </item>
        
        <item>
            <title>The Day that Middleware Died</title>
            <description><![CDATA[<p>Stu Charlton's take on <a href="http://www.stucharlton.com/blog/archives/000544.html">the end of BEA as we know it</a>.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/the_day_that_middleware_died.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/the_day_that_middleware_died.html</guid>
            
            
            <pubDate>Sat, 10 May 2008 08:30:32 +0100</pubDate>
        </item>
        
        <item>
            <title>RESTful JavaOne</title>
            <description><![CDATA[<p><a href="http://www.tbray.org/ongoing/When/200x/2008/05/07/REST-at-J1">Tim Bray</a>, reporting from JavaOne:</p>

<blockquote>
  <p>Down in the big Java One trade-show, there was a “SOA village”, where all the vendors of SOAP/WSDL/WS-* technology were talking about Governance and Reliability and Integration and so on. “Village” is the word all right; a village left behind by history. It was kind of sad, actually. REST may not have won, but SOA-as-in-WSDL is in the middle of losing.<br /><br />My second take-away, watching the presentations’ sample code: there was way too much of it. When you’ve been living in Ruby-land for a while, Java’s verbosity starts to hurt your eyes. In particular those constructors spilling across two or three lines, festooned with hideously-nested generics cruft; that’s just wrong.</p>
</blockquote>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/restful_javaone.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/restful_javaone.html</guid>
            
            
            <pubDate>Fri, 09 May 2008 18:33:13 +0100</pubDate>
        </item>
        
        <item>
            <title>SPARQL Update to Complete RESTful SOA Scenario</title>
            <description><![CDATA[<blockquote>
  <p>The so far certainly RESTful Web of Linking Open Data provides an outstanding real world pattern for RESTful SOA - as long as there is only read access. Imagine enterprises can easily publish their data internally in the same way, and so cross-enterprise organizations could do (assumed that security requirements are as well satisfied). When it comes to UPDATE in Linking Open Data, this most probably will be realized using SPARQL Update. While this is a language not an application protocol, it is based on assumptions on such a protocol, e.g. by addressing the Graph Store and not the Graph. So it might by worthy to "avoid making the same mistakes as Web services".</p>
</blockquote>

<p>More on <a href="http://www.infoq.com/news/2008/05/sparql-update-soa">InfoQ</a>.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/sparql_update_to_complete_rest.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/sparql_update_to_complete_rest.html</guid>
            
            
            <pubDate>Thu, 08 May 2008 07:51:34 +0100</pubDate>
        </item>
        
        <item>
            <title>Nygard on JSR 308</title>
            <description><![CDATA[<p><a href="http://www.michaelnygard.com/blog/2008/05/when_should_you_jump_jsr_308_t.html">Michael Nygard</a> on <a href="http://groups.csail.mit.edu/pag/jsr308/">JSR 308</a> and dynamic languages:</p>

<blockquote>
<p>Every language has a complexity budget. Java blew through it with generics in Java 5. Now, seriously, take another look at this:</p>

<code>@NotEmpty List<@NonNull String> strings = new ArrayList<@NonNull String>();</code>
<p>Does that even look like Java? That complexity budget is just a dim smudge in our rear-view mirror here. We&#8217;re so busy keeping the compiler happy here, we&#8217;ll completely forget what our actual project it.</p>
<p>
All this is coming at exactly the worst possible time for Java the Language. The community is really, really excited about dynamic languages now. Instead of those contortions, we could just say:
</p>
<code>var strings = ["one", "two"];</code>
<p>
Now seriously, which one would you rather write? True, the dynamic version doesn&#8217;t let me enlist the compiler&#8217;s aid for enforcement. True, I do need many more unit tests with the dynamic code. Still, I&#8217;d prefer that &#8220;low ceremony&#8221; approach to the mouthful of formalism above.
</p>
<p>
So, getting back to that mainstream Java developer&#8230; it looks like there are only two choices: more dynamic or more static. More formal and strict, or more loosey-goosey and terse. JSR 308 will absolutely accelerate this polarization.
</p>
</blockquote>

<p>I have a similar feeling with <a href="http://www.scala-lang.org/">Scala</a> &#8212; I have no doubt it&#8217;s now probably 50 times faster than JRuby, and will probably continue to be at least an order of magnitude faster for the foreseeable future; its type system will probably catch errors I never knew I was able of making &#8212; but I just can&#8217;t see myself having fun programming in it.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/nygard_on_jsr_308.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/nygard_on_jsr_308.html</guid>
            
            
            <pubDate>Wed, 07 May 2008 15:37:31 +0100</pubDate>
        </item>
        
        <item>
            <title>Just Add Scaling</title>
            <description><![CDATA[<p><a href="http://ola-bini.blogspot.com/2008/05/just-add-scaling.html">Great post</a> from Ola Bini about the "lack of scalability" of Ruby. It's interesting to see how many commenters totally miss the point, either feeling they need to explain scalability to him, our mixing up a framework (Rails) with a language (Ruby). </p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/just_add_scaling.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/just_add_scaling.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Ruby and RoR</category>
            
            
            <pubDate>Mon, 05 May 2008 07:47:23 +0100</pubDate>
        </item>
        
        <item>
            <title>That crazy old economy can be so selective sometimes</title>
            <description><![CDATA[<p>I just <em>love</em> <a href="http://fakesteve.blogspot.com/2008/05/that-crazy-old-economy-can-be-so.html">Fake Steve's Fake Jonathan Schwartz</a>:</p>

<blockquote>
  <p>More important, the MySQL deal has demonstrated our commitment to the open source community and gained us huge amounts of good will from people who don't like to pay for things, which for a company in our dire situation is absolutely invaluable.</p>
</blockquote>

<p>Brilliant.</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/05/that_crazy_old_economy_can_be.html</link>
            <guid>http://www.innoq.com/blog/st/2008/05/that_crazy_old_economy_can_be.html</guid>
            
            
            <pubDate>Sat, 03 May 2008 10:10:24 +0100</pubDate>
        </item>
        
        <item>
            <title>JRuby and Ruby</title>
            <description><![CDATA[<p>I spent a lot of time at JAX last week in discussions about Ruby and Rails, both on stage and offline. A recurring theme was the Java community's reluctance to accept anything that doesn't run on the JVM. The arguments brought forward can be separated roughly into the following three categories:</p>

<ul>
<li>Legacy. People insist on being able to protect their existing investments, in terms of hardware, software, and skills. Being able to run Ruby as just another language on the JVM, essentially including the option to simply deliver byte code without ever talking about a change in the programming language, is perceived as a key requirement.</li>
<li>Performance and Scalability. Scaling with processes instead of threads; having to manage a cluster of long-running processes; being forced to rely on Apache's features for load-balancing: there was general agreement that this is a lot worse than being able to rely on the existing Java infrastructure.</li>
</ul>

<p>I don't necessarily agree with these criticisms. For one, I believe systems should be coupled much more loosely than by running them on the same VM and integrating them on the language level. I also think that in many cases, scaling with processes in a shared-nothing architecture scales perfectly well, and it also doesn't require any sophisticated infrastructure beyond a boilerplate Unix platform. I expect a lot of innovation to occur within the Ruby VM space, specifically around Rubinius. And lastly, I know from personal experience that in many cases the JVM and a fat app server sitting on top of it are used to serve a simple JSP/servlet application to a few dozen users, i.e. used in a scenario where Perl CGI would suffice.</p>

<p>But while I don't find these arguments convincing enough for many use cases, it's very hard to find arguments <em>against</em> running Ruby on the JVM. JRuby has reached a level of maturity that makes it a great choice even if you don't care about Java at all. As it runs Rails, I'm reasonably confident it will run basically any Ruby library I could care about -- except, of course, those that rely on a native library to deliver their features. But in this case, the vast ecosystem of Java libraries should outweigh this disadvantage easily.</p>

<p>So assuming you can deploy your Ruby application to a JVM platform without hassle, why wouldn't you?</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/04/jruby_and_ruby.html</link>
            <guid>http://www.innoq.com/blog/st/2008/04/jruby_and_ruby.html</guid>
            
            
            <pubDate>Wed, 30 Apr 2008 17:15:03 +0100</pubDate>
        </item>
        
        <item>
            <title>Steve Yegge on XEmacs</title>
            <description><![CDATA[<p>Smart stuff from <a href="http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html">Steve Yegge</a>:</p>

<blockquote>
  <p>Eclipse and similar environments want to be self-hosting, but they're not, because Java is not self-hosting. In spite of Java's smattering of dynamic facilities, Java remains as fundamentally incapable of self-hosting as C++. Self-hosting only works if the code can "fold" on itself and become more powerful while making itself smaller and cleaner. I'm not really talking about macros here, even though that's probably the first thing you thought of. I'm thinking more along the lines of implementing JITs and supercompilers in the hosted runtime, rather than in the C++ or Java "hardware" substrate, which is where everyone puts them today.<br /><br />I suspect (without proof) that in self-hosted environments, you can eventually cross a threshold where your performance gains from features implemented in the hosted environment outpace the gains from features in the substrate, because of this self-reinforcing effect: if code can make <em>itself</em> faster and smarter, then it will be faster and smarter at making itself faster and smarter. In C++ and Java, making this jump to the self-reinforcing level is essentially intractable because, ironically, they have so many features (or feature omissions) for the sake of performance that they get in their own way.<br /><br />To be sure, Emacs, the current crop of popular scripting languages, and other modestly self-hosting environments are all pretty far from achieving self-reinforcing performance. But Emacs has achieved it for productivity – at least, for the relatively small percentage of Emacs users who learn enough elisp to take advantage of it. There are just enough of us doing it to generate a steady supply of new elisp hackers, and the general-purpose artifacts we produce are usually enough to keep the current crop of casual users happy.</p>
</blockquote>

<p>(Personally, I've abandoned the Emacs religion and switched to TextMate. But I'm among the casual users who will be happy that they can switch back the day I can no longer use a Mac ...)</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/04/steve_yegge_on_xemacs.html</link>
            <guid>http://www.innoq.com/blog/st/2008/04/steve_yegge_on_xemacs.html</guid>
            
            
            <pubDate>Tue, 29 Apr 2008 19:17:01 +0100</pubDate>
        </item>
        
        <item>
            <title>New Languages &amp; Compilers</title>
            <description><![CDATA[<p><a href="http://douglaspurdy.com/2008/04/29/new-languages-compilers/">Microsoft's Doug Purdy</a>:</p>

<blockquote>
  <p>In addition, it is not very often that you can be part of a team that aspires to radically change the dynamics of building a new language, to the extent that a developer can write their own model-driven language in a straightforward way while getting all the language services (Intellisense, colorization, etc.) for “free”.</p>
</blockquote>

<p>Sounds a lot like <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/html/contents/xtext_reference.html">Xtext</a> to me …</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/04/new_languages_compilers.html</link>
            <guid>http://www.innoq.com/blog/st/2008/04/new_languages_compilers.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Model Driven Engineering</category>
            
            
            <pubDate>Tue, 29 Apr 2008 09:14:58 +0100</pubDate>
        </item>
        
        <item>
            <title>Displaying Key Combinations on OS X for Presentations</title>
            <description><![CDATA[<p>Ryan Bates from railscasts.com uses it, IIRC – damn if I can remember the OS X tool's name: What do you use to let the audience know which control-command-shift-option-whatever combination has been used?</p>

<p>Any hint, preferably before tomorrow 10am CET, would be greatly appreciated :-)</p>
]]></description>
            <link>http://www.innoq.com/blog/st/2008/04/displaying_key_combinations_on.html</link>
            <guid>http://www.innoq.com/blog/st/2008/04/displaying_key_combinations_on.html</guid>
            
            
            <pubDate>Tue, 22 Apr 2008 17:56:44 +0100</pubDate>
        </item>
        
    </channel>
</rss>
