<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Joe Walker - conference tag</title>
  <link>http://directwebremoting.org/blog/joe/tags/conference/</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>How to make JavaOne better</title>
    <link>http://directwebremoting.org/blog/joe/2007/11/29/how_to_make_javaone_better.html</link>
    
      
        <description>
          &lt;p&gt;Dear Sun,&lt;/p&gt;

&lt;p&gt;You recently asked for my feedback as a previous attendee of JavaOne. I&#039;d like to add the following to my comments about how to improve things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please, please, don&#039;t force the trademark lawyers to change my presentation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each year the lawyers get to hack about with my presentation. Last year I had a slide that said DWR could:&lt;p&gt;

&lt;p class=&#034;quote&#034;&gt;&#034;Use Java EE role based security to declare roles that can access methods&#034;&lt;/p&gt;

&lt;p&gt;However, this got changed to:&lt;/p&gt;

&lt;p class=&#034;quote&#034;&gt;&#034;Use Java™ Platform, Enterprise Edition (Java EE platform) defined role based security to declare roles that can access methods&#034;&lt;/p&gt;

&lt;p&gt;And when I claimed that DWR could marshal:&lt;/p&gt;

&lt;p class=&#034;quote&#034;&gt;&#034;JavaBeans and Objects&#034;&lt;/p&gt;

&lt;p&gt;This was changed to&#034;&lt;/p&gt;

&lt;p class=&#034;quote&#034;&gt;&#034;JavaBeans™ architecture and Objects&#034;&lt;/p&gt;

&lt;p&gt;This is now technically incorrect - DWR can&#039;t marshal the entire JavaBeans Architecture - it might be cool if it could, but it can&#039;t.&lt;/p&gt;

&lt;p&gt;The logic behind the trademark changes are that Sun are seen as the publisher of the presentations, so for them to publish the talks without proper trademark usage could lead to a case that Sun have lost their trademarks.&lt;/p&gt;

&lt;p&gt;However, in reality, Sun have published in literally thousands of places on the web without the correct trademark phrasing. The (TM) symbol is missing from virtually every use of the word &#039;Java&#039; on Sun&#039;s website, so why confuse presentations by insisting on strange phrasing there. Why not worry about java.net, where I can &lt;a href=&#034;https://dwr.dev.java.net/&#034;&gt;freely alter text&lt;/a&gt; without worrying trademark lawyers?&lt;/p&gt;

&lt;br/&gt;

&lt;p&gt;&lt;strong&gt;Please, please, make the presentation template ultra-minimalist.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How many of the presentations on &lt;a href=&#034;http://www.slideshare.net/&#034;&gt;SlideShare&lt;/a&gt; would be improved by the use of a standard template? Talking of which, this presentation is one of the &lt;a href=&#034;http://www.slideshare.net/most-favorited/all-time&#034;&gt;most popular presentations ever on SlideShare ever&lt;/a&gt;. It would be &lt;a href=&#034;http://www.slideshare.net/thecroaker/death-by-powerpoint&#034;&gt;destroyed by a template&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The presentation from Asa Raskin&#039;s brilliant talk &#034;Don’t make me click&#034; from the Ajax Experience was just a series of icons, where the point was made through the icons. Again, a presentation template would have destroyed the talk. The same goes for Dick Hardt&#039;s seminal &#034;&lt;a href=&#034;http://identity20.com/media/OSCON2005/&#034;&gt;Identity 2.0&lt;/a&gt;&#034; talk from OSCon 2005.&lt;/p&gt;

&lt;p&gt;Many postings on &lt;a href=&#034;http://www.presentationzen.com/&#034;&gt;Presentation Zen&lt;/a&gt; are about the problems of bullet points, but the presentation templates encourage people to use bullet points and to get sucked into the trap of reading from the slides.&lt;/p&gt;

&lt;p&gt;I totally understand the need for some branding, but it doesn&#039;t need to be on every slide, and it shouldn&#039;t discourage people from being creative in how they present.&lt;/p&gt;

&lt;p&gt;I like creating a good presentation, but whenever it comes to creating a presentation with a mandated template, I feel that some of the opportunity for creativity has been taken away, and the presentation suffers as a result.&lt;/p&gt;

