[Glass] Newbie on GLASS - Hello world fail

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Tue Sep 22 09:59:47 PDT 2015


Ziggy,

I've added a feature request for this[1] ... sounds like a good addition.

Dale

[1] https://github.com/GsDevKit/Seaside31/issues/79

On 09/22/2015 06:00 AM, Mariano Martinez Peck via Glass wrote:
> Thanks Ezequiel!
>
> On Tue, Sep 22, 2015 at 7:35 AM, Ezequiel Tolnay <etolnay at gmail.com 
> <mailto:etolnay at gmail.com>> wrote:
>
>     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):
>                   o 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
>                   o 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 <mailto: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 <mailto:etolnay at gmail.com>> wrote:
>
>             Limiting access to localhost:
>
>              1. GemStone:
>                   * add the following to
>                     $GS_HOME/gemstone/stones/devKit/extents/system.conf
>                       o 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):
>                       o 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
>                       o 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 <mailto: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 <mailto: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 <mailto: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
>                         <mailto:marianopeck at gmail.com>> wrote:
>
>
>
>                             On Sun, Sep 20, 2015 at 9:48 AM, Ezequiel
>                             Tolnay via Glass
>                             <glass at lists.gemtalksystems.com
>                             <mailto: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
>                                 <mailto: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
>
>
>
>
>
> -- 
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150922/9cdbf70a/attachment-0001.html>


More information about the Glass mailing list