Ciao,
i have a GLASS (3.1.0.2 ) application run on my local server. Now i need to print some ticket, linked at the transaction generated by Glass users order ( web interface based on seaside ) The ticket report the number of the order, the items selected from the user ....... I think to write a new Pharo application with interface to GLASS and to Printed devices. Now my question how i can do it ? What Pharo version i can use to do it? For now i work with Pharo-1.1-11411 with GemTools Launcher - >=1.0-beta.8.7 I can use new Pharo version ? How i can interchange datas from Gemtools to Pharo ? There are API on Pharo to change data with GLASS ? Thanks for any consideration. Dario |
----- Original Message ----- | From: "Dario Trussardi" <[hidden email]> | To: "beta discussion Gemstone Seaside" <[hidden email]> | Sent: Saturday, May 4, 2013 3:35:46 AM | Subject: [GS/SS Beta] GLASS - Pharo integration for ticket printed | | Ciao, | | i have a GLASS (3.1.0.2 ) application run on my local server. | | Now i need to print some ticket, linked at the transaction generated by | Glass users order ( web interface based on seaside ) | | The ticket report the number of the order, the items selected from the user | ....... | | | I think to write a new Pharo application with interface to GLASS and to | Printed devices. | | Now my question how i can do it ? | | What Pharo version i can use to do it? | | For now i work with Pharo-1.1-11411 with GemTools Launcher - | >=1.0-beta.8.7 | | I can use new Pharo version ? | | How i can interchange datas from Gemtools to Pharo ? | | There are API on Pharo to change data with GLASS ? For this type of application, you can do something similar to what I am doing with tODE[1]. In tODE I use GCI and STON[4] to pass simple objects between the server (GemStone) and the client (Pharo-1.4). When the Pharo image comes up, you will want to login[5] to Gemstone and establish a client forwarder with client-side code[6] (called after login) & server-side code[7] (called by client[8]). Then on the server you can send a message (#printUsing: maybe?) to the printerClientForwarder using STON to serialize the object to be printed. When you send a message to a ClientForwarder instance, the message is automatically forwarded to the object that you registered on the client and the result is then passed back to the server ... When you are doing this you want to be sure that all of the classes used are present on both the client and server. In tODE's case, the classes in the TodeClientElement[9] hierarchy are shipped over the wire and I load the same code in both the client and server. If you want to look at this approach in more detail, you can start by loading tODE into GemStone and Pharo1.4[10]. If you decide to build a prototype, you can piggyback off of the tODE code initially and then split your code off separately so you won't collide with any future tODE releases. The only code that you should be sharing with tODE in the end is the GCI support code in the 3 GemTools-* packages[2]. There are a lot of moving parts in an application like this but using GCI and STON should simplify things quite a bit ... Let me know if you have more questions, Dale [1] https://github.com/dalehenrich/tode [2] https://github.com/dalehenrich/tode/tree/master/repository [4] https://github.com/dalehenrich/ston [5] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/login.st [6] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Server-Core.package/TDTopezServer.class/class/createFor..st [7] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st [8] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st#L8 [9] https://github.com/dalehenrich/tode/tree/master/repository/Topez-Common-Core.package/TodeClientElement.class [10] https://github.com/dalehenrich/tode/blob/master/README.md |
Forgot to mention that I will split the GemTools package out of tODE if you decide to go this route ...
Dale ----- Original Message ----- | From: "Dale Henrichs" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Monday, May 6, 2013 3:56:34 PM | Subject: Re: [GS/SS Beta] GLASS - Pharo integration for ticket printed | | | | ----- Original Message ----- | | From: "Dario Trussardi" <[hidden email]> | | To: "beta discussion Gemstone Seaside" <[hidden email]> | | Sent: Saturday, May 4, 2013 3:35:46 AM | | Subject: [GS/SS Beta] GLASS - Pharo integration for ticket printed | | | | Ciao, | | | | i have a GLASS (3.1.0.2 ) application run on my local server. | | | | Now i need to print some ticket, linked at the transaction generated by | | Glass users order ( web interface based on seaside ) | | | | The ticket report the number of the order, the items selected from the | | user | | ....... | | | | | | I think to write a new Pharo application with interface to GLASS and to | | Printed devices. | | | | Now my question how i can do it ? | | | | What Pharo version i can use to do it? | | | | For now i work with Pharo-1.1-11411 with GemTools Launcher - | | >=1.0-beta.8.7 | | | | I can use new Pharo version ? | | | | How i can interchange datas from Gemtools to Pharo ? | | | | There are API on Pharo to change data with GLASS ? | | | For this type of application, you can do something similar to what I am doing | with tODE[1]. In tODE I use GCI and STON[4] to pass simple objects between | the server (GemStone) and the client (Pharo-1.4). When the Pharo image comes | up, you will want to login[5] to Gemstone and establish a client forwarder | with client-side code[6] (called after login) & server-side code[7] (called | by client[8]). Then on the server you can send a message (#printUsing: | maybe?) to the printerClientForwarder using STON to serialize the object to | be printed. When you send a message to a ClientForwarder instance, the | message is automatically forwarded to the object that you registered on the | client and the result is then passed back to the server ... When you are | doing this you want to be sure that all of the classes used are present on | both the client and server. In tODE's case, the classes in the | TodeClientElement[9] hierarchy are shipped over the wire and I load the same | code in both the client and server. | | If you want to look at this approach in more detail, you can start by loading | tODE into GemStone and Pharo1.4[10]. If you decide to build a prototype, you | can piggyback off of the tODE code initially and then split your code off | separately so you won't collide with any future tODE releases. | | The only code that you should be sharing with tODE in the end is the GCI | support code in the 3 GemTools-* packages[2]. | | There are a lot of moving parts in an application like this but using GCI and | STON should simplify things quite a bit ... | | Let me know if you have more questions, | | Dale | | [1] https://github.com/dalehenrich/tode | [2] https://github.com/dalehenrich/tode/tree/master/repository | [4] https://github.com/dalehenrich/ston | [5] | https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/login.st | [6] | https://github.com/dalehenrich/tode/blob/master/repository/Topez-Server-Core.package/TDTopezServer.class/class/createFor..st | [7] | https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st | [8] | https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st#L8 | [9] | https://github.com/dalehenrich/tode/tree/master/repository/Topez-Common-Core.package/TodeClientElement.class | [10] https://github.com/dalehenrich/tode/blob/master/README.md | |
In reply to this post by Dale Henrichs
Ciao Dale, thanks for the help.
((((( N.B. in this document the link the right reference i think is to : https://github.com/dalehenrich/tode/blob/master/docs/GciClientInstallation.md ))))))) In details i do : 1) the server based on Gemstone 3.1.0.2 is runnig on local Ubuntu server. The GLASS is update to 1.0-beta.9 I load : Metacello new baseline: 'Tode'; repository: '<a href="github://dalehenrich/tode:master/repository'">github://dalehenrich/tode:master/repository'; load: 'GemStone Server'. 2) The client is based on Pharo1.4 Latest update: #14445 run on MacBook On it i load: Metacello new
baseline: 'Tode';
repository: '<a href="github://dalehenrich/tode:master/repository'">github://dalehenrich/tode:master/repository';
load: 'Dev'. The https://github.com/dalehenrich/tode/blob/master/docs/GciClientInstallation.md document reference: The GCI libraries must be in the Cog vm's cp $GEMSTONE/lib32*.dylib <path_to_Cog_vm>/Contents/MacOS/Plugins I found two *.dylib files into a GemStone64Bit3.1.0-i386.Darwin ( libgcirpc-3.1.0-32.dylib / libssl-3.1.0-32.dylib ) and copy it into Pharo-1.4-one-click/Contents/MacOS/Plugins 3) I configured: TDTopezClient windowOrigin: 5@0.5; listWindowWidth: 24; codeWindowHeight: 21; codeWindowWidth: 80; initialize. | sessionDescription |
sessionDescription := OGCustomSessionDescription new
name: '3.1.0.2';
gemstoneVersion: '3.1.0.2';
gciLibraryName: 'libgcirpc-3.1.0-32.dylib';
adornmentColor: Color lightGreen;
stoneHost: 'Monviso';
stoneName: 'working';
gemHost: 'monviso';
netLDI: '50379';
gemTask: 'gemnetobject';
userId: 'DataCurator';
password: 'swordfish';
osUserId: '';
osPassword: '';
backupDirectory: '';
dataDirectory: '';
yourself.
TDTopezClient sessionMap
at: sessionDescription name
put: sessionDescription. NOW when i open the TDShell open: '3.1.0.2' and i digit a chart into the relative window the system erase the error: MessageNotUnderstood: KeyboardEvent>>altKeyPressed The traditional Gemtools suppport running into a hold Pharo-1.1-11411 work fine with the same configuration parameters. This is all for now. Thanks, Dario
|
Hmmm .... I'm using Pharo1.4-14457 (the "summer release") and altKeyPressed is in the Keymapping-Core package, so it's just possible that Keymapping-Core was a late addition to Pharo-1.4...
If it's not convenient to use Pharo1.4-14457 or later let me know and I'll put in a dependency on Keymapping-Core ... in the meantime I will update the docs to specify that one needs to use Pharo1.4-14457 or later. Thanks for providing the detailed information about your setup ... Dale ----- Original Message ----- | From: "Dario Trussardi" <[hidden email]> | To: "GemStone Seaside beta discussion" <[hidden email]> | Sent: Tuesday, May 7, 2013 6:01:48 AM | Subject: Re: [GS/SS Beta] GLASS - Pharo integration for ticket printed | | Ciao Dale, | | thanks for the help. | > | > ----- Original Message ----- | > | From: "Dario Trussardi" <[hidden email]> | > | To: "beta discussion Gemstone Seaside" <[hidden email]> | > | Sent: Saturday, May 4, 2013 3:35:46 AM | > | Subject: [GS/SS Beta] GLASS - Pharo integration for ticket printed | > | | > | Ciao, | > | | > | i have a GLASS (3.1.0.2 ) application run on my local server. | > | | > | Now i need to print some ticket, linked at the transaction generated by | > | Glass users order ( web interface based on seaside ) | > | | > | The ticket report the number of the order, the items selected from the | > | user | > | ....... | > | | > | | > | I think to write a new Pharo application with interface to GLASS and to | > | Printed devices. | > | | > | Now my question how i can do it ? | > | | > | What Pharo version i can use to do it? | > | | > | For now i work with Pharo-1.1-11411 with GemTools Launcher - | > | >=1.0-beta.8.7 | > | | > | I can use new Pharo version ? | > | | > | How i can interchange datas from Gemtools to Pharo ? | > | | > | There are API on Pharo to change data with GLASS ? | > | > | > For this type of application, you can do something similar to what I am | > doing with tODE[1]. In tODE I use GCI and STON[4] to pass simple objects | > between the server (GemStone) and the client (Pharo-1.4). When the Pharo | > image comes up, you will want to login[5] to Gemstone and establish a | > client forwarder with client-side code[6] (called after login) & | > server-side code[7] (called by client[8]). Then on the server you can send | > a message (#printUsing: maybe?) to the printerClientForwarder using STON | > to serialize the object to be printed. When you send a message to a | > ClientForwarder instance, the message is automatically forwarded to the | > object that you registered on the client and the result is then passed | > back to the server ... When you are doing this you want to be sure that | > all of the classes used are present on both the client and server. In | > tODE's case, the classes in the TodeClientElement[9] hierarchy are shipped | > over the wire and I load the same code in both the client and server. | > | > If you want to look at this approach in more detail, you can start by | > loading tODE into GemStone and Pharo1.4[10]. If you decide to build a | > prototype, you can piggyback off of the tODE code initially and then split | > your code off separately so you won't collide with any future tODE | > releases. | | I setup the environment but after open the TDShell open: '3.1.0.2' when | i digit a chart into the relative window the system erase the error: | MessageNotUnderstood: KeyboardEvent>>altKeyPressed | | I follow the https://github.com/dalehenrich/tode/blob/master/README.md | | ((((( N.B. in this document the link | Pharo Client Installation | See the Gci client installation instructions. | | point to hold | https://github.com/dalehenrich/topez/blob/master/docs/GciClientInstallation.md | | the right reference i think is to : | https://github.com/dalehenrich/tode/blob/master/docs/GciClientInstallation.md | ))))))) | | | | In details i do : | | 1) the server based on Gemstone 3.1.0.2 is runnig on local Ubuntu server. | | The GLASS is update to 1.0-beta.9 | | I load : Metacello new | baseline: 'Tode'; | repository: 'github://dalehenrich/tode:master/repository'; | load: 'GemStone Server'. | | | 2) The client is based on Pharo1.4 Latest update: #14445 run on | MacBook | | On it i load: Metacello new | baseline: 'Tode'; | repository: 'github://dalehenrich/tode:master/repository'; | load: 'Dev'. | | | The | https://github.com/dalehenrich/tode/blob/master/docs/GciClientInstallation.md | document reference: | | The GCI libraries must be in the Cog vm's MacOS/Plugins directory: | | cp $GEMSTONE/lib32*.dylib <path_to_Cog_vm>/Contents/MacOS/Plugins | | | I found two *.dylib files into a GemStone64Bit3.1.0-i386.Darwin | | ( libgcirpc-3.1.0-32.dylib / libssl-3.1.0-32.dylib ) | | and copy it into Pharo-1.4-one-click/Contents/MacOS/Plugins | | 3) I configured: | | TDTopezClient | windowOrigin: 5@0.5; | listWindowWidth: 24; | codeWindowHeight: 21; | codeWindowWidth: 80; | initialize. | | | sessionDescription | | sessionDescription := OGCustomSessionDescription new | name: '3.1.0.2'; | gemstoneVersion: '3.1.0.2'; | gciLibraryName: 'libgcirpc-3.1.0-32.dylib'; | adornmentColor: Color lightGreen; | stoneHost: 'Monviso'; | stoneName: 'working'; | gemHost: 'monviso'; | netLDI: '50379'; | gemTask: 'gemnetobject'; | userId: 'DataCurator'; | password: 'swordfish'; | osUserId: ''; | osPassword: ''; | backupDirectory: ''; | dataDirectory: ''; | yourself. | TDTopezClient sessionMap | at: sessionDescription name | put: sessionDescription. | | | | NOW when i open the TDShell open: '3.1.0.2' and i digit a chart into | the relative window the system erase the error: MessageNotUnderstood: | KeyboardEvent>>altKeyPressed | | | The traditional Gemtools suppport running into a hold Pharo-1.1-11411 work | fine with the same configuration parameters. | | This is all for now. | | Thanks, | | Dario | | | > The only code that you should be sharing with tODE in the end is the GCI | > support code in the 3 GemTools-* packages[2]. | > | > There are a lot of moving parts in an application like this but using GCI | > and STON should simplify things quite a bit ... | > | > Let me know if you have more questions, | > | > Dale | > | > [1] https://github.com/dalehenrich/tode | > [2] https://github.com/dalehenrich/tode/tree/master/repository | > [4] https://github.com/dalehenrich/ston | > [5] | > https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/login.st | > [6] | > https://github.com/dalehenrich/tode/blob/master/repository/Topez-Server-Core.package/TDTopezServer.class/class/createFor..st | > [7] | > https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st | > [8] | > https://github.com/dalehenrich/tode/blob/master/repository/Topez-Client-GemStone.package/TDTopezClient.class/instance/topezServerProxy.st#L8 | > [9] | > https://github.com/dalehenrich/tode/tree/master/repository/Topez-Common-Core.package/TodeClientElement.class | > [10] https://github.com/dalehenrich/tode/blob/master/README.md | | |
Ciao,
I download Pharo 2.0 and setup the TODE environment on it. I need to download the Gemstone3.1.02 for MAC to find the right *.dylib. Now i can digit the character into TDShell console. I fork the git clone https://github.com/dariogithub/tode.git on /opt/git/ tode on the server where GLASS 3.1.0.2 run. After i follow the: GETTING STARTED WITH TODE Here are some real rough instructions for getting started with tode, once you've launced a TDShell console. When i digit the: ston import /home/topez /opt/git/topez/ston/import.ston the system erase the error: ston import /home/topez /opt/git/topez/ston/import.ston a UserDefinedError occurred (error 2318), reason:halt, File named: 'import.ston' does not exist. I change the command to: ston import /home/topez /opt/git/tode/tode/bin/import.ston Now the system erase the error: ston import /home/topez /opt/git/tode/tode/bin/import.ston
a MessageNotUnderstood occurred (error 2010), a TDTopezLeafNode does not understand #'addChildNode:' I'm confusing about this steps. What is the objective of this commands ? Thanks, Dario
|
Dario, I'm not so sure that tODE will run correctly in Pharo2.0 ... when I said it runs in "Pharo1.4-14457 or later", I should have said  "Pharo1.4-14457 or a later version of Pharo-1.4".
OTOH, if you have gotten to the point where the GCI is basically functional in Pharo2.0, then it may indeed work there:) I just haven't been testing it there[1]. Dale On Wed, May 8, 2013 at 9:48 AM, Dario Trussardi <[hidden email]> wrote:
|
Dario, I'm not so sure that tODE will run correctly in Pharo2.0 ... when I said it runs in "Pharo1.4-14457 or later", I should have said "Pharo1.4-14457 or a later version of Pharo-1.4".
OTOH, if you have gotten to the point where the GCI is basically functional in Pharo2.0, then it may indeed work there:) I just haven't been testing it there[1]. Dale [this is a resend after updating my membership email address} On Wed, May 8, 2013 at 9:48 AM, Dario Trussardi <[hidden email]> wrote:
|
<base href="x-msg://868/">
Dale, i configured the Tode environment into a Pharo Latest update: #14457 When into TDShell i do the command: ston import /home/topez /opt/git/tode/tode/bin/import.ston the system erase the same Pharo2.0 error: ston import /home/topez /opt/git/tode/tode/bin/import.sto a MessageNotUnderstood occurred (error 2010), a TDTopezLeafNode does not understand #'addChildNode:' If i proced with the Debug option the system open some windows ( same into Pharo 1.4 and Pharo 2.0 ): A) doesNotUnderstand: aMessageDescriptor
"The method is for compatiblity with Gs64 v2.x, and assumes you are using
only method environment 0 for all of your Smalltalk code."
| ex sel args |
(ex := MessageNotUnderstood _basicNew)
receiver: self selector: (sel := aMessageDescriptor at: 1)
args: (args := aMessageDescriptor at: 2) envId: 0 .
^ex signal . "fix for #40871"
"Legacy behavior was that you could fall through from an exception handler
without an explicit resume/return. The fix for 40871 will break applications
that rely on the old behavior."
"If we continue from the error, re-try the send of the message that was
not understood."
"^ self perform: sel env: 0 withArguments: args " B) Window with title: GsProcess(oop=988976129, status=debug, priority=15, ) (3) C) Window with title: MessageNotUnderstood>>defaultAction @3 line 3 (5) This is all for now, Thanks, Dario
|
Dario,
That is a "bug" with the `ston import` command ... it does not automatically create the destination directory, at least that's my best guess .. BTW, I would recommend you import the `import` command into `/home/bin`. So you should do something like: mkdir /home/bin ston import /home/bin /opt/git/tode/tode/bin/import.ston Dale From: "Dario Trussardi" <[hidden email]> |
<base href="x-msg://885/">
Dale,
I create the /home/bin/ directory on the server where run GLASS. After i do the command:
[989017345 sz:7 TDScriptLeafNode] /home/bin/import/ The next command: /home/bin/import report : a OffsetError occurred (error 2003), reason:objErrBadOffsetIncomplete, max:1 actual:2 I wrong something ? Thanks, Dario P.S. I don't understund the end of this command ? After doing this, you can run /home/load <baseline name> What is the baseline name ?
|
Dario,
The import command takes arguments ... tODE is still in a somewhat raw stage, so the error messages aren't that great ... you should be able to `cat` or `edit` `/home/bin/import` and there's a comment that should describe the arguments ... To get a list of the available commands do: edit .man then you can use`man` to get a man page describing the command in more detail: man cat man browse etc. For the commands you are importing right now, I haven't added them to the tODE distribution as I'm still monkeying with them and I kind of expect them to be customized eventually:) Dale From: "Dario Trussardi" <[hidden email]> |
Free forum by Nabble | Edit this page |