<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 20, 2022 at 12:24 AM James Foster via Glass <<a href="mailto:glass@lists.gemtalksystems.com">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div style="overflow-wrap: break-word;">Hi Charles,<div><br></div><div>In response to your specific question:</div><div><br></div><div>1. To talk to GemStone from Pharo you can use the GCI library (with something like SparkleFFI (<a href="https://github.com/GemTalk/SparkleFFI" target="_blank">https://github.com/GemTalk/SparkleFFI</a>) or something that talks directly to a Gem that has its own API (such as <a href="https://github.com/jgfoster/WebGS" target="_blank">https://github.com/jgfoster/WebGS</a>).</div><div><br></div><div>2. A Gem can be notified if an object changes and then it could notify a client. I believe that RemoteServiceReplication (<a href="https://github.com/GemTalk/RemoteServiceReplication" target="_blank">https://github.com/GemTalk/RemoteServiceReplication</a>) will (eventually) provide synchronization between GemStone and Pharo, but I’m not able to answer questions about it. With respect to supporting Web Sockets, WebGS (see #1) does have that capability. I’m not aware of any other messaging implementations.</div><div><br></div><div>3. As noted by others, GemConnect for Postgres (<a href="https://github.com/GemTalk/GemConnect-for-Postgres" target="_blank">https://github.com/GemTalk/GemConnect-for-Postgres</a>) is available under the MIT license.</div><div><br></div><div>4. The performance for MFC has _vastly_ improved. A job that took several days can now be done in a few hours with minimal disruption on regular operation. It is now very realistic to plan for 24x7 uptime (I understand that one customer schedules 1 day per year of downtime for upgrades, etc.).</div><div><br></div><div>5. GemStone runs fine under WSL 2. It runs under WSL 1 but required a special keyfile to get around WSL 1 bugs.</div><div><br></div><div>6. For an IDE you can use Topaz (for old-school vim/gdb users), GBS (if you have a license for VA or VW), Jadeite (<a href="https://github.com/GemTalk/Jadeite" target="_blank">https://github.com/GemTalk/Jadeite</a> or its predecessor, Jade (<a href="https://github.com/jgfoster/Jade" target="_blank">https://github.com/jgfoster/Jade</a>)), or experiment with Sparkle (<a href="https://github.com/GemTalk/Sparkle" target="_blank">https://github.com/GemTalk/Sparkle</a>). To learn more about Sparkle I suggest you watch Martin McClure’s upcoming presentation (<a href="https://www.meetup.com/UKSTUG/events/282299228/" target="_blank">https://www.meetup.com/UKSTUG/events/282299228/</a>).</div></div></div></blockquote><div><br></div><div>I wouldn't really call Sparkle an IDE (yet). At this point, it is a debugger and inspector environment. But, it <i>is</i> expected to evolve!<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><div style="overflow-wrap: break-word;"><div><br></div><div>James</div><div><br><div><br><blockquote type="cite"><div>On Jan 18, 2022, at 7:03 AM, Charles Monteiro via Glass <<a href="mailto:glass@lists.gemtalksystems.com" target="_blank">glass@lists.gemtalksystems.com</a>> wrote:</div><br><div><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Hi all,<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:"Calibri Light",sans-serif;color:rgb(47,84,150)"><span style="font-size:13pt">Context</span></span>:<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I wish to evaluate Gemstone/S at first for some more tangential needs that are currently targeted for Mongo.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Our core product actually runs over Oracle and soon over any RDMS but for practical purposes we are targetting Postgres.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">However, potentially the bigger need.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Anyhow, to cut to the chase.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-family:"Calibri Light",sans-serif;color:rgb(47,84,150)"><span style="font-size:13pt">Objectives</span></span>:<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I’m not interested in building a Seaside app that uses Gemstone for its persistence.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<span> </span><u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">So:<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><ol style="margin-bottom:0in;margin-top:0in" type="1" start="1"><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">How do I talk to Gemstone from Pharo ?<span> </span><u></u><u></u></li><ol style="margin-bottom:0in;margin-top:0in" type="a" start="1"><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I believe that Zinc can actually run on Gemstone so json/http(s) would be one way ? Any other way ? best way ?<u></u><u></u></li></ol><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Is there a notification / push mechanism now in place e.g. change to a Gemstone collection could be notified to interested parties (Pharo)<u></u><u></u></li><ol style="margin-bottom:0in;margin-top:0in" type="a" start="1"><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Is there a web socket implementation?<u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Any other messaging implementation ? MQTT ? RabbitMQ etc ?<span> </span><u></u><u></u></li></ol><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">GemConnect / Postgres , would there be a separate additional license fee ?<u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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.<u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">I assume that for development use that one can install Gemstone under WSL ? If so any issues to be aware of ?<u></u><u></u></li><li style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Sparkle is the new IDE ? but I see there’s also IoDE ?<span> </span><u></u><u></u></li></ol><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">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 ?<span> </span><u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">A cursory review of the Glass posts seem Seaside centric.<u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif">Thanks in advance,<span> </span><u></u><u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><b><span style="font-family:Arial,sans-serif">Charles A. Monteiro<br>Chief Technology Officer<br>Datasoft, Inc<u></u><u></u></span></b></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><b><span style="font-family:Arial,sans-serif">Phone: 347-853-7349<u></u><u></u></span></b></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><b><span style="font-family:Arial,sans-serif">Web:<a href="http://www.tradeblazer.com/" target="_blank"><span style="color:blue">tradeblazer.com</span></a><u></u><u></u></span></b></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span id="gmail-m_-5386038710194232365cid:image001.png@01D80C4D.0EDFC230"><image001.png></span><b><span style="font-family:Arial,sans-serif"><u></u><u></u></span></b></div><div style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></div></div><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">_______________________________________________</span><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">Glass mailing list</span><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="mailto:Glass@lists.gemtalksystems.com" style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">Glass@lists.gemtalksystems.com</a><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a></div></blockquote></div><br></div></div></div>_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" target="_blank">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div></div>