[Glass] Basic questions regarding GemBuilder for Smalltalk, GemTools, and tODE

Dale K. Henrichs dale.henrichs at gemtalksystems.com
Wed Oct 2 08:36:32 PDT 2013


----- Original Message -----

| From: "Mariano Martinez Peck" <marianopeck at gmail.com>
| To: glass at lists.gemtalksystems.com
| Sent: Wednesday, October 2, 2013 7:01:39 AM
| Subject: Re: [Glass] Basic questions regarding GemBuilder for
| Smalltalk, GemTools, and tODE

| First, I wanted to really appreciate all the answers I got. They were
| all very valuable and detailed. Thanks you very much.
| It is much clear now.

| Dale, I think I am totally confused about tODE. I have just seen the
| link you send to slideshare and that's not at all what I remembered
| about tODE. That (slideshare) look like a desktop/fat client tool
| (with remote stuff) based on Pharo 2.0. But...I remember watching a
| presentation of you which I thought it was tODE that was
| seaside-base. In fact I remember you saying: "yes, I did it in
| Seaside because it was easier for me than doing it in Morphic"...I
| am just crazy or that was something else?
Haha, the name of my recent presentation at ESUG is "tODE: And now for something completely different" and I wasn't kidding. 

The big problem that I had with using Seaside and the browser for tODE was in implementing the debugger ... viewing stack traces is relatively easy, but when you want to continue or step you get tangled up in the seaside code itself ... In a fat client, when the debugger pops up there is a bit of magic going on while the main UI process is put under the debugger and a new UI process is created so that the UI continues to run ... when using seaside, it takes a bigger set of magic to swap out the thread that is handling the http request... the other factor driving me away from the web-browser was the fact that it is not very easy to view multiple "windows" in a web browser ... Matthias Springer is "porting morphic" to Amber to solve that particular problem ... 

So the new version of tODE uses Pharo as a client, but it is not a typical "fat client".It is possible to create new window-based tools in tODE without writing any client-side code... I call it an "ultra thin client" in the presentation. In fact when Matthias finishes his work in "porting morphic" to Amber, it should be relatively straight forward to retarget tODE from Pharo to Amber. 

Matthias got started on this work earlier in the year when he use tODE and MagLev to create web-based interface for MagLev as part of an HPI bachelor project ... he only got so far before running into "window management" issues and decide that "morphic" needed to be ported to Amber... 

| Ok...I found it:
| http://seaside.gemtalksystems.com/movies/tODE_intro.mov (I remember
| it form the ESUG Innovation Technology Awards ;) )
| So...i thought it was seaside-based so I thought it would be easy to
| run it inside GLASS, hence you could directly "develop" inside
| GemStone from any browser.

| Continue discussing about these tools...imagine that I want to browse
| a bit and learn about GemStone. I want to see which number classes I
| have, which methods each class can answer, etc etc. You
| know...explore the system (forgot for a minute about the pdf
| documentation). How could I do this right now (until tODE is
| released)? GemTools is the only way? well...maybe the seaside
| example of the class browser hahah
Today, I would recommend using GemTools for that kind of exploration. If you use GemTools, you should use it running against a stone running on a local network ... the window update events in GemTools are fired across the network, so any network latency shows up as slow response times in the tools. GemTools is based on OmniBrowser so they should be very familiar to you. 

You can download a one-click from the downloads page[1] and follow the instructions starting with "Define GemTools Session"[2] for setting up your GemTools client. Please ask questions here if you have trouble ... 

If you are writing a Seaside application, you should be able to get pretty far in your application before you have to worry about GemStone-specific code. Transactions are handled within the Seaside framework....If you end up with long running http requests (i.e,, hooking up to paypal to collect money), then you should pose your issue to this list for guidance, as there are different solutions to that problem depending upon what you are trying to do ... 

Dale 

[1] http://seaside.gemtalksystems.com/downloads.html 
[2] https://code.google.com/p/glassdb/wiki/GettingStartedWithGLASS#Define_GemTools_Session 

| Thanks,

| On Tue, Oct 1, 2013 at 7:33 PM, Dale K. Henrichs <
| dale.henrichs at gemtalksystems.com > wrote:

| | Mariano,
| 

| | I would second what Otto recommends ... He is living the "develop
| | in
| | Pharo and deploy in GemStone" life every day and as such has first
| | hand experience and invaluable advice.
| 

| | GemTools is way past it's "use by date":) and tODE is targetted to
| | replace GemTools. When tODE is ready for prime time, I expect to be
| | providing a new round of documentation (and tODE scripts) for
| | working with GLASS. At worst, tODE will be a better option than
| | topaz, at best ... well, we'll just have to see:) Until then, tODE
| | is still in development, so I would not recommend that you try
| | using
| | it.
| 

| | I encourage Otto (and others ... hint, hint) to share more about
| | their processes and procedures ...
| 

| | Dale
| 

