<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.heading2char
        {mso-style-name:heading2char;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:73012963;
        mso-list-template-ids:-1837366348;}
@list l0:level1
        {mso-level-start-at:6;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:835455449;
        mso-list-template-ids:-627543202;}
@list l1:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2
        {mso-list-id:978921770;
        mso-list-template-ids:-471664548;}
@list l2:level1
        {mso-level-start-at:3;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:1123882116;
        mso-list-template-ids:-2129598974;}
@list l3:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4
        {mso-list-id:1455367567;
        mso-list-template-ids:491151362;}
@list l4:level1
        {mso-level-start-at:4;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l5
        {mso-list-id:2121796530;
        mso-list-template-ids:-1604160314;}
@list l5:level1
        {mso-level-start-at:5;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Martin:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks, <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What I meant about WSL was whether there were some technical reasons I couldn’t run Gemstone “well” under it i.e. I’m talking about doing POCs.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I don’t have a dedicated Linux box i.e. from a development / POC perspective so my choices are to use VmWare Workstation or WSL . <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I could have my admin spawn a VmWare Ubuntu instance but that would be running thru a VPN, I could do Linode also , yet WSL would be super convenient.<o:p></o:p></p><p class=MsoNormal>In short it would be a better utilization of my specific resources. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I understand the limitations of the free licenses, however , I must say that I’m quite pleased at GemTalk for their licensing policy which unlike some other ST vendors I do find is one that is very reasonable and promotes exploration and even supports a fledgling startup get its feet planted into solid ground.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So I tilt my hat to Gemtalk management for that <span style='font-family:"Segoe UI Emoji",sans-serif'>😊</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><b><span style='font-family:"Arial",sans-serif'>Charles A. Monteiro<br>Chief Technology Officer<br>Datasoft, Inc<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-family:"Arial",sans-serif'>Phone: 347-853-7349<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-family:"Arial",sans-serif'>Web:<a href="http://www.tradeblazer.com">tradeblazer.com</a><o:p></o:p></span></b></p><p class=MsoNormal><img border=0 width=191 height=48 style='width:1.9895in;height:.5in' id="_x0000_i1026" src="cid:image001.png@01D80C60.254285E0"><b><span style='font-family:"Arial",sans-serif'><o:p></o:p></span></b></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Marten Feldtmann <m@feldtmann.online> <br><b>Sent:</b> Tuesday, January 18, 2022 10:49 AM<br><b>To:</b> charles@tradeblazer.com; Charles Monteiro via Glass <glass@lists.gemtalksystems.com><br><b>Subject:</b> Re: [Glass] How to start an eval of Gemsatone/S<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>Charles Monteiro via Glass <<a href="mailto:glass@lists.gemtalksystems.com">glass@lists.gemtalksystems.com</a>> hat am 18.01.2022 16:03 geschrieben: <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Hi all,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Not sure if this is the right spot to ask,let me know if not, this is more of sales evaluation i.e. that’s the intent.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span class=heading2char><span style='font-size:13.0pt'>Context</span></span>:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I wish to evaluate Gemstone/S at first for some more tangential needs that are currently targeted for Mongo.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Our core product actually runs over Oracle and soon over any RDMS but for practical purposes we are targetting Postgres.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>However, potentially the bigger need.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>From my FPL and Brooklyn Union Gas days I became quite familiar with using GemBuilder for VW however instead I want to engage Gemstone from Pharo and I understand that not to work the same way.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Recently , (yesterday) I discovered Sparkle which led me to discovering SparkleFFI , so there’s apparently some efforts under way to provide comm from Pharo to Gemstone i.e. more akin to Gembuilder/VW.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Anyhow, to cut to the chase.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span class=heading2char><span style='font-size:13.0pt'>Objectives</span></span>:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I’m not interested in building a Seaside app that uses Gemstone for its persistence.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Rather, very thin , quite dumb Svelte/JS UIs will talk to Pharo microservice(s) which in turn will talk to Gemstone i.e. that’s the hope.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I would prefer some rpc mechanism where transaction boundaries are controlled from Pharo but I”ll be happy with whatever mechanism I can use to pass objects to Gemstone.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>So:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><ol start=1 type=1><li class=MsoListParagraph style='mso-list:l3 level1 lfo1'>How do I talk to Gemstone from Pharo ?<o:p></o:p></li></ol><ol start=1 type=1><ol start=1 type=a><li class=MsoListParagraph style='mso-list:l3 level2 lfo1'>I believe that Zinc can actually run on Gemstone so json/http(s) would be one way ? Any other way ? best way ?<o:p></o:p></li></ol></ol></div></blockquote><div><p class=MsoNormal>We only use REST-like APIs ... <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><ol start=2 type=1><li class=MsoListParagraph style='mso-list:l1 level1 lfo2'>Is there a notification / push mechanism now in place e.g. change to a Gemstone collection could be notified to interested parties (Pharo)<o:p></o:p></li></ol><ol start=2 type=1><ol start=1 type=a><li class=MsoListParagraph style='mso-list:l1 level2 lfo2'>Is there a web socket implementation?<o:p></o:p></li><li class=MsoListParagraph style='mso-list:l1 level2 lfo2'>Any other messaging implementation ? MQTT ? RabbitMQ etc ?<o:p></o:p></li></ol></ol></div></blockquote><div><p class=MsoNormal>I actually asked this also some days ago, but I assume - none. We used in our product a Gemstone/S to ZMQ bridge and then a Python written ZMQ to WebSocket server - this is very stable running with lots of users - but one always has to consider license restrictions, I do as much as I can do to put work from the pure Gemstone/S server to other languages (and other processes not running on the Gemstone cores). <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><ol start=3 type=1><li class=MsoListParagraph style='mso-list:l2 level1 lfo3'>GemConnect / Postgres , would there be a separate additional license fee ?<o:p></o:p></li></ol></div></blockquote><div><p class=MsoNormal>With Gemstone/S 3.6.3 there is a free PostgreSQL Connector available ...  its on my list to use for our product. <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><ol start=4 type=1><li class=MsoListParagraph style='mso-list:l4 level1 lfo4'>Has the performance of markForCollection changed much in all of these years i.e. does one have to allocate downtime ? i.e. what if the app actually needed to run 24x7, what are the accommodations for said scenario under current Gemstone/S.<o:p></o:p></li></ol></div></blockquote><div><p class=MsoNormal>This depends on your hardware, on your database size ... but a downtime is normally not needed. <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><ol start=5 type=1><li class=MsoListParagraph style='mso-list:l5 level1 lfo5'>I assume that for development use that one can install Gemstone under WSL ? If so any issues to be aware of ?<o:p></o:p></li></ol></div></blockquote><div><p class=MsoNormal>You can get a free version - but this had lots of limitations, in terms of database size, number of concurrently  processes to connect to the stone. You may get a database license by registering at GemtalkSystems. To say it with the Beatles: Limitations "here, there and everywhere". Thats the traditional license. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>You can even get a GemBuilder license ... <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><ol start=6 type=1><li class=MsoListParagraph style='mso-list:l0 level1 lfo6'>Sparkle is the new IDE ? but I see there’s also IoDE ?<o:p></o:p></li></ol></div></blockquote><div><p class=MsoNormal>And Jade ... a more traditional Smalltalk IDE. <o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Finally , given all of the above , and never mind Gemstone/ S setup itself , is there some doc that illustrates a simple hello world scenario where a Pharo image is sending to Gemstone objects for persistence ?<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>A cursory review of the Glass posts seem Seaside centric.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thanks in advance,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><strong><span style='font-family:"Arial",sans-serif'>Charles A. Monteiro</span></strong><b><span style='font-family:"Arial",sans-serif'><br><strong><span style='font-family:"Arial",sans-serif'>Chief Technology Officer</span></strong><br><strong><span style='font-family:"Arial",sans-serif'>Datasoft, Inc</span></strong></span></b><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><strong><span style='font-family:"Arial",sans-serif'>Phone: 347-853-7349</span></strong><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><strong><span style='font-family:"Arial",sans-serif'>Web:<a href="http://www.tradeblazer.com">tradeblazer.com</a></span></strong><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><img border=0 width=191 height=48 style='width:1.9895in;height:.5in' id="Picture_x0020_2" src="cid:image001.png@01D80C60.254285E0"><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p></div><p class=MsoNormal>_______________________________________________ Glass mailing list <a href="mailto:Glass@lists.gemtalksystems.com">Glass@lists.gemtalksystems.com</a> <a href="https://lists.gemtalksystems.com/mailman/listinfo/glass">https://lists.gemtalksystems.com/mailman/listinfo/glass</a> <o:p></o:p></p></blockquote></div></body></html>