[Glass] Moving data from Pharo with SIXX

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

[Glass] Moving data from Pharo with SIXX

Mariano Martinez Peck
Hi guys,

I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. 
So..what things should I be careful while serializing? sorted collections? closures? 
Floats? DateAndTimes? ScaledDecimal ... 
In other words...is there any known type of object that I should not move with SIXX to GemStone?

Any blog post or something about using/installing/serializing/materializing SIXX for this task? 

Thanks in advance!!


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Moving data from Pharo with SIXX

Dale Henrichs-3
I think that these two posts still apply [1], [2] plus the discussions on this list [3],[4]....

[1] http://gemstonesoup.wordpress.com/2009/06/01/deep-sixx-with-xmlpullparser/
[2] http://gemstonesoup.wordpress.com/2008/11/19/gemstone-101-managing-out-of-memory-situations/
[3] http://forum.world.st/Porting-data-from-Pharo-to-GLASS-with-SIXX-td4658419.html
[4] https://www.google.com/search?q=sixx+glass+site:forum.world.st&rlz=1C5CHFA_enUS507US513&espv=210&es_sm=91&biw=957&bih=537

From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 22, 2013 10:58:25 AM
Subject: [Glass] Moving data from Pharo with SIXX

Hi guys,

I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. 
So..what things should I be careful while serializing? sorted collections? closures? 
Floats? DateAndTimes? ScaledDecimal ... 
In other words...is there any known type of object that I should not move with SIXX to GemStone?

Any blog post or something about using/installing/serializing/materializing SIXX for this task? 

Thanks in advance!!


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Moving data from Pharo with SIXX

Mariano Martinez Peck
In reply to this post by Mariano Martinez Peck
Stephan, as you can imagine, I am one of them. I have replied this a few times already, but I will answer again. 
Fuel was developed from scratch with 2 main goals: 1) speed 2) good design. Portability was not our main goal, which is at the same time  the most important goal in other serializers.
That being said, having a good design allowed us to make some ports. For example, Fuel currently works in all versions from Pharo 1.1 to Pharo 3.0 and it works in Squeak. I was also ported to VW and it was kind of working (I think the port was never finished). It was also ported to Newspeak. 
So....even if it was not our goal, I think it should NOT be difficult to make Fuel in GemStone. The only thing we would need is the special serialization for certain low level classes like SmallDouble and things like that. 

But...all that paragraph is about making Fuel to work in GemStone. And yes, I think it is possible and should not take much. But, a completely different story is to not only make Fuel work in Pharo and GemStone but also be able to serialize in one place and materialize in another one. That requires including lot of information (metadata) in the serialization, try to find portable serialziation/representation of objects, etc etc etc.  And this one yes, I think it is more complicated and more complicated to implement. 

Cheers, 
 


On Sat, Nov 23, 2013 at 4:57 PM, Stephan Eggermont <[hidden email]> wrote:
There used to be people who thought Fuel might be interesting for this…

Stephan

On 22 nov. 2013, at 19:58, Mariano Martinez Peck <[hidden email]> wrote:

> Hi guys,
>
> I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX.
> So..what things should I be careful while serializing? sorted collections? closures?
> Floats? DateAndTimes? ScaledDecimal ...
> In other words...is there any known type of object that I should not move with SIXX to GemStone?
>
> Any blog post or something about using/installing/serializing/materializing SIXX for this task?
>
> Thanks in advance!!
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
> _______________________________________________
> Glass mailing list
> [hidden email]
> http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Moving data from Pharo with SIXX

Mariano Martinez Peck
In reply to this post by Dale Henrichs-3
Thanks Dale for the links. 
So, I installed SIXX in Pharo with:

Gofer new 
squeaksource: 'MetacelloRepository'; 
package:  'ConfigurationOfSIXX'; 
load.
(Smalltalk at:#ConfigurationOfSIXX) load.
And I serialized into a text file sending #sixxString.

In GemStone I installed SIXX with:

Metacello new baseline: 'SIXX'; repository: 'github://glassdb/SIXX:master/repository'; load .


and tried to materialize with #readSixxFrom:

Now...the problem is that first, it barked because the class LargePositiveInteger didn't exist. So I found a workaound doing:

srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'myFile.xml'). srs shapeChangers at: #LargePositiveInteger put: LargeInteger.
srs next. 