&lt;p&gt;Thanks for listening,&lt;/p&gt;

&lt;p&gt;Joe.&lt;/p&gt;

&lt;hr/&gt;

&lt;p&gt;What do you think? Is a conference helped by having a common theme across all presentations?&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update&lt;/b&gt;: Hani makes the good point in the comments that there is time in the &#039;Speaker Ready Room&#039; to fix the problem. This is true, and I&#039;ve spent several hours doing just that. However, if Sun just dropped the whole lawyer review thing, they could push back the deadline for slides, which might mean that talks were not 6 months out of date by the time they were presented.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2007/11/29/how_to_make_javaone_better.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2007/11/29/how_to_make_javaone_better.html</guid>
    <pubDate>Thu, 29 Nov 2007 13:03:33 GMT</pubDate>
  </item>
  
  <item>
    <title>DWR news round-up</title>
    <link>http://directwebremoting.org/blog/joe/2007/08/08/dwr_news_round_up.html</link>
    
      
        <description>
          &lt;p&gt;A couple of weeks ago I recorded a Webinar on DWR (&lt;a href=&#034;http://getahead.org/blog/joe/2007/07/12/free_webinar.html&#034;&gt;see previous post&lt;/a&gt;), which TIBCO are kindly &lt;a href=&#034;http://www.tibco.com/devnet/gi/dwr.jsp&#034;&gt;hosting as a flash movie&lt;/a&gt;. It contains an overview of Reverse Ajax, integration with the &lt;a href=&#034;http://www.openajax.org/OpenAjax%20Hub.html&#034;&gt;Open Ajax Hub&lt;/a&gt; and &lt;a href=&#034;http://www.tibco.com/mk/gi/?CID=DWR&#034;&gt;TIBCO GI&lt;/a&gt;, and a new call center demo that will be part of DWR 2.1.&lt;/p&gt;

&lt;p&gt;Sys-Con have published an article: &amp;quot;Simple Streaming AJAX Comet App with &lt;a href=&#034;http://www.openajax.org/OpenAjax%20Hub.html&#034;&gt;Open Ajax Hub&lt;/a&gt;, &lt;a href=&#034;http://www.tibco.com/mk/gi/?CID=DWR&#034;&gt;TIBCO GI&lt;/a&gt;, and &lt;a href=&#034;http://getahead.org/dwr/&#034;&gt;DWR&lt;/a&gt;&amp;quot;, that I wrote with Kevin Hakman. The &lt;a href=&#034;http://soa.sys-con.com/read/400330.htm&#034;&gt;main article link is here&lt;/a&gt; or you could &lt;a href=&#034;http://soa.sys-con.com/read/400330.htm&#034;&gt; try the print version&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Philip McCarthy has written an excellent article on &amp;quot;&lt;a href=&#034;http://www.ibm.com/developerworks/web/library/j-jettydwr/index.html&#034;&gt;Writing scalable Comet applications with Jetty and DWR&lt;/a&gt;&amp;quot;:&lt;/p&gt;

&lt;p class=&#034;quote&#034;&gt;The Comet pattern allows you to push data to clients, and Jetty 6&#039;s Continuations API lets your Comet application scale to a large number of clients. You can conveniently take advantage of both Comet and Continuations with the Reverse Ajax technology in Direct Web Remoting 2.&lt;/p&gt;

&lt;p&gt;If you are interested in how &lt;a href=&#034;http://www.mortbay.org/&#034;&gt;Jetty&lt;/a&gt; saves threads under heavy Comet load, it&#039;s well worth a read.&lt;/p&gt;

&lt;h2&gt;Conferences&lt;/h2&gt;

&lt;p&gt;I don&amp;#39;t normally blog every time I go to a conference because I&amp;#39;m sure I  would sometimes forget, and it&amp;#39;s probably not that interesting (or is it? argue  in the comments), however there are a few that are coming up:&lt;/p&gt;

&lt;h3 style=&#034;clear:both;&#034;&gt;&lt;a href=&#034;http://www.nfjs-exchange.com/pcd/1128&#034;&gt;NFJS Exchange&lt;/a&gt;: London / August 29-31&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#034;http://www.nfjs-exchange.com/pcd/1128&#034;&gt;&lt;img style=&#034;float:left; margin-right:10px;&#034; alt=&#034;No Fluff Logo&#034; src=&#034;http://www.nfjs-exchange.com/images/banners/nfjs-exchange-london_125x125.jpg&#034;  /&gt;&lt;/a&gt;No-Fluff-Just-Stuffs are cool, and I particularly like that they are coming to the UK after being a US only event for years. What&amp;#39;s good is the size - only 250 attendees, so it&amp;#39;s way more intimate than JavaOne or something similar.&lt;/p&gt;

&lt;p&gt;Plus there&amp;#39;s always good swag at NFJS conferences, the swag for TRWE (below) is well known, but I&amp;#39;m told there&amp;#39;s a free &lt;a href=&#034;http://uk.wii.com/&#034;&gt;Wii&lt;/a&gt; to all attendees just for quoting a code: &lt;strong&gt;NFJS-DWR667&lt;/strong&gt;. &lt;a href=&#034;http://www.skillsmatter.com/register/nfjs-exchange-2007&#034;&gt;Register here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m talking on &lt;a href=&#034;http://www.nfjs-exchange.com/joe-walker&#034;&gt;DWR and on Ajax Security&lt;/a&gt;. I may also be sharing some stage time with &lt;a href=&#034;http://www.nfjs-exchange.com/mark-goodwin&#034;&gt;Mark Goodwin&lt;/a&gt;.&lt;/p&gt;

&lt;h3 style=&#034;clear:both;&#034;&gt;&lt;a href=&#034;http://www.therichwebexperience.com/show_view.jsp?showId=60&#034;&gt;The Rich Web Experience&lt;/a&gt;: San Jose / September 6-8&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#034;http://www.therichwebexperience.com/show_view.jsp?showId=60&#034;&gt;&lt;img style=&#034;float:left; margin-right:10px;&#034; alt=&#034;No Fluff Logo&#034; src=&#034;http://getahead.org/images/conference-trwe2007.jpg&#034;  /&gt;&lt;/a&gt;TRWE has an awesome list of speakers - I am looking forward to hearing Aza Raskin again. He was great at the Ajax Experience last year. I&#039;ve not seen any conference that lets attendees choose from a Wii or a 30Gb iPod Video before, plus if you book using the &lt;strong&gt;nfjs2007speaker200&lt;/strong&gt; promo code you can get $200 off the entrance price. &lt;a href=&#034;http://www.therichwebexperience.com/show_register_acteva.jsp?showId=60&#034;&gt;Register here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m talking on &lt;a href=&#034;http://www.therichwebexperience.com/show_session_view.jsp?presentationId=299&amp;amp;showId=60&#034;&gt;DWR&lt;/a&gt; and on &lt;a href=&#034;http://www.therichwebexperience.com/show_session_view.jsp?presentationId=299&amp;amp;showId=60&#034;&gt; Ajax Security&lt;/a&gt;.&lt;/p&gt;

&lt;h3 style=&#034;clear:both;&#034;&gt;&lt;a href=&#034;http://www.futureofwebapps.com/&#034;&gt;Future of Web Apps&lt;/a&gt;: London / October 3-5&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#034;http://www.futureofwebapps.com/&#034;&gt;&lt;img style=&#034;float:left; margin-right:10px;&#034; alt=&#034;Future of Web Apps Logo&#034; src=&#034;http://www.futureofwebapps.com/assets/images/buttons/FOWA-Badge.gif&#034; width=&#034;120&#034; height=&#034;90&#034; /&gt;&lt;/a&gt;FoWA is very different for me because it&amp;#39;s not a full time developers conference. They cater for developers, but also to a range of other skills, which means there are a whole bunch of interesting speakers that I&amp;#39;ve not met before. I&amp;#39;m talking on &lt;a href=&#034;http://www.futureofwebapps.com/speakers.html#JoeWalker&#034;&gt;Comet and DWR&lt;/a&gt;. Also interesting is their web-app for registered attendees, so you can see who else is going (obviously, you need to &lt;a href=&#034;https://secure.carsonsystems.com/event/6/public/booking&#034;&gt;register to attend&lt;/a&gt; to see), and &lt;a href=&#034;http://www.futureofwebapps.com/roadtrip/&#034;&gt;free beer road trip&lt;/a&gt;.&lt;/p&gt;

&lt;h3 style=&#034;clear:both;&#034;&gt;&lt;a href=&#034;http://www.grails-exchange.com/pcd/1046&#034;&gt;Grails Exchange&lt;/a&gt;: London / October 17-19&lt;/h3&gt;

&lt;p&gt;&lt;a href=&#034;http://www.grails-exchange.com/pcd/1046&#034;&gt;&lt;img style=&#034;float:left; margin-right:10px;&#034; alt=&#034;Grails Exchange Logo&#034; src=&#034;http://www.skillsmatter.com/images/misc/grails-exchange-mini.jpg&#034;/&gt;&lt;/a&gt;The Grails Exchange is a little strange because although there&amp;#39;s there&amp;#39;s a lot of Grails actions, there&amp;#39;s also quite a lot of non-Grails-centric stuff going on too. I&amp;#39;m talking on &lt;a href=&#034;http://www.grails-exchange.com/joe-walker&#034;&gt;DWR and on Ajax Security&lt;/a&gt;. If you&amp;#39;re quick there&amp;#39;s still early-bird registration.&lt;/p&gt;

&lt;h3 style=&#034;clear:both;&#034;&gt;&lt;a href=&#034;http://ajaxexperience.techtarget.com/&#034;&gt;The Ajax Experience&lt;/a&gt;: Boston / October 24-26&lt;/h3&gt;

&lt;p&gt;TAE / Boston is a way off; I&amp;#39;ve only just come home from TAE in San Francisco, so I&amp;#39;m way ahead of myself. We&amp;#39;ve not even arranged subjects yet.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2007/08/08/dwr_news_round_up.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2007/08/08/dwr_news_round_up.html</guid>
    <pubDate>Wed, 08 Aug 2007 14:35:54 GMT</pubDate>
  </item>
  
  <item>
    <title>You WILL be coming to my JavaOne talk</title>
    <link>http://directwebremoting.org/blog/joe/2007/04/20/you_will_be_coming_to_my_javaone_talk.html</link>
    
      
        <description>
          &lt;p&gt;Thanks to my elite &lt;a href=&#034;http://getahead.org/blog/joe/2007/01/01/csrf_attacks_or_how_to_avoid_exposing_your_gmail_contacts.html&#034;&gt;CSRF&lt;/a&gt; skillz, and the fact that you&#039;re reading my blog, I&#039;ve just scripted a form in the background and posted it to the &lt;a href=&#034;http://www28.cplan.com/sb158/login.jsp&#034;&gt;JavaOne Schedule Builder&lt;/a&gt; to book you in to my JavaOne session entitled: &#034;&lt;a href=&#034;http://www28.cplan.com/sb158/session_details.jsp?isid=286410&amp;ilocation_id=158-1&amp;ilanguage=english&#034;&gt;Hands-On DWR&lt;/a&gt;&#034;. It will be good to see you there.&lt;/p&gt;

&lt;a href=&#034;/dwr&#034;&gt;&lt;img src=&#034;/images/dwr-logo.png&#034; align=&#034;right&#034; style=&#034;margin:0px 10px&#034; border=&#034;0&#034; alt=&#034;dwr-logo&#034;/&gt;&lt;/a&gt;

&lt;p class=&#034;quote&#034;&gt;This presentation digs into many advanced DWR features such as Reverse Ajax and the JavaScript technology proxy APIs. The session creates a web-based multi-player game, almost from scratch, illustrating how straightforward it is to create advanced effects with minimal coding. By demonstrating advanced page manipulation and server-based control of browsers, the game shows how to update any web application to react to server changes.&lt;/p&gt;

&lt;p&gt;* Footnote to the humor impaired: I&#039;m not serious. Breaking into systems using JavaScript form wrangling is wrong.&lt;/p&gt;

&lt;p&gt;** Additional Footnote: And it would never work, blog aggregators strip out JavaScript.&lt;/p&gt;

&lt;p&gt;*** Additional additional footnote: Quite right, you should use a 1x1 pixel gif with a custom GET request to effect the form submission to bypass the blog aggregators script filters.&lt;/p&gt;

&lt;p&gt;**** A&lt;sup&gt;3&lt;/sup&gt; footnote to the humor impaired: I&#039;m still not serious.&lt;/p&gt;

&lt;p&gt;***** A&lt;sup&gt;4&lt;/sup&gt; footnote: But if you don&#039;t believe me, &lt;a href=&#034;http://www28.cplan.com/sb158/login.jsp&#034;&gt;check for yourself&lt;/a&gt;, and while you&#039;re there book into session &lt;a href=&#034;http://www28.cplan.com/sb158/session_details.jsp?isid=286410&amp;ilocation_id=158-1&amp;ilanguage=english&#034;&gt;TS-6410&lt;/a&gt; anyway.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2007/04/20/you_will_be_coming_to_my_javaone_talk.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2007/04/20/you_will_be_coming_to_my_javaone_talk.html</guid>
    <pubDate>Fri, 20 Apr 2007 11:28:10 GMT</pubDate>
  </item>
  
  <item>
    <title>Free Seminar</title>
    <link>http://directwebremoting.org/blog/joe/2007/04/02/free_seminar.html</link>
    
      
        <description>
          &lt;a href=&#034;http://skillsmatter.com/&#034;&gt;&lt;img src=&#034;/images/skillsmatter.gif&#034; align=&#034;right&#034; style=&#034;margin:0px 10px&#034; border=&#034;0&#034; alt=&#034;Skills Matter Logo&#034;/&gt;&lt;/a&gt;

&lt;p&gt;I&#039;m doing a &lt;a href=&#034;http://skillsmatter.com/web-application-dwr&#034;&gt;free evening seminar&lt;/a&gt; on DWR, Security and Accessibility in a few weeks time, on Wednesday 25th April from 18:30.&lt;/p&gt;

&lt;p&gt;It&#039;s hosted by Skills Matter at: 1 Sekforde St, London EC1R 0BE, UK [&lt;a href=&#034;http://maps.google.co.uk/maps?f=l&amp;hl=en&amp;q=skills+matter&amp;near=EC1R+0BE&amp;layer=&amp;ie=UTF8&amp;om=1&amp;z=17&amp;ll=51.524052,-0.104799&amp;spn=0.003972,0.007446&amp;iwloc=A&#034;&gt;Google Maps&lt;/a&gt;] [&lt;a href=&#034;http://local.live.com/?v=2&amp;sp=Point.skmj96gzr4c7_1%2520Sekforde%2520St%252c%2520London%2520EC1R%25200%252c%2520United%2520Kingdom___&#034;&gt;Live.com&lt;/a&gt;]. Entry is free but &lt;a href=&#034;http://skillsmatter.com/menu/509&#034;&gt;you need to register&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We&#039;ve got 90 mins for the seminar, but I think there is a good chance we&#039;ll end up spending 30 mins on questions, so the talk will probably be about an hour.&lt;/p&gt;

&lt;p&gt;And there&#039;s a plan for beer afterwards.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2007/04/02/free_seminar.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2007/04/02/free_seminar.html</guid>
    <pubDate>Mon, 02 Apr 2007 09:52:34 GMT</pubDate>
  </item>
  
  <item>
    <title>Emerging Java Technologies at QCon</title>
    <link>http://directwebremoting.org/blog/joe/2007/03/15/emerging_java_technologies_at_qcon.html</link>
    
      
        <description>
          &lt;p&gt;I&#039;ve just finished opening the &#034;&lt;a href=&#034;http://qcon.infoq.com/qcon/schedule/thursday.jsp&#034;&gt;Java Emerging Technologies&lt;/a&gt;&#034; track at &lt;a href=&#034;http://qcon.infoq.com/qcon/conference/&#034;&gt;QCon&lt;/a&gt; and spent some time talking about Closures. This is a summary of what I said:&lt;/p&gt;

&lt;p&gt;You can look at closures as blocks of code that you can pass around for execution. You can look at them as syntax sugar for inner classes. I think there is some significant power behind full closures that you miss when just looking at them from those perspectives.&lt;/p&gt;

&lt;p&gt;This is how you define an integer &#039;a&#039;, in Java:&lt;/p&gt;

&lt;pre&gt;int a;&lt;/pre&gt;

&lt;p&gt;This is how you define a function &#039;b&#039;, in a Java Interface:&lt;/p&gt;

&lt;pre&gt;String b(int p1, int p2);&lt;/pre&gt;

&lt;p&gt;This is how you define a closure &#039;c&#039;, according to the &lt;a href=&#034;http://www.javac.info/closures-v05.html
&#034;&gt;BGGA proposal&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;{ int, int =&amp;gt; String } c;&lt;/pre&gt;

&lt;p&gt;This defines a closure to which you pass 2 integers and it returns a String.&lt;/p&gt;

&lt;p&gt;Another closure &#039;d&#039; takes a String and returns nothing:&lt;/p&gt;

&lt;pre&gt;{ String =&amp;gt; } d;&lt;/pre&gt;

&lt;p&gt;We can provide an implementation of this closure:&lt;/p&gt;

&lt;pre&gt;
{ String =&amp;gt; } d = { String m =&gt;
    System.out.println(m);
};
&lt;/pre&gt;

&lt;p&gt;And then execute the closure like this:&lt;/p&gt;

&lt;pre&gt;d.invoke(&#034;Hello, World!&#034;);&lt;/pre&gt;

&lt;p&gt;The standard example (standard because it is the one used in the spec) looks like this:&lt;/p&gt;

&lt;pre&gt;
public static &amp;lt;T,throws E extends Exception&amp;gt;
T withLock(Lock lock, {=&amp;gt;T throws E} block) throws E {
    lock.lock();
    try {
        return block.invoke();
    } finally {
        lock.unlock();
    }
}
&lt;/pre&gt;

&lt;p&gt;This example can be made much easier to understand if we ignore exceptions and return types for a while:&lt;/p&gt;

&lt;pre&gt;
public static void withLock(Lock lock, {=&amp;gt;} block) {
    lock.lock();
    try {
        block.invoke();
    } finally {
        lock.unlock();
    }
}
&lt;/pre&gt;

&lt;p&gt;This is a method that takes a lock object and a closure. It then surrounds the execution of the closure with lock and unlock commands.&lt;/p&gt;

&lt;p&gt;Normally speaking you would use this as follows:&lt;/p&gt;

&lt;pre&gt;
withLock(lock, {=&amp;gt; System.out.println(&#034;hello&#034;); });
&lt;/pre&gt;

&lt;p&gt;However there is a special rule in the closures spec that says: If the last parameter to a method is a closure then you can write the closure outside the parameter list like this:&lt;/p&gt;

&lt;pre&gt;
withLock(lock) {
    System.out.println(&#034;hello&#034;);
}
&lt;/pre&gt;

&lt;p&gt;It&#039;s likely that we would not have needed the synchronized keyword if closures had been around in the beginning. It&#039;s also likely that a large amount of Java could have been defined in terms of closures. For example:&lt;/p&gt;

&lt;pre&gt;
public static &amp;lt;throws E extends Exception&amp;gt;
void If(boolean condition, {=&amp;gt; throws E} block) throws E {
    if (condition) {
        block.invoke();
    }
}
&lt;/pre&gt;

&lt;p&gt;You would use this function like this (note the capital I on If:&lt;/p&gt;

&lt;pre&gt;
If (a == b) {
  System.out.println(&#034;a equals b&#034;);
}
&lt;/pre&gt;

&lt;p&gt;So closures as defined by the BGGA proposal allow you to do some fairly fundamental things with the Java language.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2007/03/15/emerging_java_technologies_at_qcon.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2007/03/15/emerging_java_technologies_at_qcon.html</guid>
    <pubDate>Thu, 15 Mar 2007 13:42:19 GMT</pubDate>
  </item>
  
  </channel>
</rss>
