<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Joe Walker - dwr tag</title>
  <link>http://directwebremoting.org/blog/joe/tags/dwr/</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>Lessons from Hosting a Website</title>
    <link>http://directwebremoting.org/blog/joe/2008/07/22/lessons_from_hosting_a_website.html</link>
    
      
        <description>
          &lt;p&gt;You might have noticed that the getahead.org domain has been replaced by &lt;a href=&#034;http://directwebremoting.org/dwr/&#034;&gt;directwebremoting.org&lt;/a&gt;. There’s a story behind it ...&lt;/p&gt;

&lt;p style=&#034;float: right; margin:10px;&#034;&gt;&lt;img src=&#034;http://directwebremoting.org/images/server.png&#034; alt=&#034;picture of a server&#034;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3 years ago when DWR started to be successful, I bought 2 identical servers, built them identically with the latest Debian, and latest Drupal, bought some hosting space for one of the servers and kept the other at home as a backup with a nightly rsync, and thought I was doing a good job of managing a website.&lt;/p&gt;

&lt;p&gt;The first thing to go wrong was Drupal dropping support for several of the modules that we were using: the theme engine, and the wiki module. So we were stuck on an old version of Drupal unless we spent lots of time recreating the themes and updating all the content. Lesson: 3rd party modules are OK but don&#039;t depend on them in a big way.&lt;/p&gt;

&lt;p&gt;We realized we needed to upgrade, but it was a big job and when I &lt;a href=&#034;http://directwebremoting.org/blog/joe/2007/12/11/changes_for_dwr.html&#034;&gt;began talking&lt;/a&gt; to the &lt;a href=&#034;http://dojotoolkit.org/foundation&#034;&gt;Dojo Foundation&lt;/a&gt; about them hosting DWR and talking to &lt;a href=&#034;http://www.sitepen.com/&#034;&gt;SitePen&lt;/a&gt; about me &lt;a href=&#034;http://ajaxian.com/archives/dwr-joins-the-dojo-foundation-joe-walker-joins-sitepen&#034;&gt;working for them&lt;/a&gt;, it seemed sensible to do the upgrade when we moved to Dojo Foundation hardware.&lt;/p&gt;

&lt;p&gt;Then the backup died. Is it just me or does everyone assume that the live server will die first? We hoped that we could get everything onto the new hardware before the live server died.&lt;/p&gt;

&lt;p&gt;The bad news is, but if you buy identical bits of hardware, then there is a good chance that they will have identical failings. That proved to be true in our case and we ended up with a huge rush to get everything moved to new servers, which included a fair bit of downtime. Sorry if it affected you.&lt;/p&gt;

&lt;p&gt;I’m not sure if this is a reason to buy different hardware, where do you stop after all? Do you insist on different copper vendors for the power cable? The lesson is - if you discover a hardware fault in some part of a live site, the same thing is likely to happen to other identical hardware.&lt;/p&gt;

&lt;p&gt;The good news is that the DWR website is now back on new hardware and a new URL. &lt;a href=&#034;http://directwebremoting.org/dwr/&#034;&gt;http://directwebremoting.org/dwr/&lt;/a&gt;. We’ve tried really hard to ensure we’ve got re-directs for all URLs, but please give us a shout if you notice that anything is 404ing.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2008/07/22/lessons_from_hosting_a_website.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2008/07/22/lessons_from_hosting_a_website.html</guid>
    <pubDate>Tue, 22 Jul 2008 16:46:29 GMT</pubDate>
  </item>
  
  <item>
    <title>Commercial Support for DWR</title>
    <link>http://directwebremoting.org/blog/joe/2008/03/14/commercial_support_for_dwr.html</link>
    
      
        <description>
          &lt;a href=&#034;http://sitepen.com/&#034;&gt;&lt;img src=&#034;http://getahead.org/images/sitepen-logo.png&#034; align=&#034;right&#034; style=&#034;margin:0px 10px&#034; border=&#034;0&#034; alt=&#034;sitepen logo&#034;/&gt;&lt;/a&gt;

