[Glass] Newbie on GLASS - Hello world fail

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Mon Sep 21 18:54:53 PDT 2015


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/20150921/fa9574a5/attachment-0001.html>


More information about the Glass mailing list