<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello everybody.<BR>First of all, my apologies if 
some of the comments were reported already.<BR>This week I started to play a 
little with the Seaside port for Dolphin, and a few comments came to 
mind:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>1) When the current Seaside.pac is loaded, it 
creates a circular dependency between Seaside and Dolphin, making it impossible 
to save modifications or unload almost every package in the image. This is 
because the package loose methods are no loaded as such. I've made 2 small 
modifications to the class DolphinPackageExporter to (hopefully) solve this: 
</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>---<BR>DolphinPackageExporter&gt;&gt;fileOut<BR>&nbsp;self 
fileOutPackageInformation.<BR>&nbsp;self fileOutClassNames.<BR>&nbsp;self 
fileOutLooseMethodsNames. "added by me"<BR>&nbsp;self 
fileOutPrerequisites.<BR>&nbsp;super 
fileOut<BR>---<BR>DolphinPackageExporter&gt;&gt;fileOutLooseMethodsNames</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;stream cr; cr; nextPutAll: 'package 
methodNames'.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;self sortedMethods <BR>&nbsp; select: [:ref | 
ref category first = $*]<BR>&nbsp; thenDo: [:ref |<BR>&nbsp;&nbsp; stream 
<BR>&nbsp;&nbsp;&nbsp; cr; <BR>&nbsp;&nbsp;&nbsp; nextPutAll: 'add: ', 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ref classSymbol printString, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' -&gt; ', 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ref methodSymbol printString, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';'].</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;stream cr; nextPutAll: 
'yourself.'.<BR>---</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>2) I have also added the 
method<BR>---<BR>DolphinPackageExporter&gt;&gt;fileOutInitializerForClass: 
aClass<BR>&nbsp;&nbsp;&nbsp; "do nothing"<BR>---</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>because the initialization was happening twice. 
This, however, does not happen in the current Seaside.pac available from the 
web, so maybe my Squeak image is a mess.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>3) The package Seaside-Dolphin.pac contains the 
method<BR>---<BR>Symbol&gt;&gt;isUnary<BR>^self argumentCount = 1<BR>---<BR>I 
think it should say<BR>---<BR>Symbol&gt;&gt;isUnary<BR>^self argumentCount = 
0<BR>---</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I saw a manifestation of this possible error when I 
tried to use scriptaculous in Dolphin.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>4) While using scriptaculous, I detected what could 
be a possible semantic difference in the class MessageSend. For instance, in the 
method</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>SUAjax&gt;&gt;on: aSelector of: 
anObject<BR>&nbsp;&nbsp;&nbsp; self<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
callback:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(MessageSend<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
receiver: 
anObject<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selector: aSelector)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>aMessageSend is created, and then it's evaluated 
with 1 argument. However, Dolphin seems to need the MessageSend to be created 
with (at least) one argument in order to be correctly evaluated later, so I 
changed it to </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>SUAjax&gt;&gt;on: aSelector of: 
anObject<BR>&nbsp;&nbsp;&nbsp; self<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
callback:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
(MessageSend<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
receiver: 
anObject<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selector: 
aSelector<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
argument: nil)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>This was only a problem for scriptaculous, I didn't 
see an error in Seaside due to this, but it seems to be something to be aware 
of.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>5) Finally, I exported scriptaculous using the 
DolphinPackageExporter, and with minor (and trivial) fixes could make the 
examples work. I added a class </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>ScriptaculousVWInfo subclass: 
#ScriptaculousDolphinInfo<BR>&nbsp;instanceVariableNames: 
''<BR>&nbsp;classVariableNames: ''<BR>&nbsp;poolDictionaries: 
''<BR>&nbsp;category: 'Scriptaculous-Platform'</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>which is pretty much c&amp;p from 
SeasideDolphinInfo, beeing the #packageName the only modification I made. 
Although it worked, I guess my c&amp;p is not the best approach, and perhaps 
there are details to be considered when writting such a class.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Well, that's all. Seaside and Scriptaculous looks 
like a lot of fun, by the way.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>best regards<BR>martin</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BODY></HTML>