<?xml version="1.0" encoding="utf-8"?>
<feed
    xmlns="http://www.w3.org/2005/Atom"
    xmlns:at="http://www.sixapart.com/ns/at"
    xmlns:icbm="http://postneo.com/icbm"
    xmlns:rvw="http://purl.org/NET/RVW/0.2/"
    xml:lang="en">
    <title>Methods and Messages: Randal Schwartz on Smalltalk</title>
    <link rel="self" type="application/atom+xml" title="Methods and Messages: Randal Schwartz on Smalltalk (Atom)" href="http://methodsandmessages.vox.com/library/posts/tags/barcamp/page/1/atom.xml" />
    <link rel="alternate" type="text/html" title="Methods and Messages: Randal Schwartz on Smalltalk" href="http://methodsandmessages.vox.com/library/posts/tags/barcamp/page/1/"/> 
    <link rel="service.post" type="application/atom+xml" title="Methods and Messages: Randal Schwartz on Smalltalk" href="http://www.vox.com/services/atom/svc=post/collection_id=6a00e398cc856f000500e398cc85740005" /> 
    <link rel="service.subscribe" type="application/atom+xml" title="Methods and Messages: Randal Schwartz on Smalltalk" href="http://methodsandmessages.vox.com/library/posts/tags/barcamp/atom.xml" />   
    <link rel="last" type="application/atom+xml" title="Methods and Messages: Randal Schwartz on Smalltalk" href="http://methodsandmessages.vox.com/library/posts/tags/barcamp/page/1/atom.xml" />  
    <category term="barcamp" scheme="http://methodsandmessages.vox.com/tags/barcamp/?_c=feed-atom-full" label="barcamp" /> 
    <generator uri="http://www.vox.com/">Vox</generator>
    <updated>2008-05-04T01:18:16Z</updated> 
    <author>
        <name>Randal Schwartz</name>
        <uri>http://methodsandmessages.vox.com/?_c=feed-atom-full</uri>
    </author> 
    <id>tag:vox.com,2006:6p00e398cc856f0005/tags/barcamp/</id> 
    <subtitle>Transcript show: &#39;Just another Smalltalk hacker,&#39;</subtitle>  
    
    <entry>
        <title>Seaside presentation at BarCampPortland a success!</title>   
        <link rel="alternate" type="text/html" title="Seaside presentation at BarCampPortland a success!" href="http://methodsandmessages.vox.com/library/post/seaside-presentation-at-barcampportland-a-success.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Seaside presentation at BarCampPortland a success!" href="http://methodsandmessages.vox.com/library/post/seaside-presentation-at-barcampportland-a-success.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Seaside presentation at BarCampPortland a success!" href="http://www.vox.com/atom/svc=post/asset_id=6a00e398cc856f000500e398f633c80005" />   
        <link rel="enclosure" href="http://a5.vox.com/download/6a00e398cc856f000500f48cf48f8d0002-flv.flv" type="video/x-flv" length="2687193" />          <id>tag:vox.com,2008-05-04:asset-6a00e398cc856f000500e398f633c80005</id>
        <published>2008-05-04T01:04:40Z</published>
        <updated>2008-05-04T01:18:16Z</updated>
    
        <author>
            <name>Randal Schwartz</name>
            <uri>http://methodsandmessages.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://methodsandmessages.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        
    
    
    





        






    
    
    





        