Cool. I continue and now it barks because it doesn't find the class False..... 
So.....I thought the SIXX serialization between Pharo and GemStone managed this stuff. Am I doing something wrong or I need to manually map all these classes?

Thanks!



On Fri, Nov 22, 2013 at 5:23 PM, Dale K. Henrichs <[hidden email]> wrote:
I think that these two posts still apply [1], [2] plus the discussions on this list [3],[4]....

[1] http://gemstonesoup.wordpress.com/2009/06/01/deep-sixx-with-xmlpullparser/
[2] http://gemstonesoup.wordpress.com/2008/11/19/gemstone-101-managing-out-of-memory-situations/
[3] http://forum.world.st/Porting-data-from-Pharo-to-GLASS-with-SIXX-td4658419.html
[4] https://www.google.com/search?q=sixx+glass+site:forum.world.st&rlz=1C5CHFA_enUS507US513&espv=210&es_sm=91&biw=957&bih=537

From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 22, 2013 10:58:25 AM
Subject: [Glass] Moving data from Pharo with SIXX


Hi guys,

I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. 
So..what things should I be careful while serializing? sorted collections? closures? 
Floats? DateAndTimes? ScaledDecimal ... 
In other words...is there any known type of object that I should not move with SIXX to GemStone?

Any blog post or something about using/installing/serializing/materializing SIXX for this task? 

Thanks in advance!!


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Moving data from Pharo with SIXX

Dale Henrichs-3
Mariano,

I haven't actually used SIXX in years so it will take some time for me to blow the dust off my SIXX SKILLZ:)

The LargeInteger class is new in 3.x so that one is not a surprise ... Having to map True and False is not surprising since they are classes that don't exist in GemStone ... I almost think that perhaps True and False being required might be indicative of a bug on the pharo side, since I seem to recall that SIXX has the notion of Booleans builtin so the True and False classes should be masked on the creation side ... then again I could be remembering this wrong:)

I assume that a set of standard mappings for classes could be created, and I'm curious if any of the folks that use SIXX have done so?

Dale


From: "Mariano Martinez Peck" <[hidden email]>
To: "Dale K. Henrichs" <[hidden email]>, [hidden email]
Sent: Tuesday, November 26, 2013 8:25:41 AM
Subject: Re: [Glass] Moving data from Pharo with SIXX

Thanks Dale for the links. 
So, I installed SIXX in Pharo with:

Gofer new 
squeaksource: 'MetacelloRepository'; 
package:  'ConfigurationOfSIXX'; 
load.
(Smalltalk at:#ConfigurationOfSIXX) load.
And I serialized into a text file sending #sixxString.

In GemStone I installed SIXX with:

Metacello new baseline: 'SIXX'; repository: 'github://glassdb/SIXX:master/repository'; load .


and tried to materialize with #readSixxFrom:

Now...the problem is that first, it barked because the class LargePositiveInteger didn't exist. So I found a workaound doing:

srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'myFile.xml'). srs shapeChangers at: #LargePositiveInteger put: LargeInteger.
srs next. 

Cool. I continue and now it barks because it doesn't find the class False..... 
So.....I thought the SIXX serialization between Pharo and GemStone managed this stuff. Am I doing something wrong or I need to manually map all these classes?

Thanks!



On Fri, Nov 22, 2013 at 5:23 PM, Dale K. Henrichs <[hidden email]> wrote:
I think that these two posts still apply [1], [2] plus the discussions on this list [3],[4]....

[1] http://gemstonesoup.wordpress.com/2009/06/01/deep-sixx-with-xmlpullparser/
[2] http://gemstonesoup.wordpress.com/2008/11/19/gemstone-101-managing-out-of-memory-situations/
[3] http://forum.world.st/Porting-data-from-Pharo-to-GLASS-with-SIXX-td4658419.html
[4] https://www.google.com/search?q=sixx+glass+site:forum.world.st&rlz=1C5CHFA_enUS507US513&espv=210&es_sm=91&biw=957&bih=537

