<div dir="ltr">Hi guys,<div><br></div><div>I had tried another approach, I installed "Etoys-To-Go 5.0.1.app" on my Ubuntu, and interaction with Sugar work, as you can see in the following screenshot (<a href="http://ubuntuone.com/1Ax7rU0ikfZHH1n0NClzKe">http://ubuntuone.com/1Ax7rU0ikfZHH1n0NClzKe</a>) , i can open Journal, but another kind or error raised:</div>
<div><br></div><div><br></div><div>Any idea ?</div><div><br></div><div><div>=========== SqueakDebug.log START ==========</div><div>Error: attempt to index non-existent element in an ordered collection</div><div>6 December 2013 5:27:52 pm</div>
<div><br></div><div>VM: unix - a SmalltalkImage</div><div>Image: etoys5.0 [latest update: #2409]</div><div><br></div><div>SecurityManager state:</div><div>Restricted: false</div><div>FileAccess: true</div><div>SocketAccess: true</div>
<div>Working Dir /home/gustavo/tmp/Etoys</div><div>Trusted Dir /home/gustavo/tmp/.etoys</div><div>Untrusted Dir /home/gustavo/tmp/Etoys</div><div><br></div><div>OrderedCollection(Object)>>error:</div><div><span class="" style="white-space:pre">        </span>Receiver: an OrderedCollection()</div>
<div><span class="" style="white-space:pre">        </span>Arguments and temporary variables: </div><div><span class="" style="white-space:pre">                </span>aString: <span class="" style="white-space:pre">        </span>'attempt to index non-existent element in an ordered collection'</div>
<div><span class="" style="white-space:pre">        </span>Receiver's instance variables: </div><div><span class="" style="white-space:pre">                </span>array: <span class="" style="white-space:pre">        </span>#(nil nil nil nil nil nil nil nil nil nil)</div>
<div><span class="" style="white-space:pre">                </span>firstIndex: <span class="" style="white-space:pre">        </span>3</div><div><span class="" style="white-space:pre">                </span>lastIndex: <span class="" style="white-space:pre">        </span>2</div>
<div><br></div><div>OrderedCollection>>errorNoSuchElement</div><div><span class="" style="white-space:pre">        </span>Receiver: an OrderedCollection()</div><div><span class="" style="white-space:pre">        </span>Arguments and temporary variables: </div>
<div><br></div><div><span class="" style="white-space:pre">        </span>Receiver's instance variables: </div><div><span class="" style="white-space:pre">                </span>array: <span class="" style="white-space:pre">        </span>#(nil nil nil nil nil nil nil nil nil nil)</div>
<div><span class="" style="white-space:pre">                </span>firstIndex: <span class="" style="white-space:pre">        </span>3</div><div><span class="" style="white-space:pre">                </span>lastIndex: <span class="" style="white-space:pre">        </span>2</div>
<div><br></div><div>OrderedCollection>>at:</div><div><span class="" style="white-space:pre">        </span>Receiver: an OrderedCollection()</div><div><span class="" style="white-space:pre">        </span>Arguments and temporary variables: </div>
<div><span class="" style="white-space:pre">                </span>anInteger: <span class="" style="white-space:pre">        </span>1</div><div><span class="" style="white-space:pre">        </span>Receiver's instance variables: </div><div><span class="" style="white-space:pre">                </span>array: <span class="" style="white-space:pre">        </span>#(nil nil nil nil nil nil nil nil nil nil)</div>
<div><span class="" style="white-space:pre">                </span>firstIndex: <span class="" style="white-space:pre">        </span>3</div><div><span class="" style="white-space:pre">                </span>lastIndex: <span class="" style="white-space:pre">        </span>2</div>
<div><br></div><div>OrderedCollection(SequenceableCollection)>>first</div><div><span class="" style="white-space:pre">        </span>Receiver: an OrderedCollection()</div><div><span class="" style="white-space:pre">        </span>Arguments and temporary variables: </div>
<div><br></div><div><span class="" style="white-space:pre">        </span>Receiver's instance variables: </div><div><span class="" style="white-space:pre">                </span>array: <span class="" style="white-space:pre">        </span>#(nil nil nil nil nil nil nil nil nil nil)</div>
<div><span class="" style="white-space:pre">                </span>firstIndex: <span class="" style="white-space:pre">        </span>3</div><div><span class="" style="white-space:pre">                </span>lastIndex: <span class="" style="white-space:pre">        </span>2</div>
<div><br></div><div><br></div><div>--- The full stack ---</div><div>OrderedCollection(Object)>>error:</div><div>OrderedCollection>>errorNoSuchElement</div><div>OrderedCollection>>at:</div><div>OrderedCollection(SequenceableCollection)>>first</div>
<div> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</div><div>[] in SugarLauncher>>gconfPropertiesAt: {[:entry | props at: (entry attributeAt: 'name') put: entry elements firs...]}</div>
<div>XMLElement>>tagsNamed:do:</div><div>[] in XMLElement(XMLNode)>>tagsNamed:do: {[:each | each tagsNamed: aSymbol do: aOneArgumentBlock]}</div><div>[] in XMLElement(XMLNodeWithElements)>>elementsDo: {[:each | aBlock value: each]}</div>
<div>OrderedCollection>>do:</div><div>XMLElement(XMLNodeWithElements)>>elementsDo:</div><div>XMLElement(XMLNode)>>tagsNamed:do:</div><div>XMLElement>>tagsNamed:do:</div><div>[] in XMLDocument(XMLNode)>>tagsNamed:do: {[:each | each tagsNamed: aSymbol do: aOneArgumentBlock]}</div>
<div>[] in XMLDocument(XMLNodeWithElements)>>elementsDo: {[:each | aBlock value: each]}</div><div>OrderedCollection>>do:</div><div>XMLDocument(XMLNodeWithElements)>>elementsDo:</div><div>XMLDocument(XMLNode)>>tagsNamed:do:</div>
<div>[] in SugarLauncher>>gconfPropertiesAt: {[:f | props := Dictionary new. (XMLDOMParser parseDocumentFrom: f) tagsN...]}</div><div>[] in FileStream class>>detectFile:do: {[anotherBlock value: file]}</div>
<div>BlockContext>>ensure:</div><div>FileStream class>>detectFile:do:</div><div>FileStream class>>readOnlyFileNamed:do:</div><div>[] in SugarLauncher>>gconfPropertiesAt: {[FileStream readOnlyFileNamed: dir pathName , '/.gconf' , aString , '/%gco...]}</div>
<div>BlockContext>>on:do:</div><div>SugarLauncher>>gconfPropertiesAt:</div><div>[] in SugarLauncher>>ownerBuddy {[:ex | ^ SugarBuddyOwner fromDictionary: (self gconfPropertiesAt: '/deskto...]}</div>
<div>BlockContext>>valueWithPossibleArgs:</div><div>[] in MethodContext(ContextPart)>>handleSignal: {[(self tempAt: 2) valueWithPossibleArgs: {exception}]}</div><div>BlockContext>>ensure:</div><div>MethodContext(ContextPart)>>handleSignal:</div>
<div>DBusError(Exception)>>signal</div><div>DBusError(Exception)>>signal:</div><div>DBusError class(Exception class)>>signal:</div><div>DBus>>sendDBusMessage:timeout:</div><div>DBus>>sendDBusMessage:</div>
<div>SugarPresence(DBusProxy)>>dbusPerform:interface:withArguments:</div><div>SugarPresence(DBusProxy)>>dbusPerform:interface:</div><div>SugarPresence>>getOwner</div><div>[] in SugarLauncher>>ownerBuddy {[^ SugarBuddy fromDictionary: self presence getOwner getProperties]}</div>
<div>BlockContext>>on:do:</div><div>SugarLauncher>>ownerBuddy</div><div>[] in SugarLauncher>>startUp {[:activityId | OLPCVirtualScreen setupIfNeeded. World windowEventHandler: ...]}</div><div>Dictionary>>at:ifPresent:</div>
<div>SugarLauncher>>startUp</div><div>[] in AutoStart class>>startUp: {[launcher startUp]}</div><div>WorldState>>runStepMethodsIn:</div><div>PasteUpMorph>>runStepMethods</div><div>WorldState>>doOneCycleNowFor:</div>
<div>WorldState>>doOneCycleFor:</div><div>PasteUpMorph>>doOneCycle</div><div>[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}</div><div>[] in BlockContext>>newProcess {[self value. Processor terminateActive]}</div>
<div>=========== SqueakDebug.log END ==========</div></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Dec 6, 2013 at 11:57 AM, David T. Lewis <span dir="ltr"><<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Fri, Dec 06, 2013 at 10:34:16AM -0200, Gustavo Duarte wrote:<br>
> Dave,<br>
><br>
> I believe that squeakvm is compiled with Sugar support, because I can run<br>
> Scratch and save projects on Journal, just in case, there is another way to<br>
> know if squeakvm is compiled with Sugar support ?<br>
><br>
<br>
</div>If you run the VM executable directly with the -help option, it will print<br>
a list of available command line options. If the VM was compiled with<br>
Sugar support, the list of X11 options will include this:<br>
<br>
-sugarBundleId <id> set window property _SUGAR_BUNDLE_ID to <id><br>
-sugarActivityId <id> set window property _SUGAR_ACTIVITY_ID to <id><br>
<br>
If the VM does not have this, then it will not handle the command line<br>
option parsing as expected.<br>
<br>
As far as I can tell, the Sugar support in the VM is used only to set<br>
some X11 window properties. I am not familiar with Sugar, so I do not<br>
know why this is important, but I would expect that the basic functioning<br>
of Etoys and Squeak would not be affected by this at all. So just for<br>
purposes of testing, you might want to try running Etoys with the following<br>
two parameters removed from the command line:<br>
<br>
-sugarBundleId org.vpri.EtoysActivity<br>
-sugarActivityId > 24c67ec800d1d71723f959b56a213accf140e7bc<br>
<br>
I expect that if you run it this way, then Etoys should start up normally<br>
and the "inverted dictionary" problem will be resolved. This will at<br>
least confirm the problem, then we can figure out what to do to fix it.<br>
<br>
Dave<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
><br>
> I paste bellow another test I had done:<br>
><br>
> As Scratch is working well with the interaction with Sugar, I copied the<br>
> same parameters of Scratch starting script, and executed this from a<br>
> terminal as:<br>
><br>
> sudo /usr/lib/squeak/4.4.7-2357/squeakvm -vm-display-X11 -swapbtn -encoding<br>
> UTF-8 -vm-sound-ALSA -sugarBundleId org.vpri.EtoysActivity -sugarActivityId<br>
> 24c67ec800d1d71723f959b56a213accf140e7bc /usr/share/etoys/etoys.image<br>
> SQUEAKLETS<br>
> /home/gustavo-cm1/.sugar/default/org.vpri.EtoysActivity/instance/ BUNDLE_ID<br>
> org.vpri.EtoysActivity ACTIVITY_ID 24c67ec800d1d71723f959b56a213accf140e7bc<br>
><br>
><br>
><br>
><br>
> The output debug log is:<br>
><br>
><br>
> =========== SqueakDebug.log START ==========<br>
> Error: No content to install<br>
> 6 December 2013 10:05:27 am<br>
><br>
> VM: unix - a SmalltalkImage<br>
> Image: etoys5.0 [latest update: #2408]<br>
><br>
> SecurityManager state:<br>
> Restricted: false<br>
> FileAccess: true<br>
> SocketAccess: true<br>
> Working Dir /usr/share/etoys/My Squeak<br>
> Trusted Dir /usr/share/etoys/secure<br>
> Untrusted Dir /usr/share/etoys/My Squeak<br>
><br>
> CodeLoader(Object)>>error:<br>
> Receiver: a CodeLoader<br>
> Arguments and temporary variables:<br>
> aString: 'No content to install'<br>
> Receiver's instance variables:<br>
> baseURL: ''<br>
> sourceFiles: #(a HTTPDownloadRequest)<br>
> segments: nil<br>
> publicKey: nil<br>
><br>
> CodeLoader>>installSourceFile:<br>
> Receiver: a CodeLoader<br>
> Arguments and temporary variables:<br>
> aStream: nil<br>
> contents: nil<br>
> trusted: nil<br>
> Receiver's instance variables:<br>
> baseURL: ''<br>
> sourceFiles: #(a HTTPDownloadRequest)<br>
> segments: nil<br>
> publicKey: nil<br>
><br>
> [] in CodeLoader>>installSourceFiles {[:req | self installSourceFile: req<br>
> contentStream]}<br>
> Arguments and temporary variables:<br>
> req: a HTTPDownloadRequest<br>
><br>
> Array(SequenceableCollection)>>do:<br>
> Receiver: #(a HTTPDownloadRequest)<br>
> Arguments and temporary variables:<br>
> aBlock: [] in CodeLoader>>installSourceFiles {[:req | self<br>
> installSourceFile: r...etc...<br>
> index: 1<br>
> indexLimiT: 1<br>
> Receiver's instance variables:<br>
> #(a HTTPDownloadRequest)<br>
><br>
><br>
> --- The full stack ---<br>
> CodeLoader(Object)>>error:<br>
> CodeLoader>>installSourceFile:<br>
> [] in CodeLoader>>installSourceFiles {[:req | self installSourceFile: req<br>
> contentStream]}<br>
> Array(SequenceableCollection)>>do:<br>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
> CodeLoader>>installSourceFiles<br>
> ProjectLauncher>>startUpAfterLogin<br>
> ProjectLauncher>>doEtoyLogin<br>
> ProjectLauncher>>startUp<br>
> [] in AutoStart class>>startUp: {[launcher startUp]}<br>
> WorldState>>runStepMethodsIn:<br>
> PasteUpMorph>>runStepMethods<br>
> WorldState>>doOneCycleNowFor:<br>
> WorldState>>doOneCycleFor:<br>
> PasteUpMorph>>doOneCycle<br>
> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield.<br>
> false] whileFalse. nil]}<br>
> [] in BlockContext>>newProcess {[self value. Processor terminateActive]}<br>
> =========== SqueakDebug.log END ==========<br>
><br>
><br>
><br>
> On Fri, Dec 6, 2013 at 12:17 AM, David T. Lewis <<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>> wrote:<br>
><br>
> > On Thu, Dec 05, 2013 at 02:36:42PM -0800, Eliot Miranda wrote:<br>
> > > On Thu, Dec 5, 2013 at 2:01 PM, Gustavo Duarte<br>
> > > <<a href="mailto:gduarte@activitycentral.com">gduarte@activitycentral.com</a>>wrote:<br>
> > ><br>
> > > > Eliot,<br>
> > > ><br>
> > > > Here the output of ps ww PID command.<br>
> > > ><br>
> > > > XO:<br>
> > > ><br>
> > > > PID TTY STAT TIME COMMAND<br>
> > > > 976 ? S 0:22 /usr/lib/squeak/4.10.2-2614/squeakvm<br>
> > -encoding<br>
> > > > UTF-8 -vm-display-x11 -xshm -sugarBundleId org.vpri.EtoysActivity<br>
> > > > -sugarActivityId d25f8c2f9a19397ce914965abf04ed31b3f6b0ea<br>
> > -vm-sound-ALSA<br>
> > > > /usr/share/etoys/etoys.image BUNDLE_PATH<br>
> > > > /home/olpc/Activities/Etoys.activity SQUEAKLETS<br>
> > > > /home/olpc/.sugar/default/org.vpri.EtoysActivity/instance BUNDLE_ID<br>
> > > > org.vpri.EtoysActivity ACTIVITY_ID<br>
> > d25f8c2f9a19397ce914965abf04ed31b3f6b0ea<br>
> > > ><br>
> > > ><br>
> > > > CM:<br>
> > > ><br>
> > > > PID TTY STAT TIME COMMAND<br>
> > > > 5912 ? Rl 0:06 /usr/lib/squeak/4.4.7-2357/squeakvm<br>
> > -encoding<br>
> > > > UTF-8 -vm-display-x11 -xshm -sugarBundleId org.vpri.EtoysActivity<br>
> > > > -sugarActivityId c03be0a816bee1440f701b7d3b504b0968cb3274<br>
> > -vm-sound-pulse<br>
> > > > /usr/share/etoys/etoys.image BUNDLE_PATH<br>
> > > > /usr/share/sugar/activities/Etoys.activity SQUEAKLETS<br>
> > > > /home/gustavo-cm1/.sugar/default/org.vpri.EtoysActivity/instance<br>
> > BUNDLE_ID<br>
> > > > org.vpri.EtoysActivity ACTIVITY_ID<br>
> > c03be0a816bee1440f701b7d3b504b0968cb3274<br>
> > > ><br>
> > > ><br>
> > > > Seem the script that start squeak is ok, right ?<br>
> > > ><br>
> > ><br>
> > ><br>
> > > Looks like it :-(. That implies theres a bug in the VM on ubuntu :-(.<br>
> > > Might it be something to do with the vm-sound-pulse plugin mis-parsing<br>
> > the<br>
> > > command line? What happens if you start it with no sound (omit<br>
> > > -vm-sound-pulse) ?<br>
> > ><br>
> ><br>
> > After reading this thread, I was initially confused by the command line<br>
> > options that are being passed to the VM:<br>
> ><br>
> > -encoding UTF-8<br>
> > -vm-display-x11<br>
> > -xshm<br>
> > -sugarBundleId org.vpri.EtoysActivity<br>
> > -sugarActivityId c03be0a816bee1440f701b7d3b504b0968cb3274<br>
> > -vm-sound-pulse<br>
> ><br>
> > These are options that are parsed by the VM executable itself, as opposed<br>
> > to being passed to the Etoys image and evaluated there.<br>
> ><br>
> > I took a look at the VM sources, and see that the -sugarBundleId and<br>
> > the -sugarActivityId parameters will be interpreted by the VM executable<br>
> > if and only if the VM was compiled with Sugar support:<br>
> ><br>
> > # if defined(SUGAR)<br>
> > else if (!strcmp(arg, "-sugarBundleId")) sugarBundleId= argv[1];<br>
> > else if (!strcmp(arg, "-sugarActivityId")) sugarActivityId=<br>
> > argv[1];<br>
> > # endif<br>
> ><br>
> > I expect that if the Etoys image is run from a script that specifies those<br>
> > two VM parameters, and if the VM was not compiled without Sugar support,<br>
> > then the command line parameters are probably going to get out of whack.<br>
> > The dictionary that got turned inside out is probably a side effect of<br>
> > this.<br>
> ><br>
> > So my guess is that the script is trying to run a VM for Etoys in the<br>
> > Sugar environment, but the VM that is being run by that script was not<br>
> > compiled with Sugar support enabled.<br>
> ><br>
> > Dave<br>
> ><br>
> ><br>
> ><br>
<br>
><br>
<br>
<br>
</div></div></blockquote></div><br></div>