<div at:enclosure="asset" at:xid="6a00e398cc856f000500f48cf48f8d0002" at:format="large" at:align="right"
    class="enclosure enclosure-right enclosure-large video-enclosure" 
     style="text-align: center; float: right;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 0 0 20px 20px;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item video-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://methodsandmessages.vox.com/library/video/6a00e398cc856f000500f48cf48f8d0002.html"><img src="http://a5.vox.com/6a00e398cc856f000500f48cf48f8d0002-320pi" alt="Seaside Elevator 0.05" title="Seaside Elevator 0.05" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://methodsandmessages.vox.com/library/video/6a00e398cc856f000500f48cf48f8d0002.html" title="Seaside Elevator 0.05">Seaside Elevator 0.05</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->

 <div>I had about 20 people in my room at <a href="http://barcamp.org/BarCampPortland">BarCampPortland</a>, which made it &quot;standing room only&quot; for the last few who showed up. The audience was attentive, and asked good questions. Monty Williams of <a href="http://seaside.gemstone.com/">GemStone</a> was also along, and helped me with a few answers.</div><div><br /></div><div>I hacked up a new presentation based on the responses here to <a href="http://methodsandmessages.vox.com/library/post/the-elevator-pitch-for-seaside.html">my previous post</a>, which I&#39;ve embedded here at the right. You have to click to advance to each new slide.</div><div><br /></div><div>Amazingly enough, with just 12 slides, and a few short demos, and a few questions, my 45 minutes were up. So that&#39;s about the right size for 45 minutes. &#160;Finally.</div><div><br /></div>   <p style="clear:both;"> 
    <a href="http://methodsandmessages.vox.com/library/post/seaside-presentation-at-barcampportland-a-success.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00e398cc856f000500e398f633c80005?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="barcamp" scheme="http://methodsandmessages.vox.com/tags/barcamp/" label="barcamp" /> 
    <category term="seaside" scheme="http://methodsandmessages.vox.com/tags/seaside/" label="seaside" /> 
    <category term="smalltalk" scheme="http://methodsandmessages.vox.com/tags/smalltalk/" label="smalltalk" /> 
    <category term="barcampportland" scheme="http://methodsandmessages.vox.com/tags/barcampportland/" label="barcampportland" /> 
    </entry> 
    
    <entry>
        <title>The Elevator Pitch for Seaside</title>   
        <link rel="alternate" type="text/html" title="The Elevator Pitch for Seaside" href="http://methodsandmessages.vox.com/library/post/the-elevator-pitch-for-seaside.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="The Elevator Pitch for Seaside" href="http://methodsandmessages.vox.com/library/post/the-elevator-pitch-for-seaside.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="The Elevator Pitch for Seaside" href="http://www.vox.com/atom/svc=post/asset_id=6a00e398cc856f000500f48d1320200001" />          <id>tag:vox.com,2008-05-03:asset-6a00e398cc856f000500f48d1320200001</id>
        <published>2008-05-03T14:37:49Z</published>
        <updated>2008-05-03T16:51:45Z</updated>
    
        <author>
            <name>Randal Schwartz</name>
            <uri>http://methodsandmessages.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://methodsandmessages.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>I&#39;m at <a href="http://barcamp.org/BarCampPortland">BarCampPortland</a> this weekend, scheduled to introduce a whole new batch of folks to <a href="http://seaside.st/">Seaside</a> this afternoon.<div><br /><div>But as we were organizing the &quot;unconference&quot; last night, I found myself having to repeatedly describe Seaside and why I&#39;m so excited about it. &#160;This is good practice for me, and I&#39;m happy that I did a bit of that for <a href="http://methodsandmessages.vox.com/library/post/interviewed-by-ronaldo-m-ferraz.html">the interview a few days ago</a>.</div><div><br /></div><div>But I think I&#39;ve come up with a good <a href="http://en.wikipedia.org/wiki/Elevator_pitch">elevator pitch</a> for &quot;why Seaside and not [insert other framework here]&quot;, that centers on three key items: <span class="Apple-style-span" style="font-weight: bold;">abstracted control flows</span>, <span class="Apple-style-span" style="font-weight: bold;">live debugging</span>, and <span class="Apple-style-span" style="font-weight: bold;">persistence without ORMs</span>.</div><div><br /></div><div>Because Seaside has a <span class="Apple-style-span" style="font-weight: bold;">continuation-based framework</span>, I can write a single method that captures the flow of my application in a natural way: &quot;show page 1&quot;, &quot;show page 2 until the data validates&quot;, &quot;show page 3&quot;. &#160;My local variables and state of execution persist transparently between page hits, so I don&#39;t have to spend a lot of time figuring out how to leave myself notes for the next hit. This also means I can build a reusable library of control flows (&quot;login page&quot;, &quot;validated multipage form&quot;, &quot;paging through a dataset&quot;, &quot;breadcrumb trail&quot;) and save myself development time in the long run. Without continuations, this is a difficult thing to do, and I know, having coded control flows in Perl webapps for many years.</div><div><br /></div><div>Seaside is Smalltalk, and inherits <span class="Apple-style-span" style="font-weight: bold;">Smalltalk&#39;s live debugging</span> feature. &#160;When something breaks, I get a stack backtrace that is live, and I can find the problem, edit the code, and proceed from that point, returning to the same hit done correctly, instead of restarting my testing from scratch. (I hear the folks at GemStone are even persisting failures from test suites overnight: the bug report has a link that takes them right to the precise broken state, and they can fix it and continue the suite from there. &#160;Incredible.)</div><div><br /></div><div>Through GemStone/S, or the open source Magma tools, I can tell Smalltalk to simply &quot;<span class="Apple-style-span" style="font-weight: bold;">persist these objects</span>&quot;, meaning that I don&#39;t have to build complicated and computationally expensive strategies to take my naturally-shaped objects and map them through a narrow SQL bottleneck to a database and back again. The objects are shared in their natural shape using Smalltalk-aware strategies.</div><div><br /></div><div>These are the three key points. &#160;If the elevator ride is a long one, I would also include that Seaside is supported by <span class="Apple-style-span" style="font-weight: bold;">two</span> commercial vendors (Cincom and GemStone) and <span class="Apple-style-span" style="font-weight: bold;">two</span> open source Smalltalks (Squeak and GNU Smalltalk), providing lots of options for support, scaling, and philosophy of development.</div><div><br /></div><div>So, I&#39;m going to quickly be writing up some slides that look like these talking points, since I found out I have only 45 minutes for this talk, and my 60-minutes of material won&#39;t fit, nor will the audience sit still for a longer talk, I suspect.</div><div><br /></div></div></p>   <p style="clear:both;"> 
    <a href="http://methodsandmessages.vox.com/library/post/the-elevator-pitch-for-seaside.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00e398cc856f000500f48d1320200001?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="barcamp" scheme="http://methodsandmessages.vox.com/tags/barcamp/" label="barcamp" /> 
    <category term="seaside" scheme="http://methodsandmessages.vox.com/tags/seaside/" label="seaside" /> 
    <category term="smalltalk" scheme="http://methodsandmessages.vox.com/tags/smalltalk/" label="smalltalk" /> 
    <category term="gemstone" scheme="http://methodsandmessages.vox.com/tags/gemstone/" label="gemstone" /> 
    <category term="elevator pitch" scheme="http://methodsandmessages.vox.com/tags/elevator+pitch/" label="elevator pitch" /> 
    <category term="cincom" scheme="http://methodsandmessages.vox.com/tags/cincom/" label="cincom" /> 
    </entry> 
</feed>