&lt;p&gt;Short version: &lt;a href=&#034;http://sitepen.com/services/support.php&#034;&gt;Commercial support and development assistance&lt;/a&gt; is &lt;a href=&#034;http://www.sitepen.com/blog/2008/03/13/commercial-support-now-available-from-the-co-creators-and-contributors-of-the-dojo-toolkit-dwr-and-cometd/&#034;/&gt;now available&lt;/a&gt; for &lt;a href=&#034;http://getahead.org/dwr&#034;&gt;DWR&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Long version: &lt;a href=&#034;http://sitepen.com/&#034;&gt;SitePen&lt;/a&gt; has been offering support packages for a while, but you&#039;ve had to ask. But it&#039;s now an advertised service, if you want help with Dojo, DWR or Cometd, &lt;a href=&#034;http://sitepen.com/services/support.php?packages&#034;&gt;packages start from $995&lt;/a&gt;. The &lt;a href=&#034;http://getahead.org/dwr/support&#034;&gt;DWR mailing lists&lt;/a&gt; are not going away and is still going to be a good solution for many problems, but if you need a bit more care and attention, we can now do that too.&lt;/p&gt;

&lt;p&gt;The team of people that I&#039;m working with at SitePen are awesome. Aside from the obvious &lt;a href=&#034;http://getahead.org/dwr&#034;&gt;DWR&lt;/a&gt;, &lt;a href=&#034;http://dojotoolkit.org/&#034;&gt;Dojo&lt;/a&gt; and &lt;a href=&#034;http://cometd.com/&#034;&gt;Cometd&lt;/a&gt; projects, SitePen people have also created &lt;a href=&#034;http://turbogears.org/&#034;&gt;TurboGears&lt;/a&gt;, &lt;a href=&#034;http://code.google.com/p/persevere-framework/&#034;&gt;Persevere&lt;/a&gt; and &lt;a href=&#034;http://www.jspon.org/&#034;&gt;JSPON&lt;/a&gt;, are working specs for &lt;a href=&#034;http://svn.xantus.org/shortbus/trunk/bayeux/bayeux.html&#034;&gt;Bayeux&lt;/a&gt;, &lt;a href=&#034;http://www.json.com/json-schema-proposal/&#034;&gt;JSON schema&lt;/a&gt; and &lt;a href=&#034;http://jcp.org/en/jsr/detail?id=315&#034;&gt;Servlet 3.0&lt;/a&gt;, and author &lt;a href=&#034;http://www.json.com/&#034;&gt;json.com&lt;/a&gt; and &lt;a href=&#034;http://cometdaily.com/&#034;&gt;cometdaily.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you need to know more check-out &lt;a href=&#034;http://sitepen.com/services/support.php&#034;&gt;the summary over on the SitePen site&lt;/a&gt;.&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2008/03/14/commercial_support_for_dwr.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2008/03/14/commercial_support_for_dwr.html</guid>
    <pubDate>Fri, 14 Mar 2008 11:25:36 GMT</pubDate>
  </item>
  
  <item>
    <title>InfoQ Interview</title>
    <link>http://directwebremoting.org/blog/joe/2008/03/05/infoq_interview.html</link>
    
      
        <description>
          &lt;p&gt;InfoQ interviewed me, &lt;a href=&#034;http://www.infoq.com/news/2008/03/dwr_3.0&#034;&gt;and asked&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are some of the major features planned for [DWR] version 3.0?&lt;/li&gt;
&lt;li&gt;When is 3.0 slated for release? Is it still sometime in June?&lt;/li&gt;
&lt;li&gt;What does the incremental release schedule look like before the final 3.0 release?&lt;/li&gt;
&lt;li&gt;What are the top small features or fixes in 3.0 that a developer will be thankful for?&lt;/li&gt;
&lt;li&gt;For someone who might have looked at DWR 2.0 and decided the time wasn&#039;t right, what might 3.0 provide to help &#034;make the deal&#034;?&lt;/li&gt;
&lt;li&gt;What happened to 2.1, why the jump to 3.0?&lt;/li&gt;
&lt;li&gt;What sort of impact will Tibco&#039;s role play in the future of DWR?&lt;/li&gt;
&lt;li&gt;What are the next major milestones for DWR after 3.0?&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&#034;float:right;&#034;&gt;&lt;a href=&#034;http://qcon.infoq.com/london/conference/&#034;&gt;&lt;img src=&#034;http://www.infoq.com/styles/i/qcon/qcon3_speaker11.jpg&#034; style=&#034;border:0;&#034;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;InfoQ is &lt;a href=&#034;http://www.infoq.com/about.jsp&#034;&gt;built using DWR&lt;/a&gt;, so it would be great if they could take advantage of features like automatic offline when 3.0 comes out.&lt;/p&gt;

