<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Screencast: How to Build a Blog in 15 Minutes with Seaside</title>
	<atom:link href="http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/feed/" rel="self" type="application/rss+xml" />
	<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/</link>
	<description>thoughts on Smalltalk and programming in general...</description>
	<pubDate>Wed, 23 Jul 2008 20:21:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Idetrorce</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-9363</link>
		<dc:creator>Idetrorce</dc:creator>
		<pubDate>Sat, 15 Dec 2007 12:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-9363</guid>
		<description>very interesting, but I don't agree with you 
Idetrorce</description>
		<content:encoded><![CDATA[<p>very interesting, but I don&#8217;t agree with you<br />
Idetrorce</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tommy</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-5686</link>
		<dc:creator>tommy</dc:creator>
		<pubDate>Fri, 07 Sep 2007 20:44:27 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-5686</guid>
		<description>this was informative ....thanks</description>
		<content:encoded><![CDATA[<p>this was informative &#8230;.thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kurt</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-3163</link>
		<dc:creator>Kurt</dc:creator>
		<pubDate>Sun, 01 Jul 2007 23:32:27 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-3163</guid>
		<description>Maybe consider uploading the screencast to youtube.</description>
		<content:encoded><![CDATA[<p>Maybe consider uploading the screencast to youtube.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2979</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Sat, 09 Jun 2007 23:13:06 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2979</guid>
		<description>If I deleted a post, it's because it looked like spam, or linked to a site that looked like spam.

You can accept either by right clicking for a context menu and accpeting, or by alt+s for save.

The screencast was meant to show you what it's like working in Smalltalk and Seaside.  What it's really like (ie hotkey use), not what it's like in slow motion using the mouse for everything.  

As with the Ruby demo, it's not meant to teach you Seaside, it's meant to peak your interest and make you look into it further.  If you want to learn Seaside, screencasts aren't how you go about it, rather, go download some sample applications and play with actual code.

If you don't like how I did it, then don't watch it.  I don't owe you or anyone else anything and what I offer here on my site I do in my spare time for my own enjoyment.  I didn't have the time or equipment to do audio, so I did what I could, take it or leave it, I don't care.</description>
		<content:encoded><![CDATA[<p>If I deleted a post, it&#8217;s because it looked like spam, or linked to a site that looked like spam.</p>
<p>You can accept either by right clicking for a context menu and accpeting, or by alt+s for save.</p>
<p>The screencast was meant to show you what it&#8217;s like working in Smalltalk and Seaside.  What it&#8217;s really like (ie hotkey use), not what it&#8217;s like in slow motion using the mouse for everything.  </p>
<p>As with the Ruby demo, it&#8217;s not meant to teach you Seaside, it&#8217;s meant to peak your interest and make you look into it further.  If you want to learn Seaside, screencasts aren&#8217;t how you go about it, rather, go download some sample applications and play with actual code.</p>
<p>If you don&#8217;t like how I did it, then don&#8217;t watch it.  I don&#8217;t owe you or anyone else anything and what I offer here on my site I do in my spare time for my own enjoyment.  I didn&#8217;t have the time or equipment to do audio, so I did what I could, take it or leave it, I don&#8217;t care.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Deleted</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2974</link>
		<dc:creator>Deleted</dc:creator>
		<pubDate>Sat, 09 Jun 2007 15:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2974</guid>
		<description>I see you deleted my earlier comment. You smalltalkers are rich aren't you?

HTF do I "accept" the frikking instance of BlogView? this is the problem with smalltalk you just demand that everyone be up to speed even when doing a so called "introductory" screencast. And the transcript? well that one is a lot of help too.. Create BlogView and then ACCEPT how THE EFF do I accept? 

80 miles an hour (to imitate that danish A-Hole) screencasts that don't make any sense and on top of that.. no sound and no explanations because we're supposed to know it already.. if we did, why would we watch your screencast? ever consider that?

seriously, if you're not going to do it properly, why even bother?</description>
		<content:encoded><![CDATA[<p>I see you deleted my earlier comment. You smalltalkers are rich aren&#8217;t you?</p>
<p>HTF do I &#8220;accept&#8221; the frikking instance of BlogView? this is the problem with smalltalk you just demand that everyone be up to speed even when doing a so called &#8220;introductory&#8221; screencast. And the transcript? well that one is a lot of help too.. Create BlogView and then ACCEPT how THE EFF do I accept? </p>
<p>80 miles an hour (to imitate that danish A-Hole) screencasts that don&#8217;t make any sense and on top of that.. no sound and no explanations because we&#8217;re supposed to know it already.. if we did, why would we watch your screencast? ever consider that?</p>
<p>seriously, if you&#8217;re not going to do it properly, why even bother?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2895</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Mon, 28 May 2007 19:50:26 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2895</guid>
		<description>Download and use my image, which contains these enhancements.</description>
		<content:encoded><![CDATA[<p>Download and use my image, which contains these enhancements.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maxime Bourreau</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2894</link>
		<dc:creator>Maxime Bourreau</dc:creator>
		<pubDate>Mon, 28 May 2007 19:48:47 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2894</guid>
		<description>I try building this blog, but I don't have a "Create accessors biz simple" item on the "selection..." submenu, only "Create accessors".

What can I do ?</description>
		<content:encoded><![CDATA[<p>I try building this blog, but I don&#8217;t have a &#8220;Create accessors biz simple&#8221; item on the &#8220;selection&#8230;&#8221; submenu, only &#8220;Create accessors&#8221;.</p>
<p>What can I do ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: * batteries not included &#187; Smalltalk: o Big-Bang das linguagens de programaÃ§Ã£o</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2775</link>
		<dc:creator>* batteries not included &#187; Smalltalk: o Big-Bang das linguagens de programaÃ§Ã£o</dc:creator>
		<pubDate>Thu, 03 May 2007 17:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2775</guid>
		<description>[...] Para que este post nÃ£o fique sÃ³ no blÃ¡-blÃ¡-blÃ¡, veja esta screencast, onde uma aplicaÃ§Ã£o web Ã© desenvolvida em quinze minutos (bem no estilo das screencasts do [...]</description>
		<content:encoded><![CDATA[<p>[...] Para que este post nÃ£o fique sÃ³ no blÃ¡-blÃ¡-blÃ¡, veja esta screencast, onde uma aplicaÃ§Ã£o web Ã© desenvolvida em quinze minutos (bem no estilo das screencasts do [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2774</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Thu, 03 May 2007 16:01:07 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2774</guid>
		<description>Right you are.</description>
		<content:encoded><![CDATA[<p>Right you are.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Borden</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2772</link>
		<dc:creator>John Borden</dc:creator>
		<pubDate>Wed, 02 May 2007 21:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2772</guid>
		<description>The screencast is really nice, the only thing missing is a fileout of the code (I copied it to: &lt;a href="http://homepage.mac.com/WebObjects/FileSharing.woa/wa/default?user=jborden23&#38;templatefn=FileSharing3.html&#38;xmlfn=TKDocument.3.xml&#38;sitefn=RootSite.xml&#38;aff=consumer&#38;cty=US&#38;lang=en" rel="nofollow"&gt;here&lt;/a&gt;
Changes:
- #bold: is deprecated
- #reverseDo: is more effecient
)</description>
		<content:encoded><![CDATA[<p>The screencast is really nice, the only thing missing is a fileout of the code (I copied it to: <a href="http://homepage.mac.com/WebObjects/FileSharing.woa/wa/default?user=jborden23&amp;templatefn=FileSharing3.html&amp;xmlfn=TKDocument.3.xml&amp;sitefn=RootSite.xml&amp;aff=consumer&amp;cty=US&amp;lang=en" rel="nofollow">here</a><br />
Changes:<br />
- #bold: is deprecated<br />
- #reverseDo: is more effecient<br />
)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tv izle</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2400</link>
		<dc:creator>tv izle</dc:creator>
		<pubDate>Thu, 22 Mar 2007 20:42:14 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2400</guid>
		<description>By using freeware Wink itâ€™s easy to add sound and produce a flash</description>
		<content:encoded><![CDATA[<p>By using freeware Wink itâ€™s easy to add sound and produce a flash</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2385</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Sun, 18 Mar 2007 23:14:58 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2385</guid>
		<description>Good questions.  This is one of those things that I'd do in one way for a demo and another for a real application.  Were this a real production application, I wouldn't have a uniqueness validation in the model itself, I'd use a constraint on the database and catch the exception on commit.

I added this rule to the Magritte descriptor mostly to demo Magritte.  Something like validating uniqueness very much depends on your data store.  Personally, I'm still torn between databases and objects, and this is an example of why.  

In a db I could declaratively say this field must be unique.  In an object model (OODB)... I'd be forced to ask myself why this field is unique, what does it say about my model, and then create an object for this abstraction and hash the posts in it by the unique key, the title.  Essentially the same thing the relational database is doing by declaring a unique index.

So, assuming an OODB like this post does, I'd do it in Magritte maybe by moving the descriptor to the instance side and change the condition to the following...

&lt;pre&gt;
[((self class repository copyWithout: self) 
    contains: [:each&#124; each attr = value]) not]
&lt;/pre&gt;

Which essentially say make sure no "other" blog post has this title and would allow updates of this post.  Uniqueness is one of those special things where the rule is really a rule on the set, not the object.

You know, now that I think about it, that rule doesn't really belong on the object at all, it belongs on the set of objects, the repository itself.  So maybe what I'd really do would be to make the repository a real domain object rather than just a generic collection, and put this rule in the add method of the repository, and throw an exception when you add a post that violates one of its rules.  Maybe something like this..

&lt;pre&gt;
OrderedCollection subclass: #BlogPostRepository

add: aPost
    self testAdd: aPost.
    super add: aPost

testAdd: aPost
    (self includes: aPost) ifTrue: 
        [MAConditionError signal: 'Post has already been added.']
    (self contains: [:each &#124; each title =  aPost title]) ifTrue:
        [MAConditionError signal: 'Another post has that title.']
&lt;/pre&gt;

Magritte would then catch the condition error and display the message to the user.</description>
		<content:encoded><![CDATA[<p>Good questions.  This is one of those things that I&#8217;d do in one way for a demo and another for a real application.  Were this a real production application, I wouldn&#8217;t have a uniqueness validation in the model itself, I&#8217;d use a constraint on the database and catch the exception on commit.</p>
<p>I added this rule to the Magritte descriptor mostly to demo Magritte.  Something like validating uniqueness very much depends on your data store.  Personally, I&#8217;m still torn between databases and objects, and this is an example of why.  </p>
<p>In a db I could declaratively say this field must be unique.  In an object model (OODB)&#8230; I&#8217;d be forced to ask myself why this field is unique, what does it say about my model, and then create an object for this abstraction and hash the posts in it by the unique key, the title.  Essentially the same thing the relational database is doing by declaring a unique index.</p>
<p>So, assuming an OODB like this post does, I&#8217;d do it in Magritte maybe by moving the descriptor to the instance side and change the condition to the following&#8230;</p>
<pre>
[((self class repository copyWithout: self)
    contains: [:each| each attr = value]) not]
</pre>
<p>Which essentially say make sure no &#8220;other&#8221; blog post has this title and would allow updates of this post.  Uniqueness is one of those special things where the rule is really a rule on the set, not the object.</p>
<p>You know, now that I think about it, that rule doesn&#8217;t really belong on the object at all, it belongs on the set of objects, the repository itself.  So maybe what I&#8217;d really do would be to make the repository a real domain object rather than just a generic collection, and put this rule in the add method of the repository, and throw an exception when you add a post that violates one of its rules.  Maybe something like this..</p>
<pre>
OrderedCollection subclass: #BlogPostRepository

add: aPost
    self testAdd: aPost.
    super add: aPost

testAdd: aPost
    (self includes: aPost) ifTrue:
        [MAConditionError signal: 'Post has already been added.']
    (self contains: [:each | each title =  aPost title]) ifTrue:
        [MAConditionError signal: 'Another post has that title.']
</pre>
<p>Magritte would then catch the condition error and display the message to the user.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrey Esipenko</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2384</link>
		<dc:creator>Andrey Esipenko</dc:creator>
		<pubDate>Sun, 18 Mar 2007 20:45:58 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2384</guid>
		<description>Thank you for sharing your knowledge. I just want to ask how do you validate your BlogPost model for uniqueness of title attribute. 

Taking into account that magritte validates form with a memento of object, specifying condition like [:value&#124; (self repository contains: [:each&#124; each attr = value]) not] just allow you to add a new model object once checking that attr is unique. But when you try to edit again that object, it just wont pass the validation, because condition will fail while comparing memento attr with the one already present in repository.

So, the question is: what's the right way to specify magritte validation of attribute uniqueness.</description>
		<content:encoded><![CDATA[<p>Thank you for sharing your knowledge. I just want to ask how do you validate your BlogPost model for uniqueness of title attribute. </p>
<p>Taking into account that magritte validates form with a memento of object, specifying condition like [:value| (self repository contains: [:each| each attr = value]) not] just allow you to add a new model object once checking that attr is unique. But when you try to edit again that object, it just wont pass the validation, because condition will fail while comparing memento attr with the one already present in repository.</p>
<p>So, the question is: what&#8217;s the right way to specify magritte validation of attribute uniqueness.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: robert</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2383</link>
		<dc:creator>robert</dc:creator>
		<pubDate>Sun, 18 Mar 2007 16:35:01 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-2383</guid>
		<description>hi all. nice blog. its very ineresting article.</description>
		<content:encoded><![CDATA[<p>hi all. nice blog. its very ineresting article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mapping Seaside Blog to PostgreSQL with Glorp</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-784</link>
		<dc:creator>Mapping Seaside Blog to PostgreSQL with Glorp</dc:creator>
		<pubDate>Wed, 03 Jan 2007 07:12:46 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-784</guid>
		<description>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</description>
		<content:encoded><![CDATA[<p>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-626</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Thu, 21 Dec 2006 15:21:04 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-626</guid>
		<description>I actually already tried that, unfortunately, flash screencasts are only suitable for very short screencasts, they have a frame limit.  Wink was unable to do this screencast for its length.  

Maybe in the future, I'll focus on shorter terser screencasts and give Wink a try again.  I'll think about the Magma one.  What exactly would you like to see in such a screencast, its setup, or use?</description>
		<content:encoded><![CDATA[<p>I actually already tried that, unfortunately, flash screencasts are only suitable for very short screencasts, they have a frame limit.  Wink was unable to do this screencast for its length.  </p>
<p>Maybe in the future, I&#8217;ll focus on shorter terser screencasts and give Wink a try again.  I&#8217;ll think about the Magma one.  What exactly would you like to see in such a screencast, its setup, or use?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: emptist</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-625</link>
		<dc:creator>emptist</dc:creator>
		<pubDate>Thu, 21 Dec 2006 13:37:28 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-625</guid>
		<description>thanks. By using freeware Wink it's easy to add sound and produce a flash. James Robertson is now using it. There're two tutorial flash come along with the software could be found under help menu.

Hope you would make a magma show. I've never got it run. sad.</description>
		<content:encoded><![CDATA[<p>thanks. By using freeware Wink it&#8217;s easy to add sound and produce a flash. James Robertson is now using it. There&#8217;re two tutorial flash come along with the software could be found under help menu.</p>
<p>Hope you would make a magma show. I&#8217;ve never got it run. sad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Squeak Smalltalk and Databases</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-594</link>
		<dc:creator>Squeak Smalltalk and Databases</dc:creator>
		<pubDate>Wed, 20 Dec 2006 06:55:05 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-594</guid>
		<description>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</description>
		<content:encoded><![CDATA[<p>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Ruby on Rails demo in Seaside &#171; Tekkie</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-499</link>
		<dc:creator>The Ruby on Rails demo in Seaside &#171; Tekkie</dc:creator>
		<pubDate>Sun, 10 Dec 2006 06:58:10 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-499</guid>
		<description>[...] The classic Ruby on Rails demo that usually gets presented is how to build a blog in 15 minutes. This is what you usually get with the RoR screencasts.Â Ramon Leon at On Smalltalk did a similar demo in his own screencast, &#8220;How to build a blog in 15 minutes&#8221;, using Smalltalk (Squeak)Â and Seaside, of course.Â A key difference between his demo and the one for RoR is he does not save blog entries and comments in a database like MySQL, but rather in OrderedCollections. [...]</description>
		<content:encoded><![CDATA[<p>[...] The classic Ruby on Rails demo that usually gets presented is how to build a blog in 15 minutes. This is what you usually get with the RoR screencasts.Â Ramon Leon at On Smalltalk did a similar demo in his own screencast, &#8220;How to build a blog in 15 minutes&#8221;, using Smalltalk (Squeak)Â and Seaside, of course.Â A key difference between his demo and the one for RoR is he does not save blog entries and comments in a database like MySQL, but rather in OrderedCollections. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-488</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Sat, 09 Dec 2006 22:17:50 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-488</guid>
		<description>OrderedCollection is not inherently thread safe, but since posts are only added and not removed, I don't really see any issues with it.  Worst case scenario, you could lock it when you add, but definitely if you remove.

Using the image like this for persistence should allow one to develop the entire application without the burden of dealing with a database.  I do this not for use in production, but for use in development when speed of development is my primary concern.

Once complete, and working, you could then either use an object database like Gemstone, Goods, or Magma and pretty much keep the code as is, or use Glorp to map your objects into a relational database, which still shouldn't require many changes.

As for the keyboard commands, I did this on purpose, I can't stand watching screencasts where only menus are used because this isn't how real development is done.  I wanted people to see what working in Squeak is actually like, for real development, not a dressed up nice mouse driven demo that doesn't reflect reality.  Real developers use the keyboard, a lot, I wanted this reflected in the video.

I should have put sound on it, but honestly, it's hard enough writing and making videos, let alone voicing them, this is just a hobby after all, I don't want it to start feeling like work.</description>
		<content:encoded><![CDATA[<p>OrderedCollection is not inherently thread safe, but since posts are only added and not removed, I don&#8217;t really see any issues with it.  Worst case scenario, you could lock it when you add, but definitely if you remove.</p>
<p>Using the image like this for persistence should allow one to develop the entire application without the burden of dealing with a database.  I do this not for use in production, but for use in development when speed of development is my primary concern.</p>
<p>Once complete, and working, you could then either use an object database like Gemstone, Goods, or Magma and pretty much keep the code as is, or use Glorp to map your objects into a relational database, which still shouldn&#8217;t require many changes.</p>
<p>As for the keyboard commands, I did this on purpose, I can&#8217;t stand watching screencasts where only menus are used because this isn&#8217;t how real development is done.  I wanted people to see what working in Squeak is actually like, for real development, not a dressed up nice mouse driven demo that doesn&#8217;t reflect reality.  Real developers use the keyboard, a lot, I wanted this reflected in the video.</p>
<p>I should have put sound on it, but honestly, it&#8217;s hard enough writing and making videos, let alone voicing them, this is just a hobby after all, I don&#8217;t want it to start feeling like work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-487</link>
		<dc:creator>Mark Miller</dc:creator>
		<pubDate>Sat, 09 Dec 2006 21:29:19 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-487</guid>
		<description>I really liked this example. It's something that a lot of people can relate to. I had already seen the "blog in 15 minutes" example for Ruby on Rails (I think it was 15 minutes, too). So I could map some of what you were doing to that. The thing that intrigued me was you didn't use a database like the Ruby example did, but rather an OrderedCollection. I just had to give this a try and see how well it worked. Once I got it going I tried using two web browsers on it, and indeed it worked. The blog showed up the same in both. When I put in a new post or comment in one, it showed up in the other browser instance upon refresh.

A question I had at the end is whether this could be done in a real production site. Is OrderedCollection thread-safe, or does the fact that you're programming in an image make it so? I'm wondering if there was heavy traffic whether posts and comments would start getting dropped, because two people posted comments simultaneously and one person's comment was added to the collection but the other wasn't. Would simultaneous adds to the collection cause a problem?

The only comment I'd have about the screencast is it was a little hard to tell what you were doing with keyboard commands (obviously). I kept wondering how you were getting the Intellisense-like selections to come up. I finally figured it out, but it would've been nice if there were some subtitles showing when you had the browser accept code, and explaining how you were getting the method selectors to come up (just once), etc. Also the menu selections you made could've been a bit slower. They sometimes went a bit fast, because once you found the item you wanted, you immediately clicked on it, causing the menu to disappear right away. Rewind was my friend. :)

Anyway, great screencast.</description>
		<content:encoded><![CDATA[<p>I really liked this example. It&#8217;s something that a lot of people can relate to. I had already seen the &#8220;blog in 15 minutes&#8221; example for Ruby on Rails (I think it was 15 minutes, too). So I could map some of what you were doing to that. The thing that intrigued me was you didn&#8217;t use a database like the Ruby example did, but rather an OrderedCollection. I just had to give this a try and see how well it worked. Once I got it going I tried using two web browsers on it, and indeed it worked. The blog showed up the same in both. When I put in a new post or comment in one, it showed up in the other browser instance upon refresh.</p>
<p>A question I had at the end is whether this could be done in a real production site. Is OrderedCollection thread-safe, or does the fact that you&#8217;re programming in an image make it so? I&#8217;m wondering if there was heavy traffic whether posts and comments would start getting dropped, because two people posted comments simultaneously and one person&#8217;s comment was added to the collection but the other wasn&#8217;t. Would simultaneous adds to the collection cause a problem?</p>
<p>The only comment I&#8217;d have about the screencast is it was a little hard to tell what you were doing with keyboard commands (obviously). I kept wondering how you were getting the Intellisense-like selections to come up. I finally figured it out, but it would&#8217;ve been nice if there were some subtitles showing when you had the browser accept code, and explaining how you were getting the method selectors to come up (just once), etc. Also the menu selections you made could&#8217;ve been a bit slower. They sometimes went a bit fast, because once you found the item you wanted, you immediately clicked on it, causing the menu to disappear right away. Rewind was my friend. :)</p>
<p>Anyway, great screencast.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: doc</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-476</link>
		<dc:creator>doc</dc:creator>
		<pubDate>Sat, 09 Dec 2006 13:37:48 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-476</guid>
		<description>Great demo. I agree with others that commentary would very useful... but I'd keep it realtime as even trivial comments could be helpful to beginners like myself.

PS: played fine on WMP v10.00.00.4019</description>
		<content:encoded><![CDATA[<p>Great demo. I agree with others that commentary would very useful&#8230; but I&#8217;d keep it realtime as even trivial comments could be helpful to beginners like myself.</p>
<p>PS: played fine on WMP v10.00.00.4019</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-429</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Fri, 08 Dec 2006 16:56:33 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-429</guid>
		<description>Media player 10 seems to play it fine, but I'll look into re-encoding it shortly and maybe even adding some audio, if I find the time.</description>
		<content:encoded><![CDATA[<p>Media player 10 seems to play it fine, but I&#8217;ll look into re-encoding it shortly and maybe even adding some audio, if I find the time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rabble</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-372</link>
		<dc:creator>rabble</dc:creator>
		<pubDate>Fri, 08 Dec 2006 00:59:50 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-372</guid>
		<description>I tried to view it on a mac with MPlayer, VLC, QuickTime, and Windows Media Player 9. None of which worked. What codec DID you use to encode this crazy avi? I watch lots of weird avi's all the time, but never had one fail to play like this one.</description>
		<content:encoded><![CDATA[<p>I tried to view it on a mac with MPlayer, VLC, QuickTime, and Windows Media Player 9. None of which worked. What codec DID you use to encode this crazy avi? I watch lots of weird avi&#8217;s all the time, but never had one fail to play like this one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Screencast: How to Package Smalltalk Code with Monticello &#124; On Smalltalk</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-263</link>
		<dc:creator>Screencast: How to Package Smalltalk Code with Monticello &#124; On Smalltalk</dc:creator>
		<pubDate>Tue, 28 Nov 2006 02:59:17 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-263</guid>
		<description>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</description>
		<content:encoded><![CDATA[<p>[...] Screencast: How to Build a Blog in 15 Minutes with Seaside [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramon Leon</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-254</link>
		<dc:creator>Ramon Leon</dc:creator>
		<pubDate>Sat, 25 Nov 2006 15:47:56 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-254</guid>
		<description>Yea, I didn't prep enough, I kept having to stop and "think" for a second.  What to name this, what to name that, what code to write.  With a little more prep... or a little editing, I could cut out quite a few dead frames.  It should be about half it's current length.  Oh well, live and learn, I'll prepare a little more next time.</description>
		<content:encoded><![CDATA[<p>Yea, I didn&#8217;t prep enough, I kept having to stop and &#8220;think&#8221; for a second.  What to name this, what to name that, what code to write.  With a little more prep&#8230; or a little editing, I could cut out quite a few dead frames.  It should be about half it&#8217;s current length.  Oh well, live and learn, I&#8217;ll prepare a little more next time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-250</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sat, 25 Nov 2006 10:59:39 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-250</guid>
		<description>Nice screen cast.  If you could type a little faster you could have been done in about 8 minutes. :)  Very valuable stuff.</description>
		<content:encoded><![CDATA[<p>Nice screen cast.  If you could type a little faster you could have been done in about 8 minutes. :)  Very valuable stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darius</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-243</link>
		<dc:creator>Darius</dc:creator>
		<pubDate>Thu, 23 Nov 2006 07:19:28 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-243</guid>
		<description>Perhaps you could type in class &#38; method comments as you're programming to easily provide the narrative the others are looking for.</description>
		<content:encoded><![CDATA[<p>Perhaps you could type in class &amp; method comments as you&#8217;re programming to easily provide the narrative the others are looking for.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lidell</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-216</link>
		<dc:creator>Lidell</dc:creator>
		<pubDate>Tue, 21 Nov 2006 23:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-216</guid>
		<description>What a terrific screencast for showing how to get things done in Squeak and Seaside!  It's very impressive.

I agree with others that some narrative would be very useful: either with sound narration, or even better with text (like a animated Powerpoint presentation).

I even found Squeak development to be somewhat appealing.  I've avoided Squeak in favor of Dolphin Smalltalk, because the UI seemed so baroque and unintuitive, however your screencast has eased some of those reservations.

Very nicely done.</description>
		<content:encoded><![CDATA[<p>What a terrific screencast for showing how to get things done in Squeak and Seaside!  It&#8217;s very impressive.</p>
<p>I agree with others that some narrative would be very useful: either with sound narration, or even better with text (like a animated Powerpoint presentation).</p>
<p>I even found Squeak development to be somewhat appealing.  I&#8217;ve avoided Squeak in favor of Dolphin Smalltalk, because the UI seemed so baroque and unintuitive, however your screencast has eased some of those reservations.</p>
<p>Very nicely done.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: How to Build a Blog in 15 Minutes with Seaside (Smalltalk) :: Tech Videos, Screencasts, Webinars</title>
		<link>http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-210</link>
		<dc:creator>How to Build a Blog in 15 Minutes with Seaside (Smalltalk) :: Tech Videos, Screencasts, Webinars</dc:creator>
		<pubDate>Tue, 21 Nov 2006 19:52:22 +0000</pubDate>
		<guid isPermaLink="false">http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/#comment-210</guid>
		<description>[...] Via &#8220;On Smalltalk&#8220;.  Tags:&#160;blog, Development, Magritte, Screencasts, Seaside, Smalltalk, Tutorial [...]</description>
		<content:encoded><![CDATA[<p>[...] Via &#8220;On Smalltalk&#8220;.  Tags:&nbsp;blog, Development, Magritte, Screencasts, Seaside, Smalltalk, Tutorial [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