| | ----- Original Message -----
| 
| | | From: "Otto Behrens" < otto at finworks.biz >
| 
| | | To: "Mariano Martinez Peck" < marianopeck at gmail.com >
| 
| | | Cc: glass at lists.gemtalksystems.com
| 
| | | Sent: Tuesday, October 1, 2013 8:28:30 AM
| 
| | | Subject: Re: [Glass] Basic questions regarding GemBuilder for
| | | Smalltalk, GemTools, and tODE
| 
| | |
| 
| | | Mariano,
| 
| | |
| 
| | | We've been running a Seaside 3 / Magritte 3 app on GS for a while
| 
| | | now.
| 
| | |
| 
| | | We develop in Pharo 1.4 (suppose that could be 2). The
| | | application
| 
| | | works in Pharo 1.4, almost all tests run in Pharo 1.4. There are
| | | a
| 
| | | few
| 
| | | very small tests that we run in GemStone only, but to be honest I
| | | had
| 
| | | to search for them now because I could not remember - so we
| | | rarely
| 
| | | touch them.
| 
| | |
| 
| | | We then write the code to filetree and use filetree to load back
| | | into
| 
| | | GS via topaz.
| 
| | |
| 
| | | The only thing we use GemTools for is to hunt for bugs. If we
| | | really
| 
| | | can't understand why the app works in Pharo and not in GS, we use
| 
| | | GemTools to set a breakpoint and figure out what's going on. Once
| | | we
| 
| | | know, we exit GemTools and write code in Pharo. Sometimes we edit
| 
| | | code
| 
| | | using GemTools just to see how something will work if it is that
| 
| | | specific to GS. Also, sometimes, it helps to inspect data objects
| 
| | | which we only have in a GS DB.
| 
| | |
| 
| | | We do not even use GemTools to work on remote GS instances. We
| | | only
| 
| | | use topaz for that. Topaz is good enough for most things. In 6
| | | years,
| 
| | | it happened about 2 times that we made a backup of the production
| | | DB,
| 
| | | copy it local and then use GemTools to debug.
| 
| | |
| 
| | | I would not consider using a GBS based tool, I would just develop
| | | in
| 
| | | Pharo, given that you know Pharo pretty well. GemTools is not
| 
| | | workable
| 
| | | as a development tool. And I can't imagine that tODE is. That is
| | | if
| 
| | | you use refactoring tools, customise your image and run things
| | | like
| 
| | | lint.
| 
| | |
| 
| | | Some more answers below:
| 
| | |
| 
| | | > that running tODE in GemStone could give us the
| 
| | | > functionality we now have in GemTools?
| 
| | |
| 
| | | I think so. I think that the energy that would have to go into
| | | tODE
| 
| | | to
| 
| | | make it more than that would be enormous, but then I would be
| | | glad
| | | to
| 
| | | hear otherwise.
| 
| | |
| 
| | | > Now that I have this thread already open ;) I wonder if someone
| | | > has
| 
| | | > ever
| 
| | | > written some "port rules" or things to be aware when deploying
| | | > to
| 
| | | > GemStone.
| 
| | | > I guess certain Pharo kernel classes/methods may not exist or
| 
| | | > answer
| 
| | | > something different, etc... And I think the answer would be
| | | > around
| 
| | | > Grease?
| 
| | | > In other words, what I ask is the following: imagine (it is not
| | | > the
| 
| | | > case
| 
| | | > unfortunately) I don't use any other library than
| | | > seaside/magritte.
| 
| | | > What are
| 
| | | > the things that would make the port to gemstone complicated? Is
| 
| | | > there any
| 
| | | > list or conventions somewhere?
| 
| | |
| 
| | | We've used Grease and have some stuff that we did before grease
| 
| | | existed. And we've not been good at contributing stuff. Mainly
| 
| | | because
| 
| | | we get under pressure and then soon fall behind, sticking to
| | | older
| 
| | | versions. Upgrading is costly. Not sure how to improve this
| 
| | | situation.
| 
| | |
| 
| | | Having said this, we're willing to help and give anyone stuff
| | | we've
| 
| | | done to make the port easier. It is not that onerous. Dale and
| | | others
| 
| | | have done a lot; just to get Seaside into GS extended a lot of GS
| 
| | | kernel classes to be Pharo / Seaside compatible.
| 
| | |
| 
| | | We have 2 Metacello configs. The one called "Runtime" loads all
| | | the
| 
| | | Seaside / Magritte / Whatever tools we use from the community,
| | | with
| 
| | | some differences between what we load into GS / Pharo. The other
| | | is
| 
| | | our own project that is dependent on Runtime, also with small
| 
| | | compatibility changes between the different environments.
| 
| | |
| 
| | | Please let me know where I can give you more info or code.
| 
| | |
| 
| | | Cheers
| 
| | | Otto
| 

| | | _______________________________________________
| 
| | | Glass mailing list
| 
| | | Glass at lists.gemtalksystems.com
| 
| | | http://lists.gemtalksystems.com/mailman/listinfo/glass
| 
| | |
| 

| --
| 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/20131002/49631628/attachment-0001.html>


More information about the Glass mailing list