&lt;p&gt;Taking of things &lt;strong&gt;Q&lt;/strong&gt;. Next week, I&#039;m &lt;a href=&#034;http://qcon.infoq.com/london/presentation/Interactive+websites%3A+Comet+and+DWR&#034;&gt;talking on DWR and Comet&lt;/a&gt; at &lt;a href=&#034;http://qcon.infoq.com&#034;&gt;QCon&lt;/a&gt;.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2008/03/05/infoq_interview.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2008/03/05/infoq_interview.html</guid>
    <pubDate>Wed, 05 Mar 2008 09:13:43 GMT</pubDate>
  </item>
  
  <item>
    <title>DWR + Aptana Jaxer</title>
    <link>http://directwebremoting.org/blog/joe/2008/03/04/dwr_aptana_jaxer.html</link>
    
      
        <description>
          &lt;p&gt;I&#039;ve been working with the guys from &lt;a href=&#034;http://www.aptana.com/&#034;&gt;Aptana&lt;/a&gt; for the past week or so on adapting &lt;a href=&#034;http://getahead.org/dwr&#034;&gt;DWR&lt;/a&gt; to be a remoting layer for &lt;a href=&#034;http://www.aptana.com/jaxer/&#034;&gt;Jaxer&lt;/a&gt;.&lt;/p&gt;

&lt;p style=&#034;float:right&#034;&gt;&lt;a href=&#034;http://www.aptana.com/jaxer/&#034;&gt;&lt;img src=&#034;http://getahead.org/images/jaxer-pageflow.png&#034; alt=&#034;jaxer page flow&#034; title=&#034;Jaxer&#034; border=&#034;0&#034;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jaxer is a way to run JavaScript on the server. But it&#039;s not just JavaScript as an alternative to Java/Ruby/PHP/etc. Jaxer is Mozilla, on the server, with it&#039;s face ripped off and replaced by a snorkel to serialize the DOM to a web browser. &lt;a href=&#034;http://ejohn.org/blog/server-side-javascript-with-jaxer/&#034;&gt;John has a great introduction&lt;/a&gt;, or there&#039;s the &lt;a href=&#034;http://ajaxian.com/archives/audible-ajax-episode-24-aptana-jaxer-talk&#034;&gt;podcast that Ajaxian did&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The vision with DWR was always to say: We&#039;ve got Javascript in the browser, and Java on the server - lets connect them in the best possible way. This leads to the migration of view logic from the server to the client. But it&#039;s not safe to move it all; Validation is part of view logic, but that needs to be done on the server. With Jaxer you can specify scripts to be &lt;code&gt;runat=&#034;server&#034;&lt;/code&gt; or &lt;code&gt;runat=&#034;both&#034;&lt;/code&gt; to allow validation or other logic to be run in both places.&lt;/p&gt;

&lt;p&gt;Some of the changes that we&#039;ve made to DWR will only help you if you are using DWR inside Jaxer, but others could be generally useful.&lt;/p&gt;

&lt;p&gt;There are 2 basic changes. DWR on the Internet needs to make sure that the Internet only touches the code that you want it to touch. DWR in Jaxer doesn&#039;t have this problem because it&#039;s not accessible from the Internet, so we can do away with almost all configuration. Secondly latency inside a server-room is tiny compared with the net, which makes synchronous XHR viable.&lt;/p&gt;

&lt;p&gt;So as it stands at the moment in development, you can use DWR inside Jaxer like this (clearly this is subject to change):&lt;/p&gt;

&lt;pre&gt;
&amp;lt;&lt;span style=&#039;color:#800;&#039;&gt;script&lt;/span&gt; &lt;span style=&#039;color:#880;&#039;&gt;type&lt;/span&gt;=&lt;span style=&#039;color:#080;&#039;&gt;&#039;text/javascript&#039;&lt;/span&gt; &lt;span style=&#039;color:#880;&#039;&gt;runat&lt;/span&gt;=&lt;span style=&#039;color:#080;&#039;&gt;&#034;server&#034;&lt;/span&gt;&amp;gt;
Jaxer.dwr.pathToDwrServlet = &lt;span style=&#039;color:#080;&#039;&gt;&#034;http://localhost:8080/demoServer/dwr&#034;&lt;/span&gt;;
Jaxer.dwr.require(&lt;span style=&#039;color:#080;&#039;&gt;&#034;util&#034;&lt;/span&gt;, &lt;span style=&#039;color:#080;&#039;&gt;&#034;new/org.example.Demo&#034;&lt;/span&gt;);

&lt;span style=&#039;color:#00A;&#039;&gt;function&lt;/span&gt; loadServer() {
  &lt;span style=&#039;color:#00A;&#039;&gt;var&lt;/span&gt; data = Demo.getData();
  dwr.util.setValue(&lt;span style=&#039;color:#080;&#039;&gt;&#039;fillFromServer&#039;&lt;/span&gt;, data);
}
&amp;lt;/&lt;span style=&#039;color:#800;&#039;&gt;script&lt;/span&gt;&amp;gt;
&lt;/pre&gt;

&lt;p&gt;There are a number of benefits that come out of this even if you&#039;re not using Jaxer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In dwr.xml you needed to specify javascript=&#039;ScriptName&#039;. If (as is common) ScriptName == Class.getShortName then you can just drop the attribute, it will default properly.&lt;/li&gt;
&lt;li&gt;Cross domain remoting is now automatically detected, and scriptTag remoting is used if needed.&lt;/li&gt;
&lt;li&gt;There is a new init-param &#039;useAbsolutePaths&#039; which might help people with trouble remapping DWR&#039;s location.&lt;/li&gt;
&lt;li&gt;All URLs are now reconfigurable.&lt;/li&gt;
&lt;li&gt;If you are using DWR in synchronous mode (which I don&#039;t recommend on the Internet) then you can use returned data in the normal way without needing a callback.&lt;/li&gt;
&lt;/ul&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2008/03/04/dwr_aptana_jaxer.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2008/03/04/dwr_aptana_jaxer.html</guid>
    <pubDate>Tue, 04 Mar 2008 14:29:07 GMT</pubDate>
  </item>
  
  <item>
    <title>IWebMvc Preview</title>
    <link>http://directwebremoting.org/blog/joe/2008/03/04/iwebmvc_preview.html</link>
    
      
        <description>
          &lt;p&gt;Jose Noheda has released a preview of a &lt;a href=&#034;http://code.google.com/p/internna/&#034;&gt;library that glues together&lt;/a&gt; DWR, Dojo, Spring and Hibernate/JPA. It&#039;s a 0.1 release and he&#039;s &lt;a href=&#034;http://internna.blogspot.com/2008/03/iwebmvc-first-preview-version-available.html&#034;&gt;looking for feedback&lt;/a&gt;.&lt;/p&gt;

&lt;img src=&#034;http://getahead.org/images/iwebmvc-screenshot.png&#034;/&gt;

&lt;p&gt;Despite the name, it&#039;s not really another Web MVC framework, but more along the lines of AppFuse or Grails, as a way to kick-start a project and provide some sensible defaults without needing to learn everything from scratch.&lt;/p&gt;

&lt;p&gt;The source and release notes say it needs 1.6, so Mac heads will need to get the Apple Java6 preview.&lt;/p&gt;

&lt;p&gt;Jose&#039;s aims:&lt;/p&gt;

&lt;p class=&#034;quote&#034;&gt;In my mind what I really needed was a platform that:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Is based on Java&lt;/b&gt;
&lt;br&gt;Although supporting Groovy / JRuby is a plus&lt;/li&gt;&lt;li&gt;&lt;b&gt;Helps me to kick start a project&lt;/b&gt;
&lt;br&gt;But simplifying the process by giving me the best (and this can be tricky) set of frameworks for each task&lt;/li&gt;&lt;li&gt;&lt;b&gt;Integrates both server and client sides&lt;/b&gt;
&lt;br&gt;And it&#039;s lightweight, robust and extensible. Read &lt;i&gt;enterprise quality&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Supports all the common tasks a web app has to handle&lt;/b&gt;
&lt;br&gt;I include here: User Management, CRUD operations, i18n support (both framework &amp;amp; data), AJAX and astounding visuals&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;Jose has done some brilliant work on DWR. He created a large chunk of our binary file support, and is currently the Spring integration maintainer, so it might be worth a &lt;a href=&#034;http://code.google.com/p/internna/downloads/list&#034;&gt;download&lt;/a&gt; to see if it can help you.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://directwebremoting.org/blog/joe/2008/03/04/iwebmvc_preview.html#comments</comments>
    <guid isPermaLink="true">http://directwebremoting.org/blog/joe/2008/03/04/iwebmvc_preview.html</guid>
    <pubDate>Tue, 04 Mar 2008 13:16:21 GMT</pubDate>
  </item>
  
  </channel>
</rss>
