[Seaside] Glorp/Seaside experience exchange on- or offline, anybody?

Esteban A. Maringolo emaringolo at gmail.com
Sun Oct 1 15:11:55 UTC 2017

2017-09-28 3:56 GMT-03:00 jtuchel at objektfabrik.de <jtuchel at objektfabrik.de>:
> Hi there,

> Glorp is a great tool for OR mapping and works very well. There is good
> introductory material, even if it is hard to find. But when it comes to real
> world use, there are many questions to be answered like
> how to handle transactions, mementos, units of work and that stuff,
> especially in a multi-user environment like a Seaside based web app
> how to map more complicated things, like polymorphic joins, embedded objects
> etc.

For that purpose, and in the context of Magritte, I created a
MAEventedMemento, which basically redefines default #commit, and is
evented in a three phase commit: as in #aboutToCommit, #commit,
#postCommit, then in my magritte based editors I hook into these
events as:

onAboutToCommit: anObject
self app databaseSession hasUnitOfWork ifFalse: [ self app beginUnitOfWork ].
self app register: anObject

I use these in the context of a nested tree of objects where you can
"dive in" to edit references, or add elements to a collection.

It is not recommended to keep transactions open for a long time
because you have to handle the locking and other side-effects of doing
it, but in my use case it was simpler to handle that than to implement
a whole object graph buffering.

> what if an image slows down gradually when a user has been working for
> hours, almsot coming to a standstill. How to find out if Glorp or your use
> of it is the problem? What can you do then?
> Is my use of transactions correct or will I face problems

I never had that behavior, since the Glorp session was tied to a
Seaside session, and the Seaside session ended at some point. I'm
talking about months of uptime with a small set of Pharo images
handling the app.

The alternative is to use different types of caching policy in your
Glorp  session, but at that time Pharo's support of Ephemerons and
other weak references wasn't clear, so I decided to not explore that

I know you use VAST, I'm sure its support for different caching
policies is better.

> None of these are easy questions and maybe there are many possible answers
> to them, But finding them on your own can be hard and take a lot of time. It
> can even be a risk to your business.

As it said in the Buddhist temple: "A hundred monks, a hundred religions"

> So what I'm looking for is ways to find and meet people who also use Glorp
> (or any other ORM in Smalltalk) and would be interested in discussing stuff
> and maybe answer questions. Something like a Glorp users group.

I'm not actively using Glorp lately (only marginally in one project),
but I'm fond to ORMs,
I coded a complete ORM for my previous company (still being used) and
I like SQL.

> The best thing to exchange ideas is probably to meet face to face and carry
> your laptop with you. So if anybody in Southern Germany, Eastern France,
> Northern Switzerland would be interested in such a meeting, please let me
> know and I am more than interested in setting something up.

That's a little far from where I regularly am, but as I told you
before, I'll be in Europe during November, and I'm willing to travel
for one or two days to Switzerland.

> The second best is probably some sort of online conference call. Maybe even
> on a regular basis.

I could certainly attend to these more often. :)


Esteban A. Maringolo

More information about the seaside mailing list