Communicating Objects

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Communicating Objects

Joel Turnbull-2
Guys I hope I'm not rehashing an old question. Searches haven't come
up with anything.

What is the prevailing best practice for communicating simple objects
between Amber and Seaside? Are there any object serialization /
deserialization libraries within Amber at this point? A JSON parser?

Thanks,
Joel
Reply | Threaded
Open this post in threaded view
|

Re: Communicating Objects

Bernat Romagosa
Hi Joel,

There are some attempts and prototypes on the table, but nothing final yet. Check out the following:


and:


If you're not in a hurry, you may want to wait for Nicolas to give us all a surprise though ;)

Cheers,

2011/9/28 Joel Turnbull <[hidden email]>
Guys I hope I'm not rehashing an old question. Searches haven't come
up with anything.

What is the prevailing best practice for communicating simple objects
between Amber and Seaside? Are there any object serialization /
deserialization libraries within Amber at this point? A JSON parser?

Thanks,
Joel



--
Bernat Romagosa.
Reply | Threaded
Open this post in threaded view
|

Re: Communicating Objects

Dale Henrichs
In reply to this post by Joel Turnbull-2
Joel,

I think that the communication of objects between Seaside and Amber is still in the very early stages of development.

I know of a couple of projects going on that are related to Amber and Seaside:

  Kaliningrad[1] is a Seaside-based webDav server for Amber. No JSON involved,
  but it is very convenient if you want to use Amber to create javascript
  for your Seaside projects and use Monticello to store your Amber artifacts.
  I have a couple of kinks to work out before I'll announce version 0.1....

  Philippe has done some work on producing JSON from Seaside using a JSON
  canvas[2]. As of today the code is usable for producing simple JSOn. At the
  moment there is no facility for passing arguments from the client to the server.
  The API will change radically over time...

  I've taken Philippe's work and written a Counter in Amber[3] that gets
  the state from the server.

All of this work is pretty new, the api's are in flux and there are probably hidden bugs floating around as well ...  

On the Amber side, once you've got your hands on some JSON, you can just use the javascript compiler to deserialize the objects:

  Compiler new eval: '(', aJSONString, ')'

I don't know of a JSON parser for Pharo...JSON is so simple that there probably is one floating around somewhere.

So in the end there are bits and pieces floating around with folks working on putting the bits and pieces into some semblance of order, but at the moment you are pretty much on your own...

Dale

[1] http://ss3.gemstone.com/ss/Kaliningrad.html
[2] see ConfigurationOfSeasideJSON in http://www.squeaksource.com/MetacelloRepository
[3] see TOAmberCounter in the tODE-AMber package in http://ss3.gemstone.com/ss/tODE

----- Original Message -----
| From: "Joel Turnbull" <[hidden email]>
| To: [hidden email]
| Sent: Tuesday, September 27, 2011 9:31:36 PM
| Subject: [amber-lang] Communicating Objects
|
| Guys I hope I'm not rehashing an old question. Searches haven't come
| up with anything.
|
| What is the prevailing best practice for communicating simple objects
| between Amber and Seaside? Are there any object serialization /
| deserialization libraries within Amber at this point? A JSON parser?
|
| Thanks,
| Joel
|
Reply | Threaded
Open this post in threaded view
|

Re: Communicating Objects

Nicolas Petton
Dale,

I didn't know that :)
I also have a prototype of something similar (I think we talked about it
at ESUG this summer). I think it could be good to talk all together,
share thoughts and ideas, instead of doing things on our own.

Cheers,
Nico

On 28/09/11 10:00, Dale Henrichs wrote:

> Joel,
>
> I think that the communication of objects between Seaside and Amber is still in the very early stages of development.
>
> I know of a couple of projects going on that are related to Amber and Seaside:
>
>    Kaliningrad[1] is a Seaside-based webDav server for Amber. No JSON involved,
>    but it is very convenient if you want to use Amber to create javascript
>    for your Seaside projects and use Monticello to store your Amber artifacts.
>    I have a couple of kinks to work out before I'll announce version 0.1....
>
>    Philippe has done some work on producing JSON from Seaside using a JSON
>    canvas[2]. As of today the code is usable for producing simple JSOn. At the
>    moment there is no facility for passing arguments from the client to the server.
>    The API will change radically over time...
>
>    I've taken Philippe's work and written a Counter in Amber[3] that gets
>    the state from the server.
>
> All of this work is pretty new, the api's are in flux and there are probably hidden bugs floating around as well ...
>
> On the Amber side, once you've got your hands on some JSON, you can just use the javascript compiler to deserialize the objects:
>
>    Compiler new eval: '(', aJSONString, ')'
>
> I don't know of a JSON parser for Pharo...JSON is so simple that there probably is one floating around somewhere.
>
> So in the end there are bits and pieces floating around with folks working on putting the bits and pieces into some semblance of order, but at the moment you are pretty much on your own...
>
> Dale
>
> [1] http://ss3.gemstone.com/ss/Kaliningrad.html
> [2] see ConfigurationOfSeasideJSON in http://www.squeaksource.com/MetacelloRepository
> [3] see TOAmberCounter in the tODE-AMber package in http://ss3.gemstone.com/ss/tODE
>
> ----- Original Message -----
> | From: "Joel Turnbull"<[hidden email]>
> | To: [hidden email]
> | Sent: Tuesday, September 27, 2011 9:31:36 PM
> | Subject: [amber-lang] Communicating Objects
> |
> | Guys I hope I'm not rehashing an old question. Searches haven't come
> | up with anything.
> |
> | What is the prevailing best practice for communicating simple objects
> | between Amber and Seaside? Are there any object serialization /
> | deserialization libraries within Amber at this point? A JSON parser?
> |
> | Thanks,
> | Joel
> |


--
Nicolas Petton
http://nicolas-petton.fr
Reply | Threaded
Open this post in threaded view
|

Re: Communicating Objects

Joel Turnbull-2
Thanks guys, I understand the landscape and some of my options now.

I'll respond with whatever I find works best for me. Interested to see
what develops!

Joel




On Wed, Sep 28, 2011 at 6:24 AM, Nicolas Petton
<[hidden email]> wrote:

> Dale,
>
> I didn't know that :)
> I also have a prototype of something similar (I think we talked about it at
> ESUG this summer). I think it could be good to talk all together, share
> thoughts and ideas, instead of doing things on our own.
>
> Cheers,
> Nico
>
> On 28/09/11 10:00, Dale Henrichs wrote:
>>
>> Joel,
>>
>> I think that the communication of objects between Seaside and Amber is
>> still in the very early stages of development.
>>
>> I know of a couple of projects going on that are related to Amber and
>> Seaside:
>>
>>   Kaliningrad[1] is a Seaside-based webDav server for Amber. No JSON
>> involved,
>>   but it is very convenient if you want to use Amber to create javascript
>>   for your Seaside projects and use Monticello to store your Amber
>> artifacts.
>>   I have a couple of kinks to work out before I'll announce version
>> 0.1....
>>
>>   Philippe has done some work on producing JSON from Seaside using a JSON
>>   canvas[2]. As of today the code is usable for producing simple JSOn. At
>> the
>>   moment there is no facility for passing arguments from the client to the
>> server.
>>   The API will change radically over time...
>>
>>   I've taken Philippe's work and written a Counter in Amber[3] that gets
>>   the state from the server.
>>
>> All of this work is pretty new, the api's are in flux and there are
>> probably hidden bugs floating around as well ...
>>
>> On the Amber side, once you've got your hands on some JSON, you can just
>> use the javascript compiler to deserialize the objects:
>>
>>   Compiler new eval: '(', aJSONString, ')'
>>
>> I don't know of a JSON parser for Pharo...JSON is so simple that there
>> probably is one floating around somewhere.
>>
>> So in the end there are bits and pieces floating around with folks working
>> on putting the bits and pieces into some semblance of order, but at the
>> moment you are pretty much on your own...
>>
>> Dale
>>
>> [1] http://ss3.gemstone.com/ss/Kaliningrad.html
>> [2] see ConfigurationOfSeasideJSON in
>> http://www.squeaksource.com/MetacelloRepository
>> [3] see TOAmberCounter in the tODE-AMber package in
>> http://ss3.gemstone.com/ss/tODE
>>
>> ----- Original Message -----
>> | From: "Joel Turnbull"<[hidden email]>
>> | To: [hidden email]
>> | Sent: Tuesday, September 27, 2011 9:31:36 PM
>> | Subject: [amber-lang] Communicating Objects
>> |
>> | Guys I hope I'm not rehashing an old question. Searches haven't come
>> | up with anything.
>> |
>> | What is the prevailing best practice for communicating simple objects
>> | between Amber and Seaside? Are there any object serialization /
>> | deserialization libraries within Amber at this point? A JSON parser?
>> |
>> | Thanks,
>> | Joel
>> |
>
>
> --
> Nicolas Petton
> http://nicolas-petton.fr
>
Reply | Threaded
Open this post in threaded view
|

Re: Communicating Objects

Dale Henrichs
In reply to this post by Nicolas Petton
Nico,

Point taken, so here's a brain dump of he things that I'm working/thinking about right now:)

I'm still trying to wrap my head around the potential and the best way for me to do that is to jump in and see what happens ...

At ESUG we'd talked about creating blocks that are executed on the server-side and I'm still interested in exploring that route. I was waiting to hear from you on that front and in the mean time I figured I would come up to speed on Amber.

Kaliningrad started as an experiment to familiarize myself with Amber and became a way for me to store Amber source in Monticello packages and then evolved to the point where I figured other folks could use it ... Right now Kaliningrad uses WALibraryFile and maps the Amber package name to a Monticello package name ... this works well enough to be useful (for at least my purposes). Eventually I would like to directly create the Monticello meta model from the classes and methods in Amber, but at the moment it isn't necessary to go that far...

Philippe had shown me the beginning of the Seaside-JSON work at ESUG, so I knew that he had some code lying around that I could play with...at the moment the Seaside-JSON code just produces JSON the interesting stuff is still to be discovered:)

At this point I am starting to get my sea legs in Amber ... I have started porting tODE to Amber, but my plans are to re-architect tODE from a UI perspective and from a structural perspective, so I'm looking at each piece of tODE as I bring it into Amber ...

Part of tODE is the idea that users will write their own rendering methods for tODE components ... I would like that rendering code to be stored in Monticello so that the client-side rendering code can evolve along with the server-side code ...there are several possibilities for doing this, but the different alternatives require differing levels of infrastructure support. If I want to write server-side rendering code, I have to "invent" a way to arrange for that code to be executed on the client in the context of Amber .... If I write client-side rendering code I have to arrange for a way for the server-side code to reference the client-side code ... Frankly, at the moment I'm not sure which approach I want to use for tODE....

Soooo, I'm pushing on things from a number of different angles and trying out different things to see "how it feels" .... Add to that the fact that I don't want to invest a whole lot of time this early in the project to build infrastructure that I may or may not need. Consequently I'm taking the path of least resistance when trying out my experiments.

If you've got some things that I can play with, let me know and I'll load 'em up and take 'em for a spin...

Dale

----- Original Message -----
| From: "Nicolas Petton" <[hidden email]>
| To: [hidden email]
| Sent: Wednesday, September 28, 2011 3:24:05 AM
| Subject: Re: [amber-lang] Communicating Objects
|
| Dale,
|
| I didn't know that :)
| I also have a prototype of something similar (I think we talked about
| it
| at ESUG this summer). I think it could be good to talk all together,
| share thoughts and ideas, instead of doing things on our own.
|
| Cheers,
| Nico
|
| On 28/09/11 10:00, Dale Henrichs wrote:
| > Joel,
| >
| > I think that the communication of objects between Seaside and Amber
| > is still in the very early stages of development.
| >
| > I know of a couple of projects going on that are related to Amber
| > and Seaside:
| >
| >    Kaliningrad[1] is a Seaside-based webDav server for Amber. No
| >    JSON involved,
| >    but it is very convenient if you want to use Amber to create
| >    javascript
| >    for your Seaside projects and use Monticello to store your Amber
| >    artifacts.
| >    I have a couple of kinks to work out before I'll announce
| >    version 0.1....
| >
| >    Philippe has done some work on producing JSON from Seaside using
| >    a JSON
| >    canvas[2]. As of today the code is usable for producing simple
| >    JSOn. At the
| >    moment there is no facility for passing arguments from the
| >    client to the server.
| >    The API will change radically over time...
| >
| >    I've taken Philippe's work and written a Counter in Amber[3]
| >    that gets
| >    the state from the server.
| >
| > All of this work is pretty new, the api's are in flux and there are
| > probably hidden bugs floating around as well ...
| >
| > On the Amber side, once you've got your hands on some JSON, you can
| > just use the javascript compiler to deserialize the objects:
| >
| >    Compiler new eval: '(', aJSONString, ')'
| >
| > I don't know of a JSON parser for Pharo...JSON is so simple that
| > there probably is one floating around somewhere.
| >
| > So in the end there are bits and pieces floating around with folks
| > working on putting the bits and pieces into some semblance of
| > order, but at the moment you are pretty much on your own...
| >
| > Dale
| >
| > [1] http://ss3.gemstone.com/ss/Kaliningrad.html
| > [2] see ConfigurationOfSeasideJSON in
| > http://www.squeaksource.com/MetacelloRepository
| > [3] see TOAmberCounter in the tODE-AMber package in
| > http://ss3.gemstone.com/ss/tODE
| >
| > ----- Original Message -----
| > | From: "Joel Turnbull"<[hidden email]>
| > | To: [hidden email]
| > | Sent: Tuesday, September 27, 2011 9:31:36 PM
| > | Subject: [amber-lang] Communicating Objects
| > |
| > | Guys I hope I'm not rehashing an old question. Searches haven't
| > | come
| > | up with anything.
| > |
| > | What is the prevailing best practice for communicating simple
| > | objects
| > | between Amber and Seaside? Are there any object serialization /
| > | deserialization libraries within Amber at this point? A JSON
| > | parser?
| > |
| > | Thanks,
| > | Joel
| > |
|
|
| --
| Nicolas Petton
| http://nicolas-petton.fr
|