From yanni@rogers.com Tue Nov 9 19:43:13 2010 From: Yanni Chiu To: smallwiki@list.inf.unibe.ch Subject: what is status of Pier-FilesystemPersistence Date: Tue, 09 Nov 2010 13:42:56 -0500 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2562828816200314495==" --===============2562828816200314495== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I've been looking at Pier-FilesystemPersistence, and have a few questions. The version comments seem to indicate it is still a work in progress. What work remains to be done? It looks like the change history is not persisted. What's a good way to do that - individual xml files, or a change log? The usage scenario seems to be: start image, import kernel, save pages. Would it be possible to do a lazy read of the kernel, instead of reading it in entirely, at image start up? How does it compare with SIXX persistence done for VA Smalltalk? -- Yanni Chiu --===============2562828816200314495==-- From jvdsandt@gmail.com Wed Nov 10 10:07:39 2010 From: Jan van de Sandt To: smallwiki@list.inf.unibe.ch Subject: Re: what is status of Pier-FilesystemPersistence Date: Wed, 10 Nov 2010 10:07:35 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6982459964834066229==" --===============6982459964834066229== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hello Yanni, The idea of the Pier-FilesystemPersistence package is to have an export/import and persistence mechanism that stores the tree of PRStructure objects in a directory tree. Each instance of a subclass of PRStructure is represented by a single xml file. The xml file contains something like this: About this website bla bla bla .... With the current version you can export a Pier website to such a directory tree. Or a zip file containing such a tree. I am still working on using this functionality as a persistence mechanism. A few commands are already implemented but not all. And I haven't figured out yet how to handle the change history. One of the ideas I want to try out is to manage the directory tree with a SCM like subversion. On Tue, Nov 9, 2010 at 7:42 PM, Yanni Chiu wrote: > I've been looking at Pier-FilesystemPersistence, and have a few questions. > > The version comments seem to indicate it is still a work in progress. What > work remains to be done? > > It looks like the change history is not persisted. What's a good way to do > that - individual xml files, or a change log? > > The usage scenario seems to be: start image, import kernel, save pages. > Would it be possible to do a lazy read of the kernel, instead of reading it > in entirely, at image start up? > > Not yet. I think something like this can be implemented but it will require some changes to the Pier code. You need some kind of hook in the childrenDecoration od a PRStructure. > How does it compare with SIXX persistence done for VA Smalltalk? > > I don't know SIXX very well but I think it is a generic serialization mechanism for Smalltalk objects to XML. You don't have control over the xml schema with SIXX. And I'm not sure if it is possible with SIXX to store groups of related Smalltalk object in separate files. Pier-FilesystemPersistence uses the package Magritte-XMLBinding. WIth this package you can control the way Magritte objects (like PRStructure) are serialized to xml. So it is still work in progress. If you want to have a look at it, you can load it using the following Gofer script (I use a Pier2 image from the build server of Lukas Renggli as a base image): "XML Support" Gofer new squeaksource: 'XMLSupport'; package: 'XML-Parser'; load. "Load Filesystem" Gofer new renggli: 'fs'; package: 'Filesystem'; load. Gofer new renggli: 'magritte2addons'; package: 'Magritte-XMLBinding'; load. Gofer new renggli: 'pier2addons'; package: 'Pier-FilesystemPersistence'; load. Jan. --===============6982459964834066229== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 SGVsbG8gWWFubmksPGJyPjxicj5UaGUgaWRlYSBvZiB0aGUgUGllci1GaWxlc3lzdGVtUGVyc2lz dGVuY2UgcGFja2FnZSBpcyB0byBoYXZlIGFuIGV4cG9ydC9pbXBvcnQgYW5kIHBlcnNpc3RlbmNl IG1lY2hhbmlzbSB0aGF0IHN0b3JlcyB0aGUgdHJlZSBvZiBQUlN0cnVjdHVyZSBvYmplY3RzIGlu IGEgZGlyZWN0b3J5IHRyZWUuIEVhY2ggaW5zdGFuY2Ugb2YgYSBzdWJjbGFzcyBvZiBQUlN0cnVj dHVyZSBpcyByZXByZXNlbnRlZCBieSBhIHNpbmdsZSB4bWwgZmlsZS4gVGhlIHhtbCBmaWxlIGNv bnRhaW5zIHNvbWV0aGluZyBsaWtlIHRoaXM6PGJyPgo8YnI+Jmx0O1BSUGFnZSBuYW1lPSZxdW90 O2Fib3V0JnF1b3Q7Jmd0Ozxicj6goKAgJmx0O3RpdGxlJmd0O0Fib3V0IHRoaXMgd2Vic2l0ZSZs dDsvdGl0bGUmZ3Q7PGJyPqCgoCAmbHQ7ZG9jdW1lbnQmZ3Q7YmxhIGJsYSBibGEmbHQ7L2RvY3Vt ZW50Jmd0Ozxicj6goKAgLi4uLjxicj4mbHQ7L1BSUGFnZSZndDs8YnI+PGJyPldpdGggdGhlIGN1 cnJlbnQgdmVyc2lvbiB5b3UgY2FuIGV4cG9ydCBhIFBpZXIgd2Vic2l0ZSB0byBzdWNoIGEgZGly ZWN0b3J5IHRyZWUuIE9yIGEgemlwIGZpbGUgY29udGFpbmluZyBzdWNoIGEgdHJlZS4gSSBhbSBz dGlsbCB3b3JraW5nIG9uIHVzaW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBhcyBhIHBlcnNpc3RlbmNl IG1lY2hhbmlzbS4gQSBmZXcgY29tbWFuZHMgYXJlIGFscmVhZHkgaW1wbGVtZW50ZWQgYnV0IG5v dCBhbGwuIEFuZCBJIGhhdmVuJiMzOTt0IGZpZ3VyZWQgb3V0IHlldCBob3cgdG8gaGFuZGxlIHRo ZSBjaGFuZ2UgaGlzdG9yeS4gT25lIG9mIHRoZSBpZGVhcyBJIHdhbnQgdG8gdHJ5IG91dCBpcyB0 byBtYW5hZ2UgdGhlIGRpcmVjdG9yeSB0cmVlIHdpdGggYSBTQ00gbGlrZSBzdWJ2ZXJzaW9uLjxi cj4KPGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gVHVlLCBOb3YgOSwgMjAxMCBh dCA3OjQyIFBNLCBZYW5uaSBDaGl1IDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRv Onlhbm5pQHJvZ2Vycy5jb20iPnlhbm5pQHJvZ2Vycy5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6 PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBw dCAwcHQgMC44ZXg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBw YWRkaW5nLWxlZnQ6IDFleDsiPgpJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgYXQgUGllci1GaWxlc3lz dGVtUGVyc2lzdGVuY2UsIGFuZCBoYXZlIGEgZmV3IHF1ZXN0aW9ucy48YnI+Cjxicj4KVGhlIHZl cnNpb24gY29tbWVudHMgc2VlbSB0byBpbmRpY2F0ZSBpdCBpcyBzdGlsbCBhIHdvcmsgaW4gcHJv Z3Jlc3MuIFdoYXQgd29yayByZW1haW5zIHRvIGJlIGRvbmU/PGJyPgo8YnI+Ckl0IGxvb2tzIGxp a2UgdGhlIGNoYW5nZSBoaXN0b3J5IGlzIG5vdCBwZXJzaXN0ZWQuIFdoYXQmIzM5O3MgYSBnb29k IHdheSB0byBkbyB0aGF0IC0gaW5kaXZpZHVhbCB4bWwgZmlsZXMsIG9yIGEgY2hhbmdlIGxvZz88 YnI+Cjxicj4KVGhlIHVzYWdlIHNjZW5hcmlvIHNlZW1zIHRvIGJlOiBzdGFydCBpbWFnZSwgaW1w b3J0IGtlcm5lbCwgc2F2ZSBwYWdlcy4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gZG8gYSBsYXp5 IHJlYWQgb2YgdGhlIGtlcm5lbCwgaW5zdGVhZCBvZiByZWFkaW5nIGl0IGluIGVudGlyZWx5LCBh dCBpbWFnZSBzdGFydCB1cD88YnI+Cjxicj48L2Jsb2NrcXVvdGU+PGRpdj5Ob3QgeWV0LiBJIHRo aW5rIHNvbWV0aGluZyBsaWtlIHRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ1dCBpdCB3aWxsIHJl cXVpcmUgc29tZSBjaGFuZ2VzIHRvIHRoZSBQaWVyIGNvZGUuIFlvdSBuZWVkIHNvbWUga2luZCBv ZiBob29rIGluIHRoZSBjaGlsZHJlbkRlY29yYXRpb24gb2QgYSBQUlN0cnVjdHVyZS48YnI+oDwv ZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBw dCAwcHQgMC44ZXg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBw YWRkaW5nLWxlZnQ6IDFleDsiPgoKSG93IGRvZXMgaXQgY29tcGFyZSB3aXRoIFNJWFggcGVyc2lz dGVuY2UgZG9uZSBmb3IgVkEgU21hbGx0YWxrPzxicj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+Cjxi cj48L2ZvbnQ+PC9ibG9ja3F1b3RlPjxkaXY+SSBkb24mIzM5O3Qga25vdyBTSVhYIHZlcnkgd2Vs bCBidXQgSSB0aGluayBpdCBpcyBhIGdlbmVyaWMgc2VyaWFsaXphdGlvbiBtZWNoYW5pc20gZm9y IFNtYWxsdGFsayBvYmplY3RzIHRvIFhNTC4gWW91IGRvbiYjMzk7dCBoYXZlIGNvbnRyb2wgb3Zl ciB0aGUgeG1sIHNjaGVtYSB3aXRoIFNJWFguIEFuZCBJJiMzOTttIG5vdCBzdXJlIGlmIGl0IGlz IHBvc3NpYmxlIHdpdGggU0lYWCB0byBzdG9yZSBncm91cHMgb2YgcmVsYXRlZCBTbWFsbHRhbGsg b2JqZWN0IGluIHNlcGFyYXRlIGZpbGVzLjxicj4KPGJyPlBpZXItRmlsZXN5c3RlbVBlcnNpc3Rl bmNlIHVzZXMgdGhlIHBhY2thZ2UgTWFncml0dGUtWE1MQmluZGluZy4gV0l0aCB0aGlzIHBhY2th Z2UgeW91IGNhbiBjb250cm9sIHRoZSB3YXkgTWFncml0dGUgb2JqZWN0cyAobGlrZSBQUlN0cnVj dHVyZSkgYXJlIHNlcmlhbGl6ZWQgdG8geG1sLjxicj48YnI+U28gaXQgaXMgc3RpbGwgd29yayBp biBwcm9ncmVzcy4gSWYgeW91IHdhbnQgdG8gaGF2ZSBhIGxvb2sgYXQgaXQsIHlvdSBjYW4gbG9h ZCBpdCB1c2luZyB0aGUgZm9sbG93aW5nIEdvZmVyIHNjcmlwdCAoSSB1c2UgYSBQaWVyMiBpbWFn ZSBmcm9tIHRoZSBidWlsZCBzZXJ2ZXIgb2YgTHVrYXMgUmVuZ2dsaSBhcyBhIGJhc2UgaW1hZ2Up Ojxicj4KPGJyPjxwcmU+JnF1b3Q7WE1MIFN1cHBvcnQmcXVvdDs8YnI+R29mZXIgbmV3PGJyPglz cXVlYWtzb3VyY2U6ICYjMzk7WE1MU3VwcG9ydCYjMzk7Ozxicj4JcGFja2FnZTogJiMzOTtYTUwt UGFyc2VyJiMzOTs7PGJyPglsb2FkLjxicj48YnI+JnF1b3Q7TG9hZCBGaWxlc3lzdGVtJnF1b3Q7 PGJyPkdvZmVyIG5ldzxicj4JcmVuZ2dsaTogJiMzOTtmcyYjMzk7Ozxicj4JcGFja2FnZTogJiMz OTtGaWxlc3lzdGVtJiMzOTs7PGJyPgoJbG9hZC48YnI+CTxicj5Hb2ZlciBuZXc8YnI+CXJlbmdn bGk6ICYjMzk7bWFncml0dGUyYWRkb25zJiMzOTs7PGJyPglwYWNrYWdlOiAmIzM5O01hZ3JpdHRl LVhNTEJpbmRpbmcmIzM5Ozs8YnI+CWxvYWQuPGJyPjxicj5Hb2ZlciBuZXc8YnI+CXJlbmdnbGk6 ICYjMzk7cGllcjJhZGRvbnMmIzM5Ozs8YnI+CXBhY2thZ2U6ICYjMzk7UGllci1GaWxlc3lzdGVt UGVyc2lzdGVuY2UmIzM5Ozs8YnI+Cglsb2FkLjxicj48YnI+SmFuLjxicj48L3ByZT48YnI+PC9k aXY+PC9kaXY+PGJyPgo= --===============6982459964834066229==-- From yanni@rogers.com Wed Nov 10 17:28:09 2010 From: Yanni Chiu To: smallwiki@list.inf.unibe.ch Subject: Re: what is status of Pier-FilesystemPersistence Date: Wed, 10 Nov 2010 11:27:53 -0500 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5478393513937277570==" --===============5478393513937277570== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit On 10/11/10 4:07 AM, Jan van de Sandt wrote: > > So it is still work in progress. If you want to have a look at it, you > can load it using the following Gofer script (I use a Pier2 image from > the build server of Lukas Renggli as a base image): Thanks for the background info. I've already loaded it, and saved a Pier kernel to disk, and restored it into a somewhat working site. I had to use an older version of XMLSupport to have the tests pass, because the latest XML code outputs some spaces in different positions than before, so some string compares failed. I'm actual looking for a way to externalize the Pier kernel content, so that no image save needs to be done. I will try to look into how SIXX is utilized to save Pier content. -- Yanni --===============5478393513937277570==-- From norbert@hartl.name Wed Nov 10 17:45:04 2010 From: Norbert Hartl To: smallwiki@list.inf.unibe.ch Subject: Re: what is status of Pier-FilesystemPersistence Date: Wed, 10 Nov 2010 17:45:01 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0857616652096822510==" --===============0857616652096822510== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 10.11.2010, at 17:27, Yanni Chiu wrote: > I will try to look into how SIXX is utilized to save Pier content. It just works. Sixx writes out the complete object graph and can read it back= . Besides encoding there is less surprise to expect. Norbert --===============0857616652096822510==-- From yanni@rogers.com Wed Nov 10 18:39:00 2010 From: Yanni Chiu To: smallwiki@list.inf.unibe.ch Subject: Re: what is status of Pier-FilesystemPersistence Date: Wed, 10 Nov 2010 12:38:36 -0500 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7055880566755065880==" --===============7055880566755065880== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit On 10/11/10 11:45 AM, Norbert Hartl wrote: > > On 10.11.2010, at 17:27, Yanni Chiu wrote: > >> I will try to look into how SIXX is utilized to save Pier content. > > It just works. Sixx writes out the complete object graph and can read > it back. Besides encoding there is less surprise to expect. That sounds like a good enough solution. As the change history grows, then start up time may become an issue, but that's down the road. --===============7055880566755065880==--