From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 22, 2013 10:58:25 AM
Subject: [Glass] Moving data from Pharo with SIXX


Hi guys,

I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. 
So..what things should I be careful while serializing? sorted collections? closures? 
Floats? DateAndTimes? ScaledDecimal ... 
In other words...is there any known type of object that I should not move with SIXX to GemStone?

Any blog post or something about using/installing/serializing/materializing SIXX for this task? 

Thanks in advance!!


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Moving data from Pharo with SIXX

Mariano Martinez Peck



On Tue, Nov 26, 2013 at 1:45 PM, Dale K. Henrichs <[hidden email]> wrote:
Mariano,

I haven't actually used SIXX in years so it will take some time for me to blow the dust off my SIXX SKILLZ:)

The LargeInteger class is new in 3.x so that one is not a surprise ... Having to map True and False is not surprising since they are classes that don't exist in GemStone ... I almost think that perhaps True and False being required might be indicative of a bug on the pharo side, since I seem to recall that SIXX has the notion of Booleans builtin so the True and False classes should be masked on the creation side ... then again I could be remembering this wrong:) 

I assume that a set of standard mappings for classes could be created, and I'm curious if any of the folks that use SIXX have done so?


I was wondering the same. Anyway, I could at least materialize using this:

srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'xxx.xml').
srs shapeChangers at: #LargePositiveInteger put: LargeInteger.
srs shapeChangers at: #True put: TrueClass.
srs shapeChangers at: #False put: FalseClass.
materializedObject := srs next .

I am not 100% if that is the correct way to do it but a simple view seems the materialized graph is OK.

Cheers, 

 
Dale


From: "Mariano Martinez Peck" <[hidden email]>
To: "Dale K. Henrichs" <[hidden email]>, [hidden email]
Sent: Tuesday, November 26, 2013 8:25:41 AM
Subject: Re: [Glass] Moving data from Pharo with SIXX


Thanks Dale for the links. 
So, I installed SIXX in Pharo with:

Gofer new 
squeaksource: 'MetacelloRepository'; 
package:  'ConfigurationOfSIXX'; 
load.
(Smalltalk at:#ConfigurationOfSIXX) load.
And I serialized into a text file sending #sixxString.

In GemStone I installed SIXX with:

Metacello new baseline: 'SIXX'; repository: 'github://glassdb/SIXX:master/repository'; load .


and tried to materialize with #readSixxFrom:

Now...the problem is that first, it barked because the class LargePositiveInteger didn't exist. So I found a workaound doing:

srs := SixxShapeChangeReadStream on: (FileStream oldFileNamed: 'myFile.xml'). srs shapeChangers at: #LargePositiveInteger put: LargeInteger.
srs next. 

Cool. I continue and now it barks because it doesn't find the class False..... 
So.....I thought the SIXX serialization between Pharo and GemStone managed this stuff. Am I doing something wrong or I need to manually map all these classes?

Thanks!



On Fri, Nov 22, 2013 at 5:23 PM, Dale K. Henrichs <[hidden email]> wrote:
I think that these two posts still apply [1], [2] plus the discussions on this list [3],[4]....

[1] http://gemstonesoup.wordpress.com/2009/06/01/deep-sixx-with-xmlpullparser/
[2] http://gemstonesoup.wordpress.com/2008/11/19/gemstone-101-managing-out-of-memory-situations/
[3] http://forum.world.st/Porting-data-from-Pharo-to-GLASS-with-SIXX-td4658419.html
[4] https://www.google.com/search?q=sixx+glass+site:forum.world.st&rlz=1C5CHFA_enUS507US513&espv=210&es_sm=91&biw=957&bih=537

From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 22, 2013 10:58:25 AM
Subject: [Glass] Moving data from Pharo with SIXX


Hi guys,

I want to start testing my app in GemStone and one of the things I would need to do first is to move some that. I understand that most of the people use SIXX. 
So..what things should I be careful while serializing? sorted collections? closures? 
Floats? DateAndTimes? ScaledDecimal ... 
In other words...is there any known type of object that I should not move with SIXX to GemStone?

Any blog post or something about using/installing/serializing/materializing SIXX for this task? 

Thanks in advance!!


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com




--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass