<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0' 
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     xmlns:doap="http://usefulinc.com/ns/doap#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <channel>
        <!-- This XML Feed shows details for the page barcamp 
             and everything recently tagged barcamp -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>barcamp on SWiK</title>
        <doap:name>barcamp</doap:name>
        <doap:description>&lt;p&gt;&lt;span class="caps"&gt;FOO&lt;/span&gt; Camp happens every year, it is an invite-only event for tech luminaries hosted in Sebastopol, CA at the O’Reilly headquarters. People camp out, have sessions, and work with other great tech minds to come up with awesome ideas. The problem is the exclusivity: everybody isn’t invited.
&lt;br/&gt;&lt;br/&gt;
Meet &lt;span class="caps"&gt;BAR&lt;/span&gt; Camp, an open, welcoming, once-a-year event for geeks to camp out for a couple days with wifi and smash their brains together. It’s about love and geekery and having a focal point for great ideas, like &lt;span class="caps"&gt;SHDH&lt;/span&gt; more in-tents (GET IT?!), like &lt;span class="caps"&gt;FOO&lt;/span&gt; but open.&lt;/p&gt;
</doap:description>
        <description>FOO Camp happens every year, it is an invite-only event for tech luminaries hosted in Sebastopol, CA at the O’Reilly headquarters. People camp out, have sessions, and work with other great tech minds to come up with awesome ideas. The problem is the exclusivity: everybody isn’t invited.

Meet BAR Camp, an open, welcoming, once-a-year event for geeks to camp out for a couple days with wifi and smash their brains together. It’s about love and geekery and having a focal point for great ideas,</description> 
	  <!-- see doap:description for full description -->
        <link>http://swik.net/barcamp</link>
        <doap:homepage>http://barcamp.org/</doap:homepage>
                <category>barcamp</category>
        <category>foocamp</category>

        <pubDate>Fri, 19 Aug 2005 12:42:39 -0700</pubDate>
        <lastBuildDate>Fri, 19 Aug 2005 12:51:00 -0700</lastBuildDate>
            
        <item>
            <title>Bar Camp Vancouver 2008</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Bar+Camp+Vancouver+2008/cdny7</link>
            <description></description>
            
            <pubDate>Wed, 03 Sep 2008 21:57:23 -0700</pubDate>
        </item>
            
        <item>
            <title>SuperHappyDevHouse wiki - Welcome to DevHouse! The wiki passwor...</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/SuperHappyDevHouse+wiki+-+Welcome+to+DevHouse%21+The+wiki+passwor.../cdi9q</link>
            <description></description>
            
            <pubDate>Tue, 02 Sep 2008 18:58:10 -0700</pubDate>
        </item>
            
        <item>
            <title>discovered BarCamp wiki - Big list of upcoming barcamps worldwide. I&#039;ll try to follow some of their online coverage</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/discovered+BarCamp+wiki+-+Big+list+of+upcoming+barcamps+worldwide.+I%27ll+try+to+follow+some+of+their+online+coverage/cc29a</link>
            <description></description>
            
            <pubDate>Fri, 29 Aug 2008 00:56:36 -0700</pubDate>
        </item>
            
        <item>
            <title>[from bushwald] SocialMediaCampAustin - July 30, 2008 from 10AM to 4PM</title>
            <link>http://swik.net/User:jeyrb/del.icio.us%2Fnetwork%2Fjey/%5Bfrom+bushwald%5D+SocialMediaCampAustin+-+July+30%2C+2008+from+10AM+to+4PM/cbgvq</link>
            <description>Hey, barcamp in Austin next week. Check it out!</description>
            
            <pubDate>Fri, 25 Jul 2008 06:55:47 -0700</pubDate>
        </item>
            
        <item>
            <title>[from bushwald] StartupCampAustin - August 2nd, Noon to 8 pm.</title>
            <link>http://swik.net/User:jeyrb/del.icio.us%2Fnetwork%2Fjey/%5Bfrom+bushwald%5D+StartupCampAustin+-+August+2nd%2C+Noon+to+8+pm./cadvy</link>
            <description></description>
            
            <pubDate>Tue, 15 Jul 2008 09:52:50 -0700</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./b9xp3</link>
            <description></description>
            
            <pubDate>Thu, 10 Jul 2008 21:53:14 -0700</pubDate>
        </item>
            
        <item>
            <title>halifaxpodcamp2008 wiki</title>
            <link>http://swik.net/podcasting/del.icio.us+tag%2Fpodcasting/halifaxpodcamp2008+wiki/b846h</link>
            <description></description>
            
            <pubDate>Thu, 03 Jul 2008 07:47:55 -0700</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./b8hbt</link>
            <description></description>
            
            <pubDate>Thu, 26 Jun 2008 14:56:35 -0700</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./b5v2r</link>
            <description></description>
            
            <pubDate>Mon, 26 May 2008 16:18:11 -0700</pubDate>
        </item>
            
        <item>
            <title>Come to beCamp 2008</title>
            <link>http://swik.net/MySQL/Planet+MySQL/Come+to+beCamp+2008/b4s4j</link>
            <description>&lt;p&gt;I&amp;#8217;m going to be at &lt;a href=&quot;http://barcamp.org/beCamp2008&quot;&gt;beCamp 2008&lt;/a&gt;, the followup to the first beCamp, which I sadly missed.&lt;/p&gt;

&lt;p&gt;beCamp is a BarCamp un-conference.  Tonight was about meeting, greeting, and throwing ideas at the wall to see which ones stick.  Literally.  We stuck pieces of paper on the wall with our ideas &amp;#8212; things we can either talk about or want to hear about &amp;#8212; and then scratched our votes on them to see which are popular.&lt;/p&gt;

&lt;p&gt;I live and breathe MySQL for a decent part of the day, so I hesitated, but then stuck &amp;#8220;MySQL Performance&amp;#8221; on the wall.  It got quite a few votes, so I assume will be giving a talk on MySQL performance basics at some point during the conference.  (The exact schedule is probably being determined right now, in my absence, but I&amp;#8217;m so tired right now that I&amp;#8217;ll just take my chances on it not being at 8:00 AM tomorrow.) [edit: I just checked the website and there won&amp;#8217;t be anything before 9:00, and the schedule is determined tomorrow.  I did say I&amp;#8217;m tired, right?]&lt;/p&gt;

&lt;p&gt;See you there!&lt;/p&gt;

&lt;p&gt;PS: if you want to meet some of my colleagues from my former employer, the &lt;a href=&quot;http://www.rimmkaufman.com/&quot;&gt;Rimm-Kaufman Group&lt;/a&gt;, they&amp;#8217;ll be there too, wearing the &amp;#8220;We&amp;#8217;re Hiring&amp;#8221; t-shirts.  &lt;a href=&quot;http://www.rkgjobs.com/&quot;&gt;They&amp;#8217;re hiring&lt;/a&gt;, by the way.&lt;/p&gt;&lt;a href=&quot;http://www.xaprb.com/blog/tag/barcamp/&quot; rel=&quot;tag&quot;&gt;BarCamp&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/becamp/&quot; rel=&quot;tag&quot;&gt;beCamp&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/becamp2008/&quot; rel=&quot;tag&quot;&gt;beCamp2008&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/mysql/&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/rimm-kaufman-group/&quot; rel=&quot;tag&quot;&gt;Rimm Kaufman Group&lt;/a&gt;</description>
            
            <pubDate>Fri, 02 May 2008 18:10:53 -0700</pubDate>
        </item>
            
        <item>
            <title>BIL Conference - Minds Set Free.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BIL+Conference+-+Minds+Set+Free./b4jey</link>
            <description>BIL vs TED</description>
            
            <pubDate>Mon, 21 Apr 2008 21:25:44 -0700</pubDate>
        </item>
            
        <item>
            <title>Slides from barCamp Copenhagen 2008</title>
            <link>http://swik.net/OutPost/C%23+Edge+-+Outpost+Blog/Slides+from+barCamp+Copenhagen+2008/b3vf5</link>
            <description>&lt;p&gt;Here are the slides and the transcript of my presentation at barCamp Copenhagen 2008. The presentation was held in Danish, so I&#039;ve translated the slides and the transcript into English.&lt;/p&gt;

&lt;h2&gt;Transcript&lt;/h2&gt;

&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_1.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;Hi, my name is Troels, I work for a company called beaconware. 
&lt;/p&gt;&lt;p&gt;I primarily work with .net technology and web development.
&lt;/p&gt;&lt;p&gt;I would like to tell you about ajax and about how you go from ajax to hijax to indirect ajax.
&lt;/p&gt;&lt;p&gt;I&#039;ll round this session of with a demo about how indirect ajax works.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_2.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;There are a lot of definitions of what ajax is. A simple definition would be: 
&lt;/p&gt;&lt;p&gt;&quot;Ajax is the ability to update a part of the page instead of the whole page.&quot; 
&lt;/p&gt;&lt;p&gt;It may not sound overwhelming.
&lt;/p&gt;&lt;p&gt;The strength lies in the ability to call the server asynchronously without reloading the page. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_3.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;An example could be an explorer in a CMS with folders that you can expand to reveal documents and sub folders. 
&lt;/p&gt;&lt;p&gt;You could achieve this with ajax by attaching a handler on the click event. 
&lt;/p&gt;&lt;p&gt;The handler would call a web service asynchronously to get a data representation of the contents of the folder. 
&lt;/p&gt;&lt;p&gt;Then it would add graphics needed for documents and sub folders to the document structure below the expanded folder. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_4.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The great challenge in programming ajax is to make it work in all browsers.
&lt;/p&gt;&lt;p&gt;It&#039;s difficult and the end user must often download huge scripts to make it work. 
&lt;/p&gt;&lt;p&gt;Browsers in cell phones has extra difficulties with ajax because they don&#039;t have full dynamic html support. 
&lt;/p&gt;&lt;p&gt;If you make your web application depend on ajax, then you have to realize that there will be end users 
&lt;/p&gt;&lt;p&gt;who are unable to use it, either because of their browsers or because of other accesibility concerns. 
&lt;/p&gt;&lt;p&gt;That&#039;s why it&#039;s so important to make sure that the ajax application degrades gracefully, which means that beneath
&lt;/p&gt;&lt;p&gt;all the fancy web 2.0 fireworks there&#039;s a fully functional web 1.0 document to fall-back on. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_5.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;This is where hijax gets into play. 
&lt;/p&gt;&lt;p&gt;Hijax is a method that reminds you of how you achieve separation of layout from document structure by using css files.
&lt;/p&gt;&lt;p&gt;With hijax you achieve separation of ajax from the document structure. 
&lt;/p&gt;&lt;p&gt;The procedure is to start by developing a fully functional web 1.0 document by using forms and links. 
&lt;/p&gt;&lt;p&gt;Then you hijack the form&#039;s &quot;onsubmit&quot; event and the link&#039;s &quot;onclick&quot; event by using unobtrusive Javascript.
&lt;/p&gt;&lt;p&gt;That means Javascript that automatically disables itself in a down-level browser.
&lt;/p&gt;&lt;p&gt;So, if the browser doesn&#039;t live up to the requirements for ajax then the application reverts to web 1.0 behaviour.
&lt;/p&gt;&lt;p&gt;When a form&#039;s onsubmit event has been hijacked and it gets intercepted then an asynchronous call is made to a web service on the server. 
&lt;/p&gt;&lt;p&gt;The server returns the requested html fragment and the client updates the DOM. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_6.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The technique used here is also called AHAH which stands for Asynchronous Html And Http. You can find it on microformats.org. 
&lt;/p&gt;&lt;p&gt;Hijax requires that you in your server code is able to separate the output into those html fragments that you want to update separately on the client. 
&lt;/p&gt;&lt;p&gt;So you need a really flexible server API that can return parts of the page by request. 
&lt;/p&gt;&lt;p&gt;It can seem as a comprehensive task to make your web application ready for this and it is, especially if you don&#039;t do it from the beginning. 
&lt;/p&gt;&lt;p&gt;You will have to create web services that you can call and a way of telling them which part of which page that you want html returned for.
&lt;/p&gt;&lt;p&gt;Not to mention thinking up a way of handling actions and events on the server. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_7.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;That is why some people gone a step further and invented indirect ajax. 
&lt;/p&gt;&lt;p&gt;Indirect ajax automates the process of hijaxing a form. 
&lt;/p&gt;&lt;p&gt;It hijacks all events and communicates with the server through a proxy. 
&lt;/p&gt;&lt;p&gt;The proxy receives enough information to execute the http request that would have been executed if the event hadn&#039;t been intercepted. 
&lt;/p&gt;&lt;p&gt;The only difference is that the call is executed locally on the server and a lot faster. 
&lt;/p&gt;&lt;p&gt;The html document that is returned by this call is stored in memory on the server to be compared with the html document returned by the next call.
&lt;/p&gt;&lt;p&gt;So, on every request the current document is compared to the previous document. 
&lt;/p&gt;&lt;p&gt;The comparison results in a difference. This difference consists of a number of html fragments together with information about where they belong in the document structure. 
&lt;/p&gt;&lt;p&gt;This information is sent back to the client that now updates the document structure. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_8.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;On the screen it looks like the browser executes a normal post back. It&#039;s just quicker, because:
&lt;/p&gt;&lt;p&gt;-  The traffic to and from the server has been minimized.
&lt;/p&gt;&lt;p&gt; - and because the call is executed locally on the server
&lt;/p&gt;&lt;p&gt;- and because it doesn&#039;t require the whole page to be reloaded.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_9.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;Now I want to show you a couple of demoes of an indirect ajax framework.
&lt;/p&gt;&lt;p&gt;It&#039;s an open source project that I have developed for .net and it&#039;s called OutPost.
&lt;/p&gt;&lt;p&gt;You can try out or download the demo from http://hijax.net/OutPost.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_10.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The first demo is inspired by Google Suggest which is a really classic ajax tool.
&lt;/p&gt;&lt;p&gt;As you type in words in the search field the suggestions for search terms are shown below based on searches of other users.
&lt;/p&gt;&lt;p&gt;I twisted it and made a Farber Suggest application based on the hilarious turns of phrases of David Farber.
&lt;/p&gt;&lt;p&gt;Here you type in an English word and then a number of matching farberisms are shown below.
&lt;/p&gt;&lt;p&gt;Let&#039;s try... 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_11.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The other demo is a simple explorer that shows folders and documents in a CMS. 
&lt;/p&gt;&lt;p&gt;You can click on a folder to expand it. 
&lt;/p&gt;&lt;p&gt;You can also collapse the folder again by clicking on it. 
&lt;/p&gt;&lt;p&gt;In the background I have a program called Fiddler running. It logs the traffic between client and server.
&lt;/p&gt;&lt;p&gt;As you can see the server sends about 8kb back on every request.
&lt;/p&gt;&lt;p&gt;Now  I enable OutPost.
&lt;/p&gt;&lt;p&gt;And run the demo again.
&lt;/p&gt;&lt;p&gt;Looking at the source code you can see that some details in the html code has changed to make OutPost able to hijack the events that normally gets the browser to reload the page. 
&lt;/p&gt;&lt;p&gt;Then we expand the folder... And expand the sub folder...
&lt;/p&gt;&lt;p&gt;And then we switch to Fiddler again. 
&lt;/p&gt;&lt;p&gt;As you can see the amount of traffic is now about 10 times smaller. 
&lt;/p&gt;&lt;p&gt;This is partly a result of zipping the traffic. So, we use Fiddler to unzip it. 
&lt;/p&gt;&lt;p&gt;And if we dive deeper in to see the data itself we can see that it&#039;s not a full document that&#039;s returned to the client. 
&lt;/p&gt;&lt;p&gt;The client receives commands that the OutPost client framework understands and uses to update the document structure with. 
&lt;/p&gt;&lt;p&gt;As an example one command means &quot;replace this image with this&quot; and another means &quot;delete this table&quot;. 
&lt;/p&gt;</description>
            
            <pubDate>Sun, 23 Mar 2008 14:47:51 -0700</pubDate>
        </item>
            
        <item>
            <title>Slides from barCamp Copenhagen 2008</title>
            <link>http://swik.net/OutPost/C%23+Edge+-+Outpost+Blog/Slides+from+barCamp+Copenhagen+2008/b3u35</link>
            <description>&lt;p&gt;Here are the slides and the transcript of my presentation at barCamp Copenhagen 2008. The presentation was held in Danish, so I&#039;ve translated the slides and the transcript into English.&lt;/p&gt;

