[Glass] Newbie on GLASS - Hello world fail

Ezequiel Tolnay via Glass glass at lists.gemtalksystems.com
Tue Sep 22 03:35:42 PDT 2015


Hi Mariano,

The -a (low caps) was a typo, oops!

Until I get the hang of the smalltallkers lingo, any instructions I write
will be confusing!


>    1. Zinc
>    - edit *WAServerAdaptor class>>startOn:*
>
> I probably shouldn't have said edit. Copy the method *WAServerAdaptor
class>>startOn:*, and add to it the following extra parameter:

>
>    - add new parameter bindingAddressOn: aBindingAddress
>       - add the following line before the last line (adaptor start):
>          - adaptor server bindingAddress: aBindingAddress.
>       - save (the adaptor must set its bindingAddress prior to starting,
>       and this method creates it and immediately starts it, so it must be
>       configured either here or as part of the adaptor creation or initialisation)
>       - edit *WAGemStoneRunSeasideGems>>startOn:*
>       - add the following at the end as a second parameter to self
>       adaptorClass
>          - bindingAddressOn: '127.0.0.1'
>       - save
>       - tode /home/seaside/webServer --restart
>
>
>
The code is small enough, I reckon it is easier to just write it here haha!

New method *WAServerAdaptor class>>*startOn: portInteger bindingAddressOn:
aBindingAddress
  "Convenience method to start a single adaptor on the specified port. If
an existing
adaptor of this type is already registered, it will be restarted on the
specified port."

  | adaptor |
  adaptor := self default.
  adaptor isNil
    ifFalse: [
      adaptor
        stop;
        port: portInteger ]
    ifTrue: [ adaptor := self port: portInteger ].
  adaptor server bindingAddress: aBindingAddress.
  adaptor start

Update *WAGemStoneRunSeasideGems>>*startOn: port
  self adaptorClass startOn: port bindingAddressOn: '127.0.0.1'

Cheers!

Ziggy

On 22 September 2015 at 11:54, Mariano Martinez Peck <marianopeck at gmail.com>
wrote:

> Hi Ezequiel,
>
> Quick question and then I answer inline. ..Just to know how much I should
> test this...did you really test it? I mean, with and without the changes
> and trying to access from outside localhost?
>
> On Mon, Sep 21, 2015 at 1:43 PM, Ezequiel Tolnay <etolnay at gmail.com>
> wrote:
>
>> Limiting access to localhost:
>>
>>
>>    1. GemStone:
>>       - add the following to
>>       $GS_HOME/gemstone/stones/devKit/extents/system.conf
>>       - STN_LISTENING_ADDRESSES = "::1";
>>
>>
> Cool, easy.
>
>
>>
>>    1. NetLDI:
>>       - trickier, I couldn't manage to get the parameter injected by the
>>       caller, so I replace the binary with a script that injects -A ::1 before
>>       all other parameters, as follows:
>>       - sudo
>>       mv $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.Linux/bin/startnetldi{,_bin}
>>       - sudo sh -c "echo -e '#\x21/bin/bash\n\${0}_bin -a ::1 \$*' >
>>       $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.
>>
>>
> For me it easy because I start netldi with my custom scripts. BTW... note
> that the argument is "-A" (uppercase), not "-a" as you show above because
> that's another argument ("  all processes started by the netldi will belong
> to this account."). I guess it was an email writing problem and you were
> using -A instead ?
>
>
>
>>
>>    - Linux/bin/startnetldi"
>>       - sudo chmod
>>       +x $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.Linux/bin/startnetldi
>>    1. Zinc
>>       - edit *WAServerAdaptor class>>startOn:*
>>       - add new parameter bindingAddressOn: aBindingAddress
>>       - add the following line before the last line (adaptor start):
>>          - adaptor server bindingAddress: aBindingAddress.
>>       - save (the adaptor must set its bindingAddress prior to starting,
>>       and this method creates it and immediately starts it, so it must be
>>       configured either here or as part of the adaptor creation or initialisation)
>>       - edit *WAGemStoneRunSeasideGems>>startOn:*
>>       - add the following at the end as a second parameter to self
>>       adaptorClass
>>          - bindingAddressOn: '127.0.0.1'
>>       - save
>>       - tode /home/seaside/webServer --restart
>>
>>
>>
>
> mmmmm I don't have any #bindingAddressOn: method defined anywhere. Maybe
> it's because of the version of Seaside I am using. Could you please share
> with me which class implements such a method and which is the source code
> of such method ?
>
> Thanks in advance,
>
>
>
>> Cheers!
>>
>> Ziggy
>>
>> On 22 September 2015 at 02:14, Mariano Martinez Peck <
>> marianopeck at gmail.com> wrote:
>>
>>> Cool!!!
>>> Let me know did you do the zinc thingy to only bind localhost ;)  I
>>> would also like to have netldi and Zinc only accepting from localhost!
>>>
>>> On Mon, Sep 21, 2015 at 1:12 PM, Ezequiel Tolnay <etolnay at gmail.com>
>>> wrote:
>>>
>>>> Good news, I reinstalled the whole thing again from scratch (the latest
>>>> version in the dev branch) and now it is working!
>>>>
>>>> From Hello World to a full featured website will be a steep uphill, but
>>>> I finally have a working environment! Stoked :)
>>>>
>>>> Cheers!
>>>>
>>>> Ziggy
>>>>
>>>> On 21 September 2015 at 22:03, Ezequiel Tolnay <etolnay at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Mariano,
>>>>>
>>>>> Thanks for the feedback!
>>>>>
>>>>> I don't know which version of seaside gets installed, 3.1x apparently.
>>>>> After running "./installServer devKit 3.2.8.1" from a copy of the dev
>>>>> branch of the tODE devKit, as per Dale's instructions, I mounted Seaside in
>>>>> tODE, installed, and registered it as follows:
>>>>>
>>>>>    - mount @/sys/stone/dirs/gsDevKitHome/projects/seaside31 /home
>>>>>    seaside
>>>>>    - /home/seaside/install
>>>>>    - cd /home/seaside
>>>>>    - ./webServer --register=zinc --port=8383
>>>>>    - ./webServer --start
>>>>>
>>>>> The stack at the error (continuation from the object log) is the
>>>>> following (the error is in the 15th position):
>>>>>
>>>>> aTDDebugger
>>>>> --------------------
>>>>> 1.
>>>>> WAGemStoneProductionErrorHandler(WAErrorHandler)>>saveExceptionContinuation:
>>>>> @10 line 7
>>>>> 2. WAGemStoneProductionErrorHandler>>handleDefault: @2 line 3
>>>>> 3. WAGemStoneProductionErrorHandler(WAErrorHandler)>>handleError: @2
>>>>> line 2
>>>>> 4.
>>>>> WAGemStoneProductionErrorHandler(WAErrorHandler)>>handleGemStoneException:
>>>>> @4 line 4
>>>>> 5.
>>>>> WAGemStoneProductionErrorHandler(WAHtmlHaltAndErrorHandler)>>handleException:
>>>>> @2 line 2
>>>>> 6. [] in
>>>>> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
>>>>> @2 line 5
>>>>> 7. WAGemStoneProductionErrorHandler(ExecBlock)>>on:do: @3 line 42
>>>>> 8. [] in
>>>>> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
>>>>> @2 line 8
>>>>> 9. [] in ExecBlock>>on:do: @4 line 49
>>>>> 10. MessageNotUnderstood(AbstractException)>>_executeHandler: @3 line 8
>>>>> 11. MessageNotUnderstood(AbstractException)>>_signalWith: @1 line 1
>>>>> 12. MessageNotUnderstood(AbstractException)>>signal @2 line 47
>>>>> 13. Symbol(Object)>>doesNotUnderstand: @9 line 10
>>>>> 14. Symbol(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
>>>>> *15. [] in WAInitialRenderLoopContinuation>>createRoot @3 line 3*
>>>>> 16. GRSmallDictionary>>at:ifAbsent: @8 line 8
>>>>> 17. WAGemStoneRequestContext(WARequestContext)>>rootComponentIfAbsent:
>>>>> @3 line 3
>>>>> 18. WAInitialRenderLoopContinuation>>createRoot @3 line 3
>>>>> 19. WAInitialRenderLoopContinuation>>basicPerformAction @2 line 3
>>>>> 20. [] in
>>>>> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>performAction
>>>>> @2 line 2
>>>>> 21. WAInitialRenderLoopContinuation(ExecBlock)>>onException:do: @2
>>>>> line 66
>>>>> 22. WAInitialRenderLoopContinuation(ExecBlock)>>on:do: @5 line 47
>>>>> 23.
>>>>> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
>>>>> @2 line 3
>>>>> 24. [] in
>>>>> ExecBlock(WARenderLoopContinuation)>>withNotificationHandlerDo: @2 line 20
>>>>> 25. ExecBlock>>on:do: @3 line 42
>>>>> 26.
>>>>> WAInitialRenderLoopContinuation(WARenderLoopContinuation)>>withNotificationHandlerDo:
>>>>> @8 line 21
>>>>> 27.
>>>>> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>performAction
>>>>> @2 line 2
>>>>> 28.
>>>>> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>handleFiltered:
>>>>> @2 line 2
>>>>> 29. [] in WAInitialRenderLoopContinuation(WARequestHandler)>>handle:
>>>>> @3 line 4
>>>>> 30. WAInitialRenderLoopContinuation(ExecBlock)>>on:do: @3 line 42
>>>>> 31. WACurrentRequestContext class(WADynamicVariable
>>>>> class)>>use:during: @2 line 4
>>>>> 32. [] in WAGemStoneRequestContext(WARequestContext)>>push:during: @2
>>>>> line 5
>>>>> 33. WAGemStoneRequestContext(ExecBlock)>>ensure: @2 line 12
>>>>> 34. WAGemStoneRequestContext(WARequestContext)>>push:during: @3 line 6
>>>>> 35. WAInitialRenderLoopContinuation(WARequestHandler)>>handle: @2 line
>>>>> 4
>>>>> 36. [] in
>>>>> WAInitialRenderLoopContinuation(WASessionContinuation)>>handle: @2 line 5
>>>>> 37. WAInitialRenderLoopContinuation(ExecBlock)>>on:do: @3 line 42
>>>>> 38.
>>>>> WAInitialRenderLoopContinuation(WASessionContinuation)>>withUnregisteredHandlerDo:
>>>>> @2 line 3
>>>>> 39. WAInitialRenderLoopContinuation(WASessionContinuation)>>handle: @4
>>>>> line 5
>>>>> 40. WASession>>start @6 line 2
>>>>> 41. [] in WASession>>handleFiltered: @2 line 15
>>>>> 42. WAMergedRequestFields>>at:ifAbsent: @3 line 6
>>>>> 43. WASession>>handleFiltered: @16 line 14
>>>>> 44. [] in WASession(WARequestHandler)>>handle: @3 line 4
>>>>> 45. WASession(ExecBlock)>>on:do: @3 line 42
>>>>> 46. WACurrentRequestContext class(WADynamicVariable
>>>>> class)>>use:during: @2 line 4
>>>>> 47. [] in WAGemStoneRequestContext(WARequestContext)>>push:during: @2
>>>>> line 5
>>>>> 48. WAGemStoneRequestContext(ExecBlock)>>ensure: @2 line 12
>>>>> 49. WAGemStoneRequestContext(WARequestContext)>>push:during: @3 line 6
>>>>> 50. WASession(WARequestHandler)>>handle: @2 line 4
>>>>> 51. WASession>>handle: @10 line 11
>>>>> 52. WAApplication(WARegistry)>>dispatch:to:key: @4 line 6
>>>>> 53. WAApplication(WARegistry)>>handle:registering: @4 line 7
>>>>> 54. WAApplication>>handleDefault: @3 line 2
>>>>> 55. WAApplication(WARegistry)>>handleFiltered: @7 line 6
>>>>> 56. WAApplication>>handleFiltered: @10 line 8
>>>>> 57. WAExceptionFilter(WARequestFilter)>>handleFiltered: @3 line 4
>>>>> 58. [] in WAExceptionFilter>>handleFiltered: @2 line 7
>>>>> 59. WAExceptionFilter(ExecBlock)>>on:do: @3 line 42
>>>>> 60. WACurrentExceptionHandler class(WADynamicVariable
>>>>> class)>>use:during: @2 line 4
>>>>> 61. [] in WAExceptionFilter>>handleFiltered: @2 line 6
>>>>> 62. WAExceptionFilter(ExecBlock)>>onException:do: @2 line 66
>>>>> 63. WAExceptionFilter(ExecBlock)>>on:do: @5 line 47
>>>>> 64.
>>>>> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
>>>>> @2 line 3
>>>>> 65. WAExceptionFilter>>handleFiltered: @5 line 4
>>>>> 66. [] in WAApplication(WARequestHandler)>>handle: @3 line 4
>>>>> 67. WAApplication(ExecBlock)>>on:do: @3 line 42
>>>>> 68. WACurrentRequestContext class(WADynamicVariable
>>>>> class)>>use:during: @2 line 4
>>>>> 69. [] in WAGemStoneRequestContext(WARequestContext)>>push:during: @2
>>>>> line 5
>>>>> 70. WAGemStoneRequestContext(ExecBlock)>>ensure: @2 line 12
>>>>> 71. WAGemStoneRequestContext(WARequestContext)>>push:during: @3 line 6
>>>>> 72. WAApplication(WARequestHandler)>>handle: @2 line 4
>>>>> 73. WADispatcher>>handleFiltered:named: @3 line 5
>>>>> 74. WADispatcher>>handleFiltered: @8 line 6
>>>>> 75. [] in WADispatcher(WARequestHandler)>>handle: @3 line 4
>>>>> 76. WADispatcher(ExecBlock)>>on:do: @3 line 42
>>>>> 77. WACurrentRequestContext class(WADynamicVariable
>>>>> class)>>use:during: @2 line 4
>>>>> 78. [] in WAGemStoneRequestContext(WARequestContext)>>push:during: @2
>>>>> line 5
>>>>> 79. WAGemStoneRequestContext(ExecBlock)>>ensure: @2 line 12
>>>>> 80. WAGemStoneRequestContext(WARequestContext)>>push:during: @3 line 6
>>>>> 81. WADispatcher(WARequestHandler)>>handle: @2 line 4
>>>>> 82. [] in WAGsZincAdaptor(WAServerAdaptor)>>handleRequest: @3 line 4
>>>>> 83. WAGsZincAdaptor(ExecBlock)>>on:do: @3 line 42
>>>>> 84. WAGsZincAdaptor(WAServerAdaptor)>>handleRequest: @2 line 5
>>>>> 85. WAGsZincAdaptor(WAServerAdaptor)>>handle: @2 line 4
>>>>> 86. [] in WAGsZincAdaptor(WAServerAdaptor)>>process: @2 line 6
>>>>> 87. WAGsZincAdaptor(ExecBlock)>>ensure: @2 line 12
>>>>> 88. WAGsZincAdaptor(WAServerAdaptor)>>process: @4 line 7
>>>>> 89. [] in WAGsZincAdaptor>>process: @2 line 6
>>>>> 90. [] in
>>>>> GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock: @2 line 12
>>>>> 91. GRGemStonePlatform(ExecBlock)>>on:do: @3 line 42
>>>>> 92. [] in
>>>>> GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock: @11 line 13
>>>>> 93. GRGemStonePlatform(ExecBlock)>>ensure: @2 line 12
>>>>> 94. TransientRecursionLock>>critical: @11 line 12
>>>>> 95. GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock: @3
>>>>> line 6
>>>>> 96. [] in
>>>>> GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock: @2 line 6
>>>>> 97. Array(Collection)>>do: @5 line 10
>>>>> 98. [] in
>>>>> GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock: @3 line 5
>>>>> 99. GRGemStonePlatform(ExecBlock)>>on:do: @3 line 42
>>>>> 100. GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock: @2
>>>>> line 12
>>>>> 101. WAGsZincAdaptor>>process: @3 line 4
>>>>> 102. ZnSeasideServerAdaptorDelegate>>handleRequest: @3 line 4
>>>>> 103. [] in
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateAndDelegateRequest:
>>>>> @7 line 12
>>>>> 104.
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateRequest:do:
>>>>> @4 line 6
>>>>> 105.
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateAndDelegateRequest:
>>>>> @2 line 8
>>>>> 106. [] in
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequestProtected:
>>>>> @2 line 5
>>>>> 107. ZnManagingMultiThreadedServer(ExecBlock)>>on:do: @3 line 42
>>>>> 108.
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequestProtected:
>>>>> @2 line 6
>>>>> 109.
>>>>> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequest: @5
>>>>> line 9
>>>>> 110. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeOneRequestResponseOn:
>>>>> @2 line 11
>>>>> 111. ZnManagingMultiThreadedServer(ExecBlock)>>on:do: @3 line 42
>>>>> 112.
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeOneRequestResponseOn:
>>>>> @6 line 15
>>>>> 113. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
>>>>> @2 line 10
>>>>> 114. [] in ZnCurrentServer class(DynamicVariable class)>>value:during:
>>>>> @3 line 9
>>>>> 115. ZnCurrentServer class(ExecBlock)>>ensure: @2 line 12
>>>>> 116. ZnCurrentServer class(DynamicVariable class)>>value:during: @6
>>>>> line 10
>>>>> 117. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
>>>>> @4 line 9
>>>>> 118. ZnManagingMultiThreadedServer(ExecBlock)>>on:do: @3 line 42
>>>>> 119.
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
>>>>> @4 line 11
>>>>> 120. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
>>>>> @2 line 17
>>>>> 121. ZnManagingMultiThreadedServer(ExecBlock)>>on:do: @3 line 42
>>>>> 122. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
>>>>> @2 line 18
>>>>> 123. ZnManagingMultiThreadedServer(ExecBlock)>>ensure: @2 line 12
>>>>> 124. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
>>>>> @2 line 20
>>>>> 125. [] in ExecBlock>>ifCurtailed: @2 line 6
>>>>> 126. ExecBlock>>ensure: @2 line 12
>>>>> 127. ZnManagingMultiThreadedServer(ExecBlock)>>ifCurtailed: @3 line 8
>>>>> 128. [] in
>>>>> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
>>>>> @2 line 23
>>>>> 129. GsProcess>>_start @7 line 16
>>>>> 130. GsNMethod class>>_gsReturnToC @1 line 1
>>>>>
>>>>> About NetLDI port, I found what the problem is. gs64ldi is the default
>>>>> ldi service name and port, but in devKit the ldi is called devKit_ldi. I
>>>>> added a devKit_ldi to /etc/services and now it works well.
>>>>>
>>>>> According to $GS_HOME/projects/seaside31/install.ston, it looks like
>>>>> it is installing seaside3.1.3.1.
>>>>>
>>>>> I found I don't have a ConfigurationOfSeaside defined. I searched
>>>>> online and found this and run it to test it:
>>>>>
>>>>> Gofer new
>>>>>         squeaksource: 'MetacelloRepository';
>>>>>         package: 'ConfigurationOfSeaside';
>>>>>         load.
>>>>>
>>>>>
>>>>> ConfigurationOfSeaside now is there, "ConfigurationOfSeaside project"
>>>>> works well, but "ConfigurationOfSeaside project latestVersion" crashes
>>>>> (name not found: Pier tests):
>>>>> aTDDebugger
>>>>> --------------------
>>>>> 1. UserDefinedError(AbstractException)>>_signalWith: @5 line 25
>>>>> 2. UserDefinedError(AbstractException)>>signal @2 line 47
>>>>> 3. MetacelloMCVersionSpec(Object)>>error: @6 line 7
>>>>> *4. [] in
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpec:forLoad:forMap:packages:
>>>>> @3 line 7*
>>>>> 5. [] in
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>packageNamed:forLoad:forMap:ifAbsent:
>>>>> @33 line 35
>>>>> 6. Dictionary>>at:ifAbsent: @7 line 10
>>>>> 7.
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>packageNamed:forLoad:forMap:ifAbsent:
>>>>> @2 line 9
>>>>> 8.
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpec:forLoad:forMap:packages:
>>>>> @2 line 4
>>>>> 9. [] in
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs:forLoad:map:
>>>>> @2 line 12
>>>>> 10. [] in ExecBlock1(Set)>>do: @2 line 11
>>>>> 11. [] in ExecBlock2(KeyValueDictionary)>>keysDo: @2 line 7
>>>>> 12. KeyValueDictionary>>keysAndValuesDo: @18 line 15
>>>>> 13. KeyValueDictionary>>keysDo: @2 line 6
>>>>> 14. Set>>do: @3 line 11
>>>>> 15.
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs:forLoad:map:
>>>>> @13 line 10
>>>>> 16.
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs: @4
>>>>> line 12
>>>>> 17. [] in
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>expandToLoadableSpecNames: @2
>>>>> line 9
>>>>> 18. [] in
>>>>> ExecBlock1(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: @13 line
>>>>> 14
>>>>> 19. [] in
>>>>> ExecBlock0(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: @2
>>>>> line 9
>>>>> 20. ExecBlock0(ExecBlock)>>on:do: @3 line 42
>>>>> 21.
>>>>> MetacelloGemStonePlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary:
>>>>> @9 line 10
>>>>> 22.
>>>>> MetacelloGemStonePlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing:
>>>>> @2 line 4
>>>>> 23.
>>>>> MetacelloGemStonePlatform(MetacelloPlatform)>>stackCacheFor:at:doing: @2
>>>>> line 3
>>>>> 24.
>>>>> MetacelloMCVersionSpec(MetacelloVersionSpec)>>expandToLoadableSpecNames: @6
>>>>> line 6
>>>>> 25. MetacelloMCVersionSpec>>computeVersionStatus: @2 line 2
>>>>> 26. MetacelloMCVersion>>computeVersionStatus @3 line 9
>>>>> 27. MetacelloMCVersion(MetacelloVersion)>>versionStatus @3 line 3
>>>>> 28. MetacelloMCVersion(MetacelloVersion)>>printOn: @6 line 5
>>>>> 29. MetacelloMCVersion(Object)>>printString @6 line 14
>>>>> 30.
>>>>> TDWorkspaceClientElementBuilder(TDClientSourceElementBuilder)>>printItMenuAction:selectedText:
>>>>> @5 line 7
>>>>> 31.
>>>>> TDWorkspaceClientElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg:
>>>>> @12 line 10
>>>>> 32. [] in
>>>>> TDWorkspaceClientElementBuilder(TDClientSourceElementBuilder)>>menuActionBlock
>>>>> @6 line 8
>>>>> 33.
>>>>> TDWorkspaceClientElementBuilder(ExecBlock)>>value:value:value:value:value:
>>>>> @2 line 11
>>>>> 34. GsNMethod class>>_gsReturnToC @1 line 1
>>>>>
>>>>> Cheers!
>>>>>
>>>>> Ziggy
>>>>>
>>>>> On 21 September 2015 at 00:13, Mariano Martinez Peck <
>>>>> marianopeck at gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Sun, Sep 20, 2015 at 9:48 AM, Ezequiel Tolnay via Glass <
>>>>>> glass at lists.gemtalksystems.com> wrote:
>>>>>>
>>>>>>> Hi all!
>>>>>>>
>>>>>>> I've installed the DevKit [dev branch, thanks Dale for your guidence
>>>>>>> so far] in both my server (Debian Wheezy) and my desktop (OSX), and connect
>>>>>>> via SSH port forwarding. The seaside gem is now working, the "counter"
>>>>>>> examples work well, and I tested introducing a divide by zero error to
>>>>>>> debug via continuation and all went well there. So far so good (with a few
>>>>>>> hiccups that I managed to resolve on the way).
>>>>>>>
>>>>>>> I'm now attempting the same Seaside tutorial that I did a while ago
>>>>>>> on Pharo (boquitas). I'm stuck now in the simplest Hello World. I get an
>>>>>>> error in *WAInitialRenderLoopContinuation>>createRoot*:
>>>>>>>
>>>>>>> *(error 2010), a Symbol does not understand #'new'".*
>>>>>>>
>>>>>>> In the freshly installed devKit, the error raises by doing the
>>>>>>> following:
>>>>>>>
>>>>>>>
>>>>>>>    1. In tODE workspace:
>>>>>>>    -      WAComponent subclass: #HelloWorld
>>>>>>>                instanceVariableNames: '' classVariableNames: ''
>>>>>>>                poolDictionaries: '' category: 'GLASS'.
>>>>>>>       2. Browse to HelloWorld in tODE, and add for it a new
>>>>>>>    protocol called "test" (without protocols, adding a new method fails, is
>>>>>>>    this a bug?).
>>>>>>>    3. Add new method:
>>>>>>>    -      renderContentOn: html
>>>>>>>                html heading: 'Hello world!'.
>>>>>>>    4. Register the class running this in the tODE workspace:
>>>>>>>    -      WAAdmin register: HelloWorld asApplicationAt: 'hello'.
>>>>>>>       5. Open seaside on the Internet browser (http://localhost:8383),
>>>>>>>    "hello" application is there.
>>>>>>>    6. Click on "hello" raises a "does not understand #new" error.
>>>>>>>
>>>>>>>
>>>>>> You may want to copy the stack of the error? (CMD+Shift+P from the
>>>>>> tODE debugger will open the stack in a printable way so that you can copy
>>>>>> paste) Also..which version of Seaside did you install?
>>>>>>
>>>>>>
>>>>>>
>>>>>>> A couple more questions:
>>>>>>>
>>>>>>>    1. after installing via "./installServer devKit 3.2.8.1" netLDI
>>>>>>>    listens in different random ports each time it starts. How do I get it to
>>>>>>>    listen on the one in the default gs64ldi port 50377 always instead?
>>>>>>>
>>>>>>>
>>>>>> I am not sure if  the script startNetldi allows you to do that. But,
>>>>>> what I can tell you for sure is that dealing directly to netldi, DOES allow
>>>>>> you to choose ports. For example, this is how I start netldi in my scripts:
>>>>>>
>>>>>> GEMSTONE_USER -n -P $NETLDI_PORT -p`expr $NETLDI_PORT + 1`:`expr
>>>>>> $NETLDI_PORT + 2` -l $APPLICATION_LOG_DIR/netldi$APPLICATION_NAME.log
>>>>>> netldi$APPLICATION_NAME > $GEMSTONE_LOGDIR/netldiStartup.log 2>&1'
>>>>>>
>>>>>> Note the arguments -P and -p .. so you maybe need to have you custom
>>>>>> script to start/stop netldi (based on startNetldi script)
>>>>>> https://github.com/GsDevKit/gsDevKitHome/blob/master/bin/startNetldi
>>>>>>
>>>>>> Or you can convince Dale to add some arguments to #startNetldi   :)
>>>>>>
>>>>>>>
>>>>>>>    1. I managed to get GemStone and netLDI to listen in localhost
>>>>>>>
>>>>>>>
>>>>>> Uhhhh this is a very good idea!!! This is for security reasons right?
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>    1. only via the config option "STN_LISTENING_ADDRESSES = "::1";"
>>>>>>>    on $GS_HOME/gemstone/stones/devKit/extents/system.conf, but couldn't figure
>>>>>>>    out how to configure zinc to listen only on localhost. I modified
>>>>>>>    *WAGemStoneRunSeasideGems>>startOn:* to "*self adaptorClass
>>>>>>>    startOn: port bindingAddressOn: '127.0.0.1'*", and created *WAServerAdaptor
>>>>>>>    class>>startOn:bindingAddressOn:* as a copy of *>>startOn:*, but
>>>>>>>    with "*adaptor server bindingAddress: aBindingAddress.*" right
>>>>>>>    before "adaptor start". Is there a more appropriate way to do this?
>>>>>>>
>>>>>>>
>>>>>> Good idea. Which kind of socket address object are you instantiating
>>>>>> and how do you get an instance out of a string like 'localhost'?
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>    1. The standard Seaside landing page on this installation goes
>>>>>>>    straight to the "browse" page, and does not include several of the examples
>>>>>>>    that I remember from the default Seaside installation in Pharo, like the
>>>>>>>    ones that use make use of JQuery. Is this expected in Gemstone's version or
>>>>>>>    is indicative of a partial/failed install?
>>>>>>>
>>>>>>>
>>>>>> This is very likely because you installed a newer Seaside version
>>>>>> whose "ConfigurationOfSeaside" brings different packages by default than
>>>>>> what it used to load default. You should simply install the packages/groups
>>>>>> you want (like jQuery for example) that are not in the default load.
>>>>>>
>>>>>> For example, this is what I load:
>>>>>>
>>>>>>  #('Core' 'Zinc-Seaside' 'Javascript' 'JQuery' 'JSON' 'FastCGI'
>>>>>> 'Email')
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>    1.
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Glass mailing list
>>>>>>> Glass at lists.gemtalksystems.com
>>>>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mariano
>>>>>> http://marianopeck.wordpress.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150922/0696bfa2/attachment-0001.html>


More information about the Glass mailing list