<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Joe Walker - continuations tag</title>
  <link>http://directwebremoting.org/blog/joe/tags/continuations/</link>
  <description>Thoughts on Web Development</description>
  <language>en</language>
  <copyright>Joe Walker</copyright>
  <lastBuildDate>Wed, 23 Jul 2008 11:00:41 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>7 Things I Learnt at TSS-Europe</title>
    <link>http://directwebremoting.org/blog/joe/2006/06/26/7_things_i_learnt_at_tss_europe.html</link>
    
      
        <description>
          &lt;p&gt;1. I learnt that &lt;a href=&#034;http://retroweaver.sourceforge.net/&#034;&gt;Retroweaver&lt;/a&gt;  actually works. Retroweaver tweaks your JDK5 compiled classes to make them work on JDK1.4. The JavaPosse had some doubts about it a while ago, but &lt;a href=&#034;http://radio.weblogs.com/0112098/&#034;&gt;James Strachan&lt;/a&gt; and &lt;a href=&#034;http://rifers.org/blogs/gbevin&#034;&gt;Geert Bevin&lt;/a&gt; love it. I&#039;m thinking that DWR v2 will probably adopt this and drop the support for JDK 1.3. Please shout now if you need us to keep JDK 1.3 support.&lt;/p&gt;

&lt;p&gt;2. I learnt that red wine and light blue t-shirts don&#039;t mix. Sorry Nathalie.&lt;/p&gt;

&lt;p&gt;3. I learnt that &lt;a href=&#034;http://en.wikipedia.org/wiki/Ocaml&#034;&gt;OCAML&lt;/a&gt; is interesting language to teach your brain new tricks. Bruce Tate was talking Ruby up, as expected, and saying that programmers should learn a new language on a regular basis to keep on their toes. However I spent the flight home chatting to &lt;a href=&#034;http://www.cs.bham.ac.uk/~aps/&#034;&gt;Alan Sexton&lt;/a&gt; who convinced me to take a look at OCAML and a better mind stretching exercise.&lt;/p&gt;

&lt;p&gt;4. I learnt that a simple &#034;hola&#034; (hello) makes a big difference in Spain. I&#039;m not great at foreign languages - I can get by in French, but only badly. I got an extra legroom seat on the flight home for nothing. It&#039;s either because the girl at the check-in was magnetically attracted to my rugged good looks, or because I smiled and said Hola. Anyone that has actually seen my rugged good looks will agree that Hola makes a big difference.&lt;/p&gt;

&lt;p&gt;5. I learnt that continuations and closures still confuse lots of people. They are very different. Continuations are when you freeze a thread and serialize the stack to be re-run later. Closures are functions that can be assigned to variables where the functions can refer to variables in the enclosing scope. Nothing to do with each other, but often confused.&lt;/p&gt;

&lt;p&gt;6. I learnt that it is a real shame industry and academia doesn&#039;t mix more. I can&#039;t see much in the Ajax world coming out of academia just because the Ajax world is spinning so fast, but there are some brains there that could certainly teach us a thing or two.&lt;/p&gt;

&lt;p&gt;7. I learnt that many top universities still don&#039;t teach copyright/patent law as a mandatory part of their courses. This is a huge hole. How can you be a good programmer without knowing the basics of what ideas you can copy from others and when?&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2006/06/26/7_things_i_learnt_at_tss_europe.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2006/06/26/7_things_i_learnt_at_tss_europe.html</guid>
    <pubDate>Mon, 26 Jun 2006 10:53:07 GMT</pubDate>
  </item>
  
  <item>
    <title>JSR: Continuations</title>
    <link>http://directwebremoting.org/blog/joe/2006/05/02/jsr_continuations.html</link>
    
      
        <description>
          &lt;p&gt;We need a JSR for Continuations.&lt;/p&gt;

&lt;p&gt;I&#039;ve been working with Greg Wilkins to allow Ajax in &lt;a href=&#034;http://getahead.ltd.uk/dwr/&#034;&gt;DWR&lt;/a&gt; to work properly with Jetty Continuations. But Jetty Continuations are just one of a number of implementations of a great idea. We need a JSR so that I don&#039;t have to do the same job 20 times:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Continuation?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best short description I&#039;ve seen is one from &lt;a href=&#034;http://www.paulgraham.com/onlisp.html&#034;&gt;Paul Graham&#039;s On Lisp&lt;/a&gt; that Brian McCallister &lt;a href=&#034;http://kasparov.skife.org/blog/src/java/cont-jsr.html&#034;&gt;referred to&lt;/a&gt;.

&lt;p style=&#034;font-style:italic;margin:0px 20px&#034;&gt;A continuation is a program frozen in action: a single functional object containing the state of a computation. When the object is evaluated, the stored computation is restarted where it left off. In solving certain types of problems it can be a great help to be able to save the state of a program and restart it later. In multiprocessing, for example, a continuation conveniently represents a suspended process. In nondeterministic search programs, a continuation can represent a node in the search tree.&lt;/p&gt;

&lt;p&gt;Brian&#039;s whole &lt;a href=&#034;http://kasparov.skife.org/blog/src/java/cont-jsr.html&#034;&gt;Continuation blog entry&lt;/a&gt; is well worth a read. Sam Ruby has a &lt;a href=&#034;http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons&#034;&gt;great article on the subject&lt;/a&gt;, or there is also an &lt;a href=&#034;http://www-128.ibm.com/developerworks/library/j-contin.html&#034;&gt;IBM DeveloperWorks article&lt;/a&gt; which goes into a bit more depth or a &lt;a href=&#034;http://en.wikipedia.org/wiki/Continuation&#034;&gt;Wikipedia article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href=&#034;http://rifers.org/wiki/display/RIFE/Web+continuations&#034;&gt;Continuations are in Rife&lt;/a&gt; and this code is used by WebWork.&lt;/li&gt;

&lt;li&gt;&lt;a href=&#034;http://jakarta.apache.org/commons/sandbox/javaflow/&#034;&gt;Continuations are in JavaFlow&lt;/a&gt;. Although this is still in the sand-box.&lt;/li&gt;

&lt;li&gt;&lt;a href=&#034;http://cocoon.apache.org/2.1/userdocs/flow/&#034;&gt;Continuations are in Cocoon&lt;/a&gt; and the vast eco-system behind that.&lt;/li&gt;

&lt;li&gt;&lt;a href=&#034;http://www.mortbay.com/MB/log/gregw/?permalink=Jetty6Continuations.html&#034;&gt;Continuations are in Jetty&lt;/a&gt; and DWR has tweaks for this written by Greg Wilkins.&lt;/li&gt;

&lt;li&gt;I&#039;ve heard that BEA are building continuations into Weblogic too. Can anyone confirm this?&lt;/li&gt;

&lt;li&gt;&lt;strike&gt;It looks like James Strachan is &lt;a href=&#034;http://docs.codehaus.org/display/continuation/Home&#034;&gt;toying with the idea at Codehaus&lt;/a&gt;&lt;/strike&gt;, but not creating anything.&lt;/li&gt;

&lt;li&gt;&lt;a href=&#034;http://www.bpmscript.org/&#034;&gt;Continuations are in BPMScript&lt;/a&gt; &#034;BPM is used to attempt to automate these business processes&#034;.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;That&#039;s 6 implementations, and I don&#039;t want DWR to have to  have hacks for them all.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2006/05/02/jsr_continuations.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2006/05/02/jsr_continuations.html</guid>
    <pubDate>Tue, 02 May 2006 15:22:08 GMT</pubDate>
  </item>
  
  </channel>
</rss>
