<div class="gmail_quote">On Sun, Mar 30, 2008 at 10:55 AM, itsme213 &lt;<a href="mailto:itsme213@hotmail.com">itsme213@hotmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Just thought I would summarize my experience with Seaside (thanks Cedrick).<br>
I just started ~4 months ago, I&#39;m relatively new to Seaside and Smalltalk<br>
and Web, I have prior experience with objects. I have not tried using Aida.</blockquote><div><br class="webkit-block-placeholder"></div><div>I am envious of your rapid assent! &nbsp;Congratulations on your speedy knowledge acquisition! &nbsp;What kind of problems are you working on?</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The Seaside community, both on this list and through private emails, has<br>
been astonishingly helpful (you know who you are :-) Ramon&#39;s blog was a big<br>
help, as were some assorted tutorials on the web. I did not make much use of<br>
the Pottsdam tutorial.</blockquote><div><br class="webkit-block-placeholder"></div><div>I have been wondering if Smalltalkers are so helpful because programming in Smalltalk is more like &quot;teaching&quot; than &quot;programming&quot; and if they are all basically a bunch of teachers that can&#39;t stand seeing someone have a hard time...?</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">The forthcoming Seaside book should be a huge help (Hurry up, Stef,<br>
Lukas,... :-). Beginer docs (like Aida appears to have) were hard to find.</blockquote><div><br class="webkit-block-placeholder"></div><div>Sometimes, there is just no substitute for a book...I am trying to contibute to the Aida documentation &quot;as I learn it&quot; from the newcomer point of view. &nbsp;Could such a documentation site be set up for Seaside? &nbsp;From what everyone has hinted at about your rapid success, you would probably be able to put some great examples there.</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">The html-in-code was easy with Seaside&#39;s Canvas, once I understood how the<br>
Brushes &nbsp;intervened.</blockquote><div><br class="webkit-block-placeholder"></div><div>This was where it got &quot;hard&quot; for me. &nbsp;I am, in a way, &quot;so NOT interested&quot; in &quot;making it pretty.&quot; &nbsp;I want some basic business components, but I want them to be able to INTERACT in a complicated fashion due to the business problems I am working on.</div>
<div><br class="webkit-block-placeholder"></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Callbacks were trivial to program, apps with whole-page refresh very simple<br>

to do, though the use of #state never quite fit my needs.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
Dealing with pure Smalltalk objects and callbacks on the server, with<br>
Seaside taking care of generating all string keys and mapping back to<br>
Smalltalk, a pure joy.</blockquote><div><br class="webkit-block-placeholder"></div><div>Yes...I like not having to worry about mapping the state of the object to the view very much! &nbsp;Magic! &nbsp;However...it is, after all, exactly how it SHOULD be, isn&#39;t it...!</div>
<div><br class="webkit-block-placeholder"></div><div>Can you not even realize that you are using Ajax in Seaside? &nbsp;Is it just a matter of creating an &quot;Ajaxified&quot; component? Or, do you have to &quot;set up&quot; your application to use those components? &nbsp;(Sorry...you mention Ajax below...)</div>
<div><br class="webkit-block-placeholder"></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">It took a while for me to get used to pulling in CSS and JS files into the<br>

image, changing CSS in method-body strings, and serving them out via<br>
FileLibrary accessors. It was also very frustrating figuring out that<br>
FireFox cached all this stuff unless you actually went into about:config and<br>
tweaked a parameter to turn it off.</blockquote><div><br class="webkit-block-placeholder"></div><div>I DID play with that to try to copy the Tab Strip example, and tried to modify some of the graphics and that sort of thing. &nbsp;The caching thing explains a lot. &nbsp;The &quot;other&quot; framwork has a WebStyle class where you put all your CSS, and you just tell it to reset when you make changes...that is pretty nice, and might be something you could do with your seemingly rapid understanding! &nbsp;They both need a built-in interface to browse to a graphic and suck it in if they are going to use method-body-strings, though! &nbsp;In both cases I had to figure out how to do that myself, which wasn&#39;t pretty! &nbsp;I mean, you have to learn how to compile a method!</div>
<div><br class="webkit-block-placeholder"></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Basic components were easy once I understood #children (which Seaside uses<br>

for several things like updating URLs and headers). I am curious if Aida<br>
requires something like #children, and what trade-offs it makes.</blockquote><div><br class="webkit-block-placeholder"></div><div>I tried to work through the Magritte tutorial and ALWAYS ran into the &quot;no children specified&quot; error message or whatever. &nbsp;In Aida, (so far in my limited experience), there are no #children. &nbsp;You just add elements, or elements with elements (components) to other elements. &nbsp;I mean, you can access the &quot;children&quot; that have been created by these additions, but I don&#39;t think I quite understand #children. &nbsp;Url&#39;s are just automatically created, or specified with #preferedUrl to make a &quot;pretty&quot; Url.</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Ajax components were not easy, I went through a few depressing rounds of<br>
worrying about how much more I still had to understand to be productive. I<br>
was pushing Ajax a bit more than Seaside 2.8 was originally architected for.<br>
If you have the callback of one component changing and re-rendering the<br>
component-tree structure in a distant component, you better know what you<br>
are doing (and use Lukas #in:do: solution, see nabble archives). The way 2.8<br>
does callback processing down the component tree in the presence of Ajax,<br>
depending on when the last complete #render:aComponent was called, is too<br>
complex for an app-programmer to have to understand; #in:do: seems to be a<br>
2.8 fix, and this issue is scheduled to disappear in 2.9.</blockquote><div><br class="webkit-block-placeholder"></div><div>The only thing I have tried to &quot;push&quot; in that way is for my applications to receive &quot;signals&quot; about external events, which I tried to implement with Announcements. &nbsp;Janko tells me this is Comet, and can be done, but I haven&#39;t been able to do it the way he explained it to me in Squeak, which seems to have more to to with the Process scheduling than Ajax.</div>
<div><br class="webkit-block-placeholder"></div><div>This would be very helpful for me for things like Web Based tracking boards which don&#39;t constantly refresh themselves, but update when they recieve an Announcement.</div>
<div><br class="webkit-block-placeholder"></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">People have different opinions on a generic Seaside component library that<br>

fit together within a slightly higher-level UI framework. Personally I think<br>
it would be a huge asset, and would be delighted if Seaside (not &quot;core&quot;,<br>
perhaps a separate package) made some opinionated decisions in this regard.</blockquote><div><br class="webkit-block-placeholder"></div><div>I stand firm in my belief in Standard Work! &nbsp;If you can automate something that you do all the time &quot;by hand,&quot; that&#39;s a good thing. &nbsp;And, with Smalltalk, you should alway be able to &quot;tweak&quot; what the higer-level framework gives you, right?</div>
<div><br class="webkit-block-placeholder"></div><div>Anyway, I would be happy to move the philosophical discussions around the available framework features off the list to avoid irritating anyone, if you like. &nbsp;</div><div>
<br class="webkit-block-placeholder"></div><div>Maybe two beginners could manage to come up with some good ideas for something useful that way! &nbsp;(Maybe we should write our own higher-level UI framework. &nbsp;I have been thinking about it myself, and the gurus have create frameworks that would likely make it do-able for the less guru-ish...)<br>
</div><div><br></div><div>Thanks for all the input,<br></div><div><br class="webkit-block-placeholder"></div><div>Rob</div></div>