&lt;h2&gt;Transcript&lt;/h2&gt;

&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_1.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;Hi, my name is Troels, I work for a company called beaconware. 
&lt;/p&gt;&lt;p&gt;I primarily work with .net technology and web development.
&lt;/p&gt;&lt;p&gt;I would like to tell you about ajax and about how you go from ajax to hijax to indirect ajax.
&lt;/p&gt;&lt;p&gt;I&#039;ll round this session of with a demo about how indirect ajax works.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_2.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;There are a lot of definitions of what ajax is. A simple definition would be: 
&lt;/p&gt;&lt;p&gt;&quot;Ajax is the ability to update a part of the page instead of the whole page.&quot; 
&lt;/p&gt;&lt;p&gt;It may not sound overwhelming.
&lt;/p&gt;&lt;p&gt;The strength lies in the ability to call the server asynchronously without reloading the page. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_3.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;An example could be an explorer in a CMS with folders that you can expand to reveal documents and sub folders. 
&lt;/p&gt;&lt;p&gt;You could achieve this with ajax by attaching a handler on the click event. 
&lt;/p&gt;&lt;p&gt;The handler would call a web service asynchronously to get a data representation of the contents of the folder. 
&lt;/p&gt;&lt;p&gt;Then it would add graphics needed for documents and sub folders to the document structure below the expanded folder. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_4.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The great challenge in programming ajax is to make it work in all browsers.
&lt;/p&gt;&lt;p&gt;It&#039;s difficult and the end user must often download huge scripts to make it work. 
&lt;/p&gt;&lt;p&gt;Browsers in cell phones has extra difficulties with ajax because they don&#039;t have full dynamic html support. 
&lt;/p&gt;&lt;p&gt;If you make your web application depend on ajax, then you have to realize that there will be end users 
&lt;/p&gt;&lt;p&gt;who are unable to use it, either because of their browsers or because of other accesibility concerns. 
&lt;/p&gt;&lt;p&gt;That&#039;s why it&#039;s so important to make sure that the ajax application degrades gracefully, which means that beneath
&lt;/p&gt;&lt;p&gt;all the fancy web 2.0 fireworks there&#039;s a fully functional web 1.0 document to fall-back on. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_5.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;This is where hijax gets into play. 
&lt;/p&gt;&lt;p&gt;Hijax is a method that reminds you of how you achieve separation of layout from document structure by using css files.
&lt;/p&gt;&lt;p&gt;With hijax you achieve separation of ajax from the document structure. 
&lt;/p&gt;&lt;p&gt;The procedure is to start by developing a fully functional web 1.0 document by using forms and links. 
&lt;/p&gt;&lt;p&gt;Then you hijack the form&#039;s &quot;onsubmit&quot; event and the link&#039;s &quot;onclick&quot; event by using unobtrusive Javascript.
&lt;/p&gt;&lt;p&gt;That means Javascript that automatically disables itself in a down-level browser.
&lt;/p&gt;&lt;p&gt;So, if the browser doesn&#039;t live up to the requirements for ajax then the application reverts to web 1.0 behaviour.
&lt;/p&gt;&lt;p&gt;When a form&#039;s onsubmit event has been hijacked and it gets intercepted then an asynchronous call is made to a web service on the server. 
&lt;/p&gt;&lt;p&gt;The server returns the requested html fragment and the client updates the DOM. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_6.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The technique used here is also called AHAH which stands for Asynchronous Html And Http. You can find it on microformats.org. 
&lt;/p&gt;&lt;p&gt;Hijax requires that you in your server code is able to separate the output into those html fragments that you want to update separately on the client. 
&lt;/p&gt;&lt;p&gt;So you need a really flexible server API that can return parts of the page by request. 
&lt;/p&gt;&lt;p&gt;It can seem as a comprehensive task to make your web application ready for this and it is, especially if you don&#039;t do it from the beginning. 
&lt;/p&gt;&lt;p&gt;You will have to create web services that you can call and a way of telling them which part of which page that you want html returned for.
&lt;/p&gt;&lt;p&gt;Not to mention thinking up a way of handling actions and events on the server. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_7.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;That is why some people gone a step further and invented indirect ajax. 
&lt;/p&gt;&lt;p&gt;Indirect ajax automates the process of hijaxing a form. 
&lt;/p&gt;&lt;p&gt;It hijacks all events and communicates with the server through a proxy. 
&lt;/p&gt;&lt;p&gt;The proxy receives enough information to execute the http request that would have been executed if the event hadn&#039;t been intercepted. 
&lt;/p&gt;&lt;p&gt;The only difference is that the call is executed locally on the server and a lot faster. 
&lt;/p&gt;&lt;p&gt;The html document that is returned by this call is stored in memory on the server to be compared with the html document returned by the next call.
&lt;/p&gt;&lt;p&gt;So, on every request the current document is compared to the previous document. 
&lt;/p&gt;&lt;p&gt;The comparison results in a difference. This difference consists of a number of html fragments together with information about where they belong in the document structure. 
&lt;/p&gt;&lt;p&gt;This information is sent back to the client that now updates the document structure. 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_8.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;On the screen it looks like the browser executes a normal post back. It&#039;s just quicker, because:
&lt;/p&gt;&lt;p&gt;-  The traffic to and from the server has been minimized.
&lt;/p&gt;&lt;p&gt; - and because the call is executed locally on the server
&lt;/p&gt;&lt;p&gt;- and because it doesn&#039;t require the whole page to be reloaded.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_9.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;Now I want to show you a couple of demoes of an indirect ajax framework.
&lt;/p&gt;&lt;p&gt;It&#039;s an open source project that I have developed for .net and it&#039;s called OutPost.
&lt;/p&gt;&lt;p&gt;You can try out or download the demo from http://hijax.net/OutPost.
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_10.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The first demo is inspired by Google Suggest which is a really classic ajax tool.
&lt;/p&gt;&lt;p&gt;As you type in words in the search field the suggestions for search terms are shown below based on searches of other users.
&lt;/p&gt;&lt;p&gt;I twisted it and made a Farber Suggest application based on the hilarious turns of phrases of David Farber.
&lt;/p&gt;&lt;p&gt;Here you type in an English word and then a number of matching farberisms are shown below.
&lt;/p&gt;&lt;p&gt;Let&#039;s try... 
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img width=&quot;100%&quot; alt=&quot;&quot; src=&quot;http://hijax.net/barcampcopenhagen2008/032208_2304_11.png&quot;/&gt;
   &lt;/p&gt;&lt;p&gt;The other demo is a simple explorer that shows folders and documents in a CMS. 
&lt;/p&gt;&lt;p&gt;You can click on a folder to expand it. 
&lt;/p&gt;&lt;p&gt;You can also collapse the folder again by clicking on it. 
&lt;/p&gt;&lt;p&gt;In the background I have a program called Fiddler running. It logs the traffic between client and server.
&lt;/p&gt;&lt;p&gt;As you can see the server sends about 8kb back on every request.
&lt;/p&gt;&lt;p&gt;Now  I enable OutPost.
&lt;/p&gt;&lt;p&gt;And run the demo again.
&lt;/p&gt;&lt;p&gt;Looking at the source code you can see that some details in the html code has changed to make OutPost able to hijack the events that normally gets the browser to reload the page. 
&lt;/p&gt;&lt;p&gt;Then we expand the folder... And expand the sub folder...
&lt;/p&gt;&lt;p&gt;And then we switch to Fiddler again. 
&lt;/p&gt;&lt;p&gt;As you can see the amount of traffic is now about 10 times smaller. 
&lt;/p&gt;&lt;p&gt;This is partly a result of zipping the traffic. So, we use Fiddler to unzip it. 
&lt;/p&gt;&lt;p&gt;And if we dive deeper in to see the data itself we can see that it&#039;s not a full document that&#039;s returned to the client. 
&lt;/p&gt;&lt;p&gt;The client receives commands that the OutPost client framework understands and uses to update the document structure with. 
&lt;/p&gt;&lt;p&gt;As an example one command means &quot;replace this image with this&quot; and another means &quot;delete this table&quot;. 
&lt;/p&gt;</description>
            
            <pubDate>Sat, 22 Mar 2008 16:47:24 -0700</pubDate>
        </item>
            
        <item>
            <title>Mayflower Barcamp: Developing a PHP extension for Skype</title>
            <link>http://swik.net/PHP/ThinkPHP+%2Fdev%2Fblog+-+PHP/Mayflower+Barcamp%3A+Developing+a+PHP+extension+for+Skype/b3pye</link>
            <description>
    At the Mayflower Barcamp a few weeks ago we had a very interesting and promising project: Develop a PHP extension for communication with Skype. Actually, this project was a merge between two projects: One was to &quot;develop a PHP extension&quot; - five out of six project members never had written any PHP extension or did any PHP core development before. The other project was the Skype extension, with the goal to have a new PHP function that could send a chat message to a given Skype profile. &lt;br/&gt;&lt;a href=&quot;http://blog.thinkphp.de/archives/309-Mayflower-Barcamp-Developing-a-PHP-extension-for-Skype.html#extended&quot;&gt;Continue reading &quot;Mayflower Barcamp: Developing a PHP extension for Skype&quot;&lt;/a&gt;
    </description>
            
            <pubDate>Mon, 17 Mar 2008 04:44:34 -0700</pubDate>
        </item>
            
        <item>
            <title>Mayflower Barcamp</title>
            <link>http://swik.net/MySQL/Planet+MySQL/Mayflower+Barcamp/b2utk</link>
            <description>&lt;p&gt;
Since 2005, every year we have done some kind of &quot;Mayflower weekend&quot;. As we&#039;re a bit of a distributed company (departments in Munich and Würzburg, called Herbipolis, several &quot;on-site departments&quot; at some of our biggest customers, an offshore department in beautiful Argentinia and since 2007 a sister company called &lt;a href=&quot;http://www.sektioneins.com/&quot;&gt;SektionEins&lt;/a&gt; located at Cologne watching out for Web Security) it&#039;s always fun packing the crowd together and putting them into a hotel somewhere in Germany (or Barcelona, Spain in 2006 and Budapest, Hungary in 2007). If you followed &lt;a href=&quot;http://wolfram.kriesing.de/blog/index.php/2008/mayflower-barcamp-awesome&quot;&gt;Wolfram&#039;s blog&lt;/a&gt; you noticed that we also had some external guests (if you need a Dojo freelancer, I recommend hiring Wolfram although he&#039;s a Pythoneer ;-) ) alongside the camp. The event was located at the hotel &lt;a href=&quot;http://www.gut-moierhof.de/&quot;&gt;&quot;Moierhof&quot;&lt;/a&gt; where I also survived successfully the tasting of hard liquor (Moierhof has its own liquor distillery, holy sh**). With our headcount reaching 50 (and growing fast beyond), the event was packed full with the whole Mayflower crowd.
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Nevertheless, the crowd organised itself into several groups and tried to create some fine piece of software within two days. Some of the projects included:
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;developing a PHP5 extension for Skype messaging&lt;/li&gt;
&lt;li&gt;developing Dojo pijit dijit components (as you can &lt;a href=&quot;http://blog.thinkphp.de/archives/291-Pijits-Ein-neues-Dojo-Theme-und-mehr....html&quot;&gt;read here&lt;/a&gt;, it seems that the pijit theme will be integrated into the official Dojo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phprojekt.com/&quot;&gt;PHProjekt&lt;/a&gt; V6 AJAX client based on Dojo&lt;/li&gt;
&lt;li&gt;playing with the &lt;a href=&quot;http://blog.thinkphp.de/archives/293-Playing-arround-with-the-MySQL-Proxy-on-Mayflower-barcamp.html&quot;&gt;MySQL Proxy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hackme / MyPwn: a flirt community software that contains nearly every web security vulnerability (SQL injections, XSS, information disclosure, ...) you can imagine&lt;/li&gt;
&lt;li&gt;extensions for &lt;a href=&quot;http://www.phpmyfaq.de/&quot;&gt;phpMyFAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LDAP contact management (for PHProjekt) recognizing duplicate addresses&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chorizo-scanner.com/&quot;&gt;Chorizo&lt;/a&gt; robot - recording scanning sessions and repeat them continuously&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Some of the project teams will release more information soon. 
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Personally, we would like to thank every single &quot;Maiblümchen&quot; for being a part of our company. It&#039;s great to see what the group can achieve. &lt;strong&gt;You&#039;re real rock stars!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Are you a (senior) rock star and want to join the &quot;Maiblümchen&quot; fame? &lt;a href=&quot;mailtobewerbung@mayflower.de&quot;&gt;Tell us via e-mail&lt;/a&gt;!</description>
            
            <pubDate>Wed, 13 Feb 2008 12:44:54 -0800</pubDate>
        </item>
            
        <item>
            <title>Mayflower Barcamp</title>
            <link>http://swik.net/PHP/ThinkPHP+%2Fdev%2Fblog+-+PHP/Mayflower+Barcamp/b2uoz</link>
            <description>
    &lt;p&gt;
Since 2005, every year we have done some kind of &quot;Mayflower weekend&quot;. As we&#039;re a bit of a distributed company (departments in Munich and Würzburg, called Herbipolis, several &quot;on-site departments&quot; at some of our biggest customers, an offshore department in beautiful Argentinia and since 2007 a sister company called &lt;a href=&quot;http://www.sektioneins.com/&quot;&gt;SektionEins&lt;/a&gt; located at Cologne watching out for Web Security) it&#039;s always fun packing the crowd together and putting them into a hotel somewhere in Germany (or Barcelona, Spain in 2006 and Budapest, Hungary in 2007). If you followed &lt;a href=&quot;http://wolfram.kriesing.de/blog/index.php/2008/mayflower-barcamp-awesome&quot;&gt;Wolfram&#039;s blog&lt;/a&gt; you noticed that we also had some external guests (if you need a Dojo freelancer, I recommend hiring Wolfram although he&#039;s a Pythoneer ;-) ) alongside the camp. The event was located at the hotel &lt;a href=&quot;http://www.gut-moierhof.de/&quot;&gt;&quot;Moierhof&quot;&lt;/a&gt; where I also survived successfully the tasting of hard liquor (Moierhof has its own liquor distillery, holy sh**). With our headcount reaching 50 (and growing fast beyond), the event was packed full with the whole Mayflower crowd.
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Nevertheless, the crowd organised itself into several groups and tried to create some fine piece of software within two days. Some of the projects included:
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;developing a PHP5 extension for Skype messaging&lt;/li&gt;
&lt;li&gt;developing Dojo pijit dijit components (as you can &lt;a href=&quot;http://blog.thinkphp.de/archives/291-Pijits-Ein-neues-Dojo-Theme-und-mehr....html&quot;&gt;read here&lt;/a&gt;, it seems that the pijit theme will be integrated into the official Dojo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phprojekt.com/&quot;&gt;PHProjekt&lt;/a&gt; V6 AJAX client based on Dojo&lt;/li&gt;
&lt;li&gt;playing with the &lt;a href=&quot;http://blog.thinkphp.de/archives/293-Playing-arround-with-the-MySQL-Proxy-on-Mayflower-barcamp.html&quot;&gt;MySQL Proxy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hackme / MyPwn: a flirt community software that contains nearly every web security vulnerability (SQL injections, XSS, information disclosure, ...) you can imagine&lt;/li&gt;
&lt;li&gt;extensions for &lt;a href=&quot;http://www.phpmyfaq.de/&quot;&gt;phpMyFAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LDAP contact management (for PHProjekt) recognizing duplicate addresses&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chorizo-scanner.com/&quot;&gt;Chorizo&lt;/a&gt; robot - recording scanning sessions and repeat them continuously&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Some of the project teams will release more information soon. 
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Personally, we would like to thank every single &quot;Maiblümchen&quot; for being a part of our company. It&#039;s great to see what the group can achieve. &lt;strong&gt;You&#039;re real rock stars!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;
Are you a (senior) rock star and want to join the &quot;Maiblümchen&quot; fame? &lt;a href=&quot;mailtobewerbung@mayflower.de&quot;&gt;Tell us via e-mail&lt;/a&gt;! 
    </description>
            
            <pubDate>Wed, 13 Feb 2008 11:36:57 -0800</pubDate>
        </item>
            
        <item>
            <title>Run 37 Signals&#039; Basecamp Offline with AIR | RIA pedia - Rich Internet Applications - Its all about the user experience!</title>
            <link>http://swik.net/RIA/del.icio.us%2Ftag%2FRIA/Run+37+Signals%27+Basecamp+Offline+with+AIR+%7C+RIA+pedia+-+Rich+Internet+Applications+-+Its+all+about+the+user+experience%21/b2bdg</link>
            <description>Demo of AIR application that lets you run Basecamp as a desktop app and in online/offline mode. Prediction: Adobe AIR will tell the &amp;quot;connected services&amp;quot; story better than Microsoft who &amp;quot;owns&amp;quot; that concept, at first at least.</description>
            
            <pubDate>Sun, 03 Feb 2008 14:41:04 -0800</pubDate>
        </item>
            
        <item>
            <title>[from bushwald] Run 37 Signals&#039; Basecamp Offline with AIR | RIA pedia - Rich Internet Applications - Its all about the user experience!</title>
            <link>http://swik.net/User:jeyrb/del.icio.us%2Fnetwork%2Fjey/%5Bfrom+bushwald%5D+Run+37+Signals%27+Basecamp+Offline+with+AIR+%7C+RIA+pedia+-+Rich+Internet+Applications+-+Its+all+about+the+user+experience%21/b2alv</link>
            <description>Demo of AIR application that lets you run Basecamp as a desktop app and in online/offline mode. Prediction: Adobe AIR will tell the &amp;quot;connected services&amp;quot; story better than Microsoft who &amp;quot;owns&amp;quot; that concept, at first at least.</description>
            
            <pubDate>Sun, 03 Feb 2008 10:41:54 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./b19o9</link>
            <description></description>
            
            <pubDate>Sun, 03 Feb 2008 05:38:42 -0800</pubDate>
        </item>
            
        <item>
            <title>tikiwiki.org -- Home of Tiki Groupware/CMS : HomePage</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/tikiwiki.org+--+Home+of+Tiki+Groupware%2FCMS+%3A+HomePage/byvz5</link>
            <description></description>
            
            <pubDate>Fri, 28 Dec 2007 15:01:09 -0800</pubDate>
        </item>
            
        <item>
            <title>Featured Interviews: Harrison Owen on Open Space Technology | Event Management Blog</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Featured+Interviews%3A+Harrison+Owen+on+Open+Space+Technology+%7C+Event+Management+Blog/bxie9</link>
            <description></description>
            
            <pubDate>Sun, 16 Dec 2007 02:14:22 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./bvlen</link>
            <description></description>
            
            <pubDate>Fri, 30 Nov 2007 13:31:39 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./bu9yv</link>
            <description></description>
            
            <pubDate>Sun, 25 Nov 2007 01:29:57 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki / TheRulesOfBarCamp</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+%2F+TheRulesOfBarCamp/bubkg</link>
            <description></description>
            
            <pubDate>Fri, 16 Nov 2007 20:30:37 -0800</pubDate>
        </item>
            
        <item>
            <title>Barcamp Bangalore Blog</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Barcamp+Bangalore+Blog/bubkb</link>
            <description></description>
            
            <pubDate>Fri, 16 Nov 2007 20:30:36 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp wiki - The password is c4mp.</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+wiki+-+The+password+is+c4mp./bti6e</link>
            <description></description>
            
            <pubDate>Sat, 10 Nov 2007 16:54:52 -0800</pubDate>
        </item>
            
        <item>
            <title>BarCamp - Wikipedia, the free encyclopedia</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+-+Wikipedia%2C+the+free+encyclopedia/btgi8</link>
            <description></description>
            
            <pubDate>Fri, 09 Nov 2007 23:53:57 -0800</pubDate>
        </item>
            
        <item>
            <title>Barcamp #4: Dec 1 at mVillage</title>
            <link>http://swik.net/MySQL/Planet+MySQL/Barcamp+%234%3A+Dec+1+at+mVillage/bs8fh</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.barcamp.be/blog/2007/11/08/barcamp-4-dec-1-at-mvillage/&quot;&gt;Barcamp Brussels 4&lt;/a&gt; is comming&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;br/&gt;
It?s decided! Barcamp Brussels #4 will take place on Saturday Dec 1st, in the mVillage business center in Schaarbeek, close to the Koninginneplein, Kruidtuin/Botanique and the Brussels North station (thanks for the help, Simon).&lt;/p&gt;
&lt;p&gt;&lt;/cite&gt;&lt;/p&gt;</description>
            
            <pubDate>Thu, 08 Nov 2007 07:12:20 -0800</pubDate>
        </item>
            
        <item>
            <title>PodCamp Toronto</title>
            <link>http://swik.net/podcasting/del.icio.us+tag%2Fpodcasting/PodCamp+Toronto/br0w4</link>
            <description></description>
            
            <pubDate>Tue, 30 Oct 2007 11:48:01 -0700</pubDate>
        </item>
            
        <item>
            <title>BarCamp - Wikipedia, the free encyclopedia</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/BarCamp+-+Wikipedia%2C+the+free+encyclopedia/br0c0</link>
            <description></description>
            
            <pubDate>Tue, 30 Oct 2007 09:44:21 -0700</pubDate>
        </item>
                </channel>
</rss>
