From sean at clipperadams.com Sun Jan 1 21:40:18 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 12:40:18 -0800 (PST) Subject: Customizing Magritte Morphic Forms Message-ID: <1325450418055-4251518.post@n4.nabble.com> I'm playing with and already enjoying Magritte after the awesome talk Nick and Esteban gave at ESUG this year. How do I customize Magritte editors in Morphic? Specifically, for the Address example from the Seaside book, I tried: anAddress asMorph addButtons; addWindow; openInWorld. but the fields were really tiny and hid most of the text as you can see below (on Nabble at least): http://forum.world.st/file/n4251518/PharoScreenshot.2.png Then I tried a standard Morphic approach: | form window | form := anAddress asMorph addButtons. window := SystemWindow new addMorph: form fullFrame: (LayoutFrame fractions: (0 at 0 corner: 1.0 at 1.0) offsets: (10 at 10 corner: 10 at 10)). window openInWorld. but I got "MessageNotUnderstood: MAContainerMorph>>layoutFrame:" -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251518.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From renggli at gmail.com Sun Jan 1 21:53:03 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 1 Jan 2012 21:53:03 +0100 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325450418055-4251518.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: You might want to ask this question in the Moose or Pharo list: the Glamour people are probably the only users of Magritte-Morphic right now. I haven't tried it in any recent Pharo image. Lukas On 1 January 2012 21:40, Sean P. DeNigris wrote: > I'm playing with and already enjoying Magritte after the awesome talk Nick > and Esteban gave at ESUG this year. > > How do I customize Magritte editors in Morphic? Specifically, for the > Address example from the Seaside book, I tried: > ? ? ? ?anAddress asMorph > ? ? ? ? ? ? ? ?addButtons; > ? ? ? ? ? ? ? ?addWindow; > ? ? ? ? ? ? ? ?openInWorld. > > but the fields were really tiny and hid most of the text as you can see > below (on Nabble at least): > http://forum.world.st/file/n4251518/PharoScreenshot.2.png > > Then I tried a standard Morphic approach: > ? ? ? ?| form window | > ? ? ? ?form := anAddress asMorph addButtons. > ? ? ? ?window := SystemWindow new addMorph: form fullFrame: (LayoutFrame > fractions: (0 at 0 corner: 1.0 at 1.0) offsets: (10 at 10 corner: 10 at 10)). > ? ? ? ?window openInWorld. > > but I got "MessageNotUnderstood: MAContainerMorph>>layoutFrame:" > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251518.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sean at clipperadams.com Sun Jan 1 21:58:02 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 12:58:02 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: <1325451482143-4251565.post@n4.nabble.com> Lukas Renggli wrote > > You might want to ask this question in the Moose or Pharo list > Okay, thanks Lukas, I will. -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251565.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From estebanlm at gmail.com Sun Jan 1 22:05:20 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 1 Jan 2012 18:05:20 -0300 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325450418055-4251518.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> Hi Sean, I fixed that... if you update Magritte-Morphic package it should be there... Cheers, Esteban El 01/01/2012, a las 5:40p.m., Sean P. DeNigris escribi?: > I'm playing with and already enjoying Magritte after the awesome talk Nick > and Esteban gave at ESUG this year. > > How do I customize Magritte editors in Morphic? Specifically, for the > Address example from the Seaside book, I tried: > anAddress asMorph > addButtons; > addWindow; > openInWorld. > > but the fields were really tiny and hid most of the text as you can see > below (on Nabble at least): > http://forum.world.st/file/n4251518/PharoScreenshot.2.png > > Then I tried a standard Morphic approach: > | form window | > form := anAddress asMorph addButtons. > window := SystemWindow new addMorph: form fullFrame: (LayoutFrame > fractions: (0 at 0 corner: 1.0 at 1.0) offsets: (10 at 10 corner: 10 at 10)). > window openInWorld. > > but I got "MessageNotUnderstood: MAContainerMorph>>layoutFrame:" > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251518.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From tudor at tudorgirba.com Sun Jan 1 22:08:00 2012 From: tudor at tudorgirba.com (Tudor Girba) Date: Sun, 1 Jan 2012 22:08:00 +0100 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325450418055-4251518.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: Hi, Here is the code from the rendering in Glamour: magritteMorph := FAMIXClass asMooseDescription asMagritteDescription asMorph addButtons; morph. scrollPane := GeneralScrollPane new. scrollPane changeScrollerTableLayout. scrollPane scrollTarget: magritteMorph. scrollPane layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 1)). scrollPane openInWindow I use the GeneralScrollPane because it lets you fill on one dimension and have a scroll on the other dimension. Cheers, Doru On 1 Jan 2012, at 21:40, Sean P. DeNigris wrote: > I'm playing with and already enjoying Magritte after the awesome talk Nick > and Esteban gave at ESUG this year. > > How do I customize Magritte editors in Morphic? Specifically, for the > Address example from the Seaside book, I tried: > anAddress asMorph > addButtons; > addWindow; > openInWorld. > > but the fields were really tiny and hid most of the text as you can see > below (on Nabble at least): > http://forum.world.st/file/n4251518/PharoScreenshot.2.png > > Then I tried a standard Morphic approach: > | form window | > form := anAddress asMorph addButtons. > window := SystemWindow new addMorph: form fullFrame: (LayoutFrame > fractions: (0 at 0 corner: 1.0 at 1.0) offsets: (10 at 10 corner: 10 at 10)). > window openInWorld. > > but I got "MessageNotUnderstood: MAContainerMorph>>layoutFrame:" > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251518.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- www.tudorgirba.com "What we can governs what we wish." From sean at clipperadams.com Sun Jan 1 22:16:36 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 13:16:36 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> Message-ID: <1325452596505-4251595.post@n4.nabble.com> EstebanLM wrote > > I fixed that... if you update Magritte-Morphic package it should be > there... > Thanks Esteban. I have loaded Magritte-Morph-jmck.49, which seems to be the latest version at http://source.lukas-renggli.ch/magritte -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251595.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From sean at clipperadams.com Sun Jan 1 22:29:45 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 13:29:45 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: <1325453385865-4251623.post@n4.nabble.com> Tudor Girba-2 wrote > > Here is the code from the rendering in Glamour: > Thanks for the immediate feedback! I realized from your snippet what was missing in my attempt: | form window | form := anAddress asMorph addButtons. window := SystemWindow new addMorph: form ***morph*** fullFrame: (LayoutFrame fractions: (0 at 0 corner: 1.0 at 1.0) offsets: (10 at 10 corner: 10 at 10)). window openInWorld. OMG! It seems terribly misleading to me to call something a morph that is not a morph. This violates the principle of least surprise, and while surprises are nice today because it's a holiday, not so much the rest of the year ;-) Humble suggestions: 1) change #asMorph to something like forMorphic 2) make #addWindow behave more reasonably 3) MAContainerMorph and friends -> MAMorphicContainer -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251623.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From estebanlm at gmail.com Sun Jan 1 22:34:59 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 1 Jan 2012 18:34:59 -0300 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325452596505-4251595.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325452596505-4251595.post@n4.nabble.com> Message-ID: you need to go magritte2 repository... El 01/01/2012, a las 6:16p.m., Sean P. DeNigris escribi?: > > EstebanLM wrote >> >> I fixed that... if you update Magritte-Morphic package it should be >> there... >> > > Thanks Esteban. I have loaded Magritte-Morph-jmck.49, which seems to be the > latest version at http://source.lukas-renggli.ch/magritte > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251595.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From sean at clipperadams.com Sun Jan 1 22:41:42 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 13:41:42 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325452596505-4251595.post@n4.nabble.com> Message-ID: <1325454102059-4251647.post@n4.nabble.com> EstebanLM wrote > > you need to go magritte2 repository... > Has that superseded the other? http://www.lukas-renggli.ch/smalltalk/magritte still points to v. 1 -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251647.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From estebanlm at gmail.com Sun Jan 1 22:48:19 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 1 Jan 2012 18:48:19 -0300 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325454102059-4251647.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325452596505-4251595.post@n4.nabble.com> <1325454102059-4251647.post@n4.nabble.com> Message-ID: <59397158-5CEC-4978-9B85-9656140B4BB9@gmail.com> yep... it is much more update :) El 01/01/2012, a las 6:41p.m., Sean P. DeNigris escribi?: > > EstebanLM wrote >> >> you need to go magritte2 repository... >> > > Has that superseded the other? > http://www.lukas-renggli.ch/smalltalk/magritte still points to v. 1 > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251647.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From tudor at tudorgirba.com Sun Jan 1 22:55:40 2012 From: tudor at tudorgirba.com (Tudor Girba) Date: Sun, 1 Jan 2012 22:55:40 +0100 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325454102059-4251647.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325452596505-4251595.post@n4.nabble.com> <1325454102059-4251647.post@n4.nabble.com> Message-ID: <5E782BB0-C206-495E-90C0-839C417A8DEB@tudorgirba.com> Yes, if you start now, you should work with Magritte2. Doru On 1 Jan 2012, at 22:41, Sean P. DeNigris wrote: > > EstebanLM wrote >> >> you need to go magritte2 repository... >> > > Has that superseded the other? > http://www.lukas-renggli.ch/smalltalk/magritte still points to v. 1 > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251647.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- www.tudorgirba.com "There are no old things, there are only old ways of looking at them." From renggli at gmail.com Sun Jan 1 23:14:17 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 1 Jan 2012 23:14:17 +0100 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325454102059-4251647.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325452596505-4251595.post@n4.nabble.com> <1325454102059-4251647.post@n4.nabble.com> Message-ID: Thank you, I've updated the links. The difference between Magritte 1 and 2 is minimal. The new version was merely a way to align Magritte with Pier 2. Lukas On 1 January 2012 22:41, Sean P. DeNigris wrote: > > EstebanLM wrote >> >> you need to go magritte2 repository... >> > > Has that superseded the other? > http://www.lukas-renggli.ch/smalltalk/magritte still points to v. 1 > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251647.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sean at clipperadams.com Sun Jan 1 23:28:01 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 14:28:01 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: References: <1325450418055-4251518.post@n4.nabble.com> Message-ID: <1325456881520-4251731.post@n4.nabble.com> Tudor Girba-2 wrote > > Here is the code from the rendering in Glamour: > Tudor Girba-2 wrote > > Here is the code from the rendering in Glamour: > With this approach: morph := anAddress asMorph addButtons; morph. scrollPane := GeneralScrollPane new. scrollPane changeScrollerTableLayout. scrollPane scrollTarget: morph. scrollPane layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 1)). scrollPane openInWindow I got an emergency evaluator when I clicked "Save": THERE_BE_DRAGONS_HERE SubscriptOutOfBounds: 1 1 January 2012 5:24:26 pm VM: Mac OS - intel - 1072 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-EstebanLorenzano.139] 21.0 Image: Pharo1.3 [Latest update: #13320] Array(Object)>>errorSubscriptBounds: Receiver: #() Arguments and temporary variables: index: 1 Receiver's instance variables: #() Array(Object)>>at: Receiver: #() Arguments and temporary variables: index: 1 Receiver's instance variables: #() Array(SequenceableCollection)>>first Receiver: #() Arguments and temporary variables: Receiver's instance variables: #() GeneralScrollPane>>scrollTarget Receiver: a GeneralScrollPane(440139776) Arguments and temporary variables: Receiver's instance variables: bounds: 50 at 139 corner: 686 at 431 owner: a SystemWindow(908591104) submorphs: an Array(a TransformWithLayoutMorph(445382656)) fullBounds: 50 at 139 corner: 686 at 431 color: Color transparent extension: a MorphExtension (222822400) [other: (myDependents -> a DependentsA...etc... scroller: a TransformWithLayoutMorph(445382656) hScrollbar: a GeneralScrollBar(471334912) vScrollbar: a GeneralScrollBar(237240320) -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251731.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From sean at clipperadams.com Sun Jan 1 23:46:16 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Sun, 1 Jan 2012 14:46:16 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> Message-ID: <1325457976061-4251772.post@n4.nabble.com> EstebanLM wrote > > I fixed that... if you update Magritte-Morphic package it should be > there... > Okay, I'm all sorted out now. The magic incantation was: 1) Gofer new squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfMagritte2'; load. (Smalltalk at: #ConfigurationOfMagritte2) perform: #load. 2) Load Magritte-Morph-EstebanLorenzano.57 3) anAddress asMorph addButtons; addWindow; openInWorld. As implied above, the config doesn't include the fix. Should it be updated? -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251772.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From estebanlm at gmail.com Mon Jan 2 00:42:38 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 1 Jan 2012 20:42:38 -0300 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325457976061-4251772.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325457976061-4251772.post@n4.nabble.com> Message-ID: <5B463E83-5877-4049-BDE4-62CBA5066124@gmail.com> oh, crap... sorry... I'll add this to the list of little things that emerged this couple of days and will fix all of them tomorrow... cheers, Esteban El 01/01/2012, a las 7:46p.m., Sean P. DeNigris escribi?: > > EstebanLM wrote >> >> I fixed that... if you update Magritte-Morphic package it should be >> there... >> > > Okay, I'm all sorted out now. The magic incantation was: > 1) Gofer new > squeaksource: 'MetacelloRepository'; > package: 'ConfigurationOfMagritte2'; > load. > (Smalltalk at: #ConfigurationOfMagritte2) perform: #load. > 2) Load Magritte-Morph-EstebanLorenzano.57 > 3) anAddress asMorph > addButtons; > addWindow; > openInWorld. > > > As implied above, the config doesn't include the fix. Should it be updated? > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251772.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From sergiolist at village-buzz.com Tue Jan 3 04:33:18 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 2 Jan 2012 22:33:18 -0500 Subject: pier admin - adding to existing pier site Message-ID: hi all.. i was wondering if it was possible to install pier admin on an existing pier site.. i installed pier admin into my current image, and initially tried just changing my kernel to 'pier'.. the name of my pier kernel... it doesn't look like it's that simple.. any ideas? thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From nick.ager at gmail.com Tue Jan 3 10:54:19 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 3 Jan 2012 09:54:19 +0000 Subject: pier admin - adding to existing pier site In-Reply-To: References: Message-ID: Hi Sergio, > i was wondering if it was possible to install pier admin on an > existing pier site.. > It should work but I haven't tested it on an extensive range of pre-existing Pier kernels. Questions: 1) When you load pier-admin into your existing Pier installation does you Pier site continue to work correctly, that is the site without the pier-admin wrapper? 2) If the answer to 1) is yes then it should just be a matter of editing /config for pier-admin and defining the kernel, admin user and password. 3) If the answer to 1) is no, then one way to proceed would be to export your existing kernel. Install a fresh version of Pier, pier-admin etc and import your old kernel. Hope this helps, and let us know how you get along Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From estebanlm at gmail.com Tue Jan 3 14:23:18 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Tue, 3 Jan 2012 10:23:18 -0300 Subject: Customizing Magritte Morphic Forms In-Reply-To: <1325457976061-4251772.post@n4.nabble.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325457976061-4251772.post@n4.nabble.com> Message-ID: <0BD6906E-40CC-4541-9329-D2F7157AEB0B@gmail.com> Hi Sean, maybe there is something wrong with your installed packages, because I tried exactly same steps as you defined (well... I tried "MAStringDescription new" instead "anAdress"), and it is working for me. best, Esteban El 01/01/2012, a las 7:46p.m., Sean P. DeNigris escribi?: > > EstebanLM wrote >> >> I fixed that... if you update Magritte-Morphic package it should be >> there... >> > > Okay, I'm all sorted out now. The magic incantation was: > 1) Gofer new > squeaksource: 'MetacelloRepository'; > package: 'ConfigurationOfMagritte2'; > load. > (Smalltalk at: #ConfigurationOfMagritte2) perform: #load. > 2) Load Magritte-Morph-EstebanLorenzano.57 > 3) anAddress asMorph > addButtons; > addWindow; > openInWorld. > > > As implied above, the config doesn't include the fix. Should it be updated? > > -- > View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4251772.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From sean at clipperadams.com Tue Jan 3 17:27:36 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Tue, 3 Jan 2012 08:27:36 -0800 (PST) Subject: Customizing Magritte Morphic Forms In-Reply-To: <0BD6906E-40CC-4541-9329-D2F7157AEB0B@gmail.com> References: <1325450418055-4251518.post@n4.nabble.com> <94A68442-C8A4-467D-AF4D-33666A39C3E3@gmail.com> <1325457976061-4251772.post@n4.nabble.com> <0BD6906E-40CC-4541-9329-D2F7157AEB0B@gmail.com> Message-ID: <1325608056596-4257497.post@n4.nabble.com> EstebanLM wrote > > maybe there is something wrong with your installed packages, because I > tried exactly same steps as you defined (well... I tried > "MAStringDescription new" instead "anAdress"), and it is working for me. > Thanks for looking into this Esteban. When I load via the config into a fresh Pharo 1.3 image, I get the fields-too-small-for-the-content behavior. If I manually load Load Magritte-Morph-EstebanLorenzano.57, the fields are stretched to the width of the window, like shown in the docs (http://scg.unibe.ch/archive/masters/Reng06a.pdf pg. 9). So I think the config just needs to be updated. btw here's the MsAddress fileout if that helps http://forum.world.st/file/n4257497/MagritteSpd-Example.st MagritteSpd-Example.st -- View this message in context: http://forum.world.st/Customizing-Magritte-Morphic-Forms-tp4251518p4257497.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From renggli at gmail.com Tue Jan 3 18:11:37 2012 From: renggli at gmail.com (Lukas Renggli) Date: Tue, 3 Jan 2012 18:11:37 +0100 Subject: about some magritte changes I made... In-Reply-To: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> Message-ID: Hi Esteban, Great news! > I made some minor changes to magritte2, to accomplish a > few things you pointed as desirable: Please send such mails to the list. > 1) replace #description with #magritteDescription Right, but that will break a lot of code. Especially with Pier, that does a lot of fancy reflection on its structure and that is very hard to fix (at least the last time I tried). What about doing that in a second step? > 2) Create a pragma-based builder, using and pragmas Great. - Did you consider moving the descriptions to the instance-side, so that we have the descriptions together with the accessors and that we can have instance- and class-side descriptions? - Did you think about descriptions that get dynamically injected from the model? - Did you consider getting rid of the description cache and replacing it with a description selector cache? So that we can get the descriptions quickly but they are built dynamically in the context of the object? - Did you think about the extensibility properties, i.e. with method extensions: #descriptionFoo, #descriptionFooBarExt:, #descriptionFooZorkExt:, ... > 3) a small fix to make Magritte-Morphic work on Pharo 1.4 (a change on multiselect lists) Just commit it, if it doesn't break Pharo 1.3. > this is still not well tested (although all tests are green), but Nick wanted to start using it, so I wonder if there should be a new repository (magritte3, maybe, or "magritte2.1", whatever) to start working? > > what do you think, should I create it (in your repository)? Feel free to commit it to the current repository, if it doesn't break any builds. Otherwise we might want to submit it somewhere else before merging into the head. Lukas > > Cheers, > Esteban -- Lukas Renggli www.lukas-renggli.ch From estebanlm at gmail.com Tue Jan 3 18:17:38 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Tue, 3 Jan 2012 14:17:38 -0300 Subject: about some magritte changes I made... In-Reply-To: References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> Message-ID: El 03/01/2012, a las 2:11p.m., Lukas Renggli escribi?: > Hi Esteban, > > Great news! > >> I made some minor changes to magritte2, to accomplish a >> few things you pointed as desirable: > > Please send such mails to the list. > >> 1) replace #description with #magritteDescription > > Right, but that will break a lot of code. Especially with Pier, that > does a lot of fancy reflection on its structure and that is very hard > to fix (at least the last time I tried). What about doing that in a > second step? well... right now I just marked #description as deprecated, not that I removed it In fact... I wasn't talk about this because I wanted to test it in a real-life environment before. > >> 2) Create a pragma-based builder, using and pragmas > > Great. > > - Did you consider moving the descriptions to the instance-side, so > that we have the descriptions together with the accessors and that we > can have instance- and class-side descriptions? > > - Did you think about descriptions that get dynamically injected from the model? > > - Did you consider getting rid of the description cache and replacing > it with a description selector cache? So that we can get the > descriptions quickly but they are built dynamically in the context of > the object? > > - Did you think about the extensibility properties, i.e. with method > extensions: #descriptionFoo, #descriptionFooBarExt:, > #descriptionFooZorkExt:, ... he... no, but I will start think on that now :) > >> 3) a small fix to make Magritte-Morphic work on Pharo 1.4 (a change on multiselect lists) > > Just commit it, if it doesn't break Pharo 1.3. k, I will look... it shouldn't, but you never know :) > >> this is still not well tested (although all tests are green), but Nick wanted to start using it, so I wonder if there should be a new repository (magritte3, maybe, or "magritte2.1", whatever) to start working? >> >> what do you think, should I create it (in your repository)? > > Feel free to commit it to the current repository, if it doesn't break > any builds. Otherwise we might want to submit it somewhere else before > merging into the head. ok, I will, after I review some small issues. Esteban From sean at clipperadams.com Wed Jan 4 00:26:49 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Tue, 3 Jan 2012 15:26:49 -0800 (PST) Subject: [Magritte] Complex Models Message-ID: <1325633209935-4259124.post@n4.nabble.com> Has anyone successfully used Magritte on a complex model (e.g. aBook has anAuthor has nameString and birthDate) displayed with Morphic? I found numerous threads, but nothing conclusive, and mostly related to Seaside. This seems so fundamental to modeling I was surprised not to find any info. As a start, how does one specify a custom widget for a description? Thanks. Sean http://forum.world.st/describing-a-complex-data-types-with-Magritte-td117690.html#a117695 http://forum.world.st/validation-of-referenced-objects-td116286.html#a116288 http://forum.world.st/expanded-view-of-MAToOneRelationDescription-td95690.html http://forum.world.st/MAReport-status-td116298.html#a116299 -- View this message in context: http://forum.world.st/Magritte-Complex-Models-tp4259124p4259124.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From sean at clipperadams.com Wed Jan 4 02:55:23 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Tue, 3 Jan 2012 17:55:23 -0800 (PST) Subject: [Magritte] Complex Models In-Reply-To: <1325633209935-4259124.post@n4.nabble.com> References: <1325633209935-4259124.post@n4.nabble.com> Message-ID: <1325642123407-4259524.post@n4.nabble.com> Exploring around, I found that MAToOneRelationDescription inherits class>>#defaultMorphClasses from MAElementDescription, which returns an MATextMorph, so I thought about subclassing my own description or setting the default morph class property, but it seems that by the time the description is looking for a morph class, it may be too late, no? What I really want is to recursively embed the full editor for the related Author class in the form for the Book, but I'm not sure exactly where to hook in. #acceptMagritte: seemed like an obvious place, but everything seems already figured out by the time it's called - although maybe that's due to caching? Can caching be turned off to more easily see what's going on? Lukas, in one of the posts, you mentioned that you had some ideas on how to fix this. I'd like to have a conversation about that. Also, for the time being, I'd just like to know where I should hook in to manually display an editor for the author object. I also want to add auto-complete to some fields... Thanks. Sean -- View this message in context: http://forum.world.st/Magritte-Complex-Models-tp4259124p4259524.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From p3anoman at gmail.com Wed Jan 4 03:19:39 2012 From: p3anoman at gmail.com (John McKeon) Date: Tue, 3 Jan 2012 21:19:39 -0500 Subject: [Magritte] Complex Models In-Reply-To: <1325642123407-4259524.post@n4.nabble.com> References: <1325633209935-4259124.post@n4.nabble.com> <1325642123407-4259524.post@n4.nabble.com> Message-ID: Hi Sean, Send morphClass: to a description to make it use a custom MAMorph subclass. In the Seaside world you would send componentClass: to the description. For the 1-1 relation descriptions there are MAInternalEditorComponent and MAExternalEditorComponent (the defaults) but there are no equivalents in Magritte-Morphic. Hope that helps On Tue, Jan 3, 2012 at 8:55 PM, Sean P. DeNigris wrote: > Exploring around, I found that MAToOneRelationDescription inherits > class>>#defaultMorphClasses from MAElementDescription, which returns an > MATextMorph, so I thought about subclassing my own description or setting > the default morph class property, but it seems that by the time the > description is looking for a morph class, it may be too late, no? What I > really want is to recursively embed the full editor for the related Author > class in the form for the Book, but I'm not sure exactly where to hook in. > #acceptMagritte: seemed like an obvious place, but everything seems already > figured out by the time it's called - although maybe that's due to caching? > Can caching be turned off to more easily see what's going on? > > Lukas, in one of the posts, you mentioned that you had some ideas on how to > fix this. I'd like to have a conversation about that. > > Also, for the time being, I'd just like to know where I should hook in to > manually display an editor for the author object. I also want to add > auto-complete to some fields... > > Thanks. > Sean > > -- > View this message in context: > http://forum.world.st/Magritte-Complex-Models-tp4259124p4259524.html > Sent from the Magritte, Pier and Related Tools mailing list archive at > Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Wed Jan 4 07:27:06 2012 From: renggli at gmail.com (Lukas Renggli) Date: Wed, 4 Jan 2012 07:27:06 +0100 Subject: [Magritte] Complex Models In-Reply-To: <1325642123407-4259524.post@n4.nabble.com> References: <1325633209935-4259124.post@n4.nabble.com> <1325642123407-4259524.post@n4.nabble.com> Message-ID: As John writes, create custom Morph classes and set them using #morphClass:. MATextMorph is a nice default if there is nothing better, because all descriptions have a way to convert their model to a string. Compared to Magritte-Seaside there are a lot of views in Magritte-Morph missing, simply because Magritte-Morph never saw the use of Magritte-Seaside. Lukas On 4 January 2012 02:55, Sean P. DeNigris wrote: > Exploring around, I found that MAToOneRelationDescription inherits > class>>#defaultMorphClasses from MAElementDescription, which returns an > MATextMorph, so I thought about subclassing my own description or setting > the default morph class property, but it seems that by the time the > description is looking for a morph class, it may be too late, no? What I > really want is to recursively embed the full editor for the related Author > class in the form for the Book, but I'm not sure exactly where to hook in. > #acceptMagritte: seemed like an obvious place, but everything seems already > figured out by the time it's called - although maybe that's due to caching? > Can caching be turned off to more easily see what's going on? > > Lukas, in one of the posts, you mentioned that you had some ideas on how to > fix this. I'd like to have a conversation about that. > > Also, for the time being, I'd just like to know where I should hook in to > manually display an editor for the author object. I also want to add > auto-complete to some fields... > > Thanks. > Sean > > -- > View this message in context: http://forum.world.st/Magritte-Complex-Models-tp4259124p4259524.html > Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From yanni at rogers.com Wed Jan 4 18:41:01 2012 From: yanni at rogers.com (Yanni Chiu) Date: Wed, 04 Jan 2012 12:41:01 -0500 Subject: about some magritte changes I made... In-Reply-To: References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> Message-ID: On 03/01/12 12:17 PM, Esteban Lorenzano wrote: >> Feel free to commit it to the current repository, if it doesn't break >> any builds. Otherwise we might want to submit it somewhere else before >> merging into the head. > > ok, I will, after I review some small issues. Does this mean you intend to commit it to the Magritte2 repository? I do not build directly from the Magritte2 repository. I use local copies of whatever was the latest, whenever I choose to sync up. So it would be a long time before I see these changes in my build (unless I fork something off to test your changes). I would not want to track a work-in-progress with my regular build, because there would be too many variables (i.e. did I break something, or did something change in Magritte). IMHO, changing Magritte descriptions would warrant using some staging, instead of going directly to head. On the other hand, things often don't get used & tested until they appear in the head. Don't know what the right answer is, except that posting to this list about the changes is important. From estebanlm at gmail.com Wed Jan 4 20:38:22 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Wed, 4 Jan 2012 16:38:22 -0300 Subject: about some magritte changes I made... In-Reply-To: References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> Message-ID: <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> ok, as I't might cause some problems because of deprecation of #description (also, it will be even harder after moving descriptions to client side), I prefer to work on an alternative repository in the mean time... Problem now is that I can't create a repository for this (just admin has rights). I was trying to create something like "Magritte2Unstable"... Lukas could you create a repository for this? Thanks, Esteban El 04/01/2012, a las 2:41p.m., Yanni Chiu escribi?: > On 03/01/12 12:17 PM, Esteban Lorenzano wrote: >>> Feel free to commit it to the current repository, if it doesn't break >>> any builds. Otherwise we might want to submit it somewhere else before >>> merging into the head. >> >> ok, I will, after I review some small issues. > > Does this mean you intend to commit it to the Magritte2 repository? > > I do not build directly from the Magritte2 repository. I use local copies of whatever was the latest, whenever I choose to sync up. So it would be a long time before I see these changes in my build (unless I fork something off to test your changes). I would not want to track a work-in-progress with my regular build, because there would be too many variables (i.e. did I break something, or did something change in Magritte). > > IMHO, changing Magritte descriptions would warrant using some staging, instead of going directly to head. On the other hand, things often don't get used & tested until they appear in the head. Don't know what the right answer is, except that posting to this list about the changes is important. > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From renggli at gmail.com Wed Jan 4 21:28:29 2012 From: renggli at gmail.com (Lukas Renggli) Date: Wed, 4 Jan 2012 21:28:29 +0100 Subject: about some magritte changes I made... In-Reply-To: <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> Message-ID: I've created http://source.lukas-renggli.ch/magritte2unstable. If you want I can also setup a continuous build? Lukas On 4 January 2012 20:38, Esteban Lorenzano wrote: > ok, as I't might cause some problems because of deprecation of #description (also, it will be even harder after moving descriptions to client side), I prefer to work on an alternative repository in the mean time... > Problem now is that I can't create a repository for this (just admin has rights). I was trying to create something like "Magritte2Unstable"... Lukas could you create a repository for this? > > Thanks, > Esteban > > El 04/01/2012, a las 2:41p.m., Yanni Chiu escribi?: > >> On 03/01/12 12:17 PM, Esteban Lorenzano wrote: >>>> Feel free to commit it to the current repository, if it doesn't break >>>> any builds. Otherwise we might want to submit it somewhere else before >>>> merging into the head. >>> >>> ok, I will, after I review some small issues. >> >> Does this mean you intend to commit it to the Magritte2 repository? >> >> I do not build directly from the Magritte2 repository. I use local copies of whatever was the latest, whenever I choose to sync up. So it would be a long time before I see these changes in my build (unless I fork something off to test your changes). I would not want to track a work-in-progress with my regular build, because there would be too many variables (i.e. did I break something, or did something change in Magritte). >> >> IMHO, changing Magritte descriptions would warrant using some staging, instead of going directly to head. On the other hand, things often don't get used & tested until they appear in the head. Don't know what the right answer is, except that posting to this list about the changes is important. >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -- Lukas Renggli www.lukas-renggli.ch From estebanlm at gmail.com Thu Jan 5 00:05:46 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Wed, 4 Jan 2012 20:05:46 -0300 Subject: =?windows-1252?Q?=5BANN=5D_Magritte_2=2E1_with_pragma_support_?= =?windows-1252?Q?=5BWAS=3A_Re=3A_about_some_magritte_changes_I_m?= =?windows-1252?Q?ade=85=5D?= In-Reply-To: References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> Message-ID: <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> Hi, well, I want to announce the born of magritte2unstable project, where I will place some changes to magritte: - a pragma builder, and - #magritteDescription instead #description also, I will follow Lukas recommendations to enhance the framework. for now, there are just packages I'm changing, plus a ConfigurationOfMagritte2 who looks first in unstable repository. current development version is '2.1' there are 3 failures and 1 error in tests, related to a powerful capability I didn't even know it was there until I wrote the pragma builder: description extensions... I don't know how to tackle that with pragmas... best, Esteban From sean at clipperadams.com Thu Jan 5 01:36:07 2012 From: sean at clipperadams.com (Sean P. DeNigris) Date: Wed, 4 Jan 2012 16:36:07 -0800 (PST) Subject: =?UTF-8?Q?Re:_[ANN]_Magritte_2.1_with_pragma_support_[?= =?UTF-8?Q?WAS:_Re:_about_some_magritte_changes_I_made=E2=80=A6]?= In-Reply-To: <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> References: <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> Message-ID: <1325723767145-4263576.post@n4.nabble.com> While you're changing things, what do you think about: 1) change #asMorph to something like forMorphic (returns a presenter, not a Morph) 2) MAContainerMorph and friends -> MAMorphicContainer - these are not Morphs. I was actually astonished when I saw they did not inherit from Morph. Sean -- View this message in context: http://forum.world.st/Re-about-some-magritte-changes-I-made-tp4257658p4263576.html Sent from the Magritte, Pier and Related Tools mailing list archive at Nabble.com. From norbert at hartl.name Thu Jan 5 12:41:38 2012 From: norbert at hartl.name (Norbert Hartl) Date: Thu, 5 Jan 2012 12:41:38 +0100 Subject: =?windows-1252?Q?Re=3A_=5BANN=5D_Magritte_2=2E1_with_pragma_supp?= =?windows-1252?Q?ort_=5BWAS=3A_Re=3A_about_some_magritte_changes?= =?windows-1252?Q?_I_made=85=5D?= In-Reply-To: <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> Message-ID: Esteban, this is really great. A long awaited task you are tackling now. Do you plan to enable instance side descriptions as well? Norbert Am 05.01.2012 um 00:05 schrieb Esteban Lorenzano: > Hi, > > well, I want to announce the born of magritte2unstable project, where I will place some changes to magritte: > > - a pragma builder, and > - #magritteDescription instead #description > > also, I will follow Lukas recommendations to enhance the framework. > > for now, there are just packages I'm changing, plus a ConfigurationOfMagritte2 who looks first in unstable repository. > > current development version is '2.1' > > there are 3 failures and 1 error in tests, related to a powerful capability I didn't even know it was there until I wrote the pragma builder: description extensions... I don't know how to tackle that with pragmas... > > best, > Esteban > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From nick.ager at gmail.com Thu Jan 5 14:31:51 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 5 Jan 2012 13:31:51 +0000 Subject: FYI: background to Magritte with pragma support Message-ID: FYI ---------- Forwarded message ---------- From: Lukas Renggli Date: 17 November 2010 17:21 Subject: Re: Providing lookup environment for descriptions To: "Magritte, Pier and Related Tools ..." The way Magritte builds descriptions by default has become quite a nuisance. Of course you can always do your own thing as Yanni describes, but I think that at some point Magritte should be improved in that regard. I wrote a proposal this summer of want to proceed on that, but of course I had to finish my writing and never actually found the time to implement it: -------------------- I propose to perform the following (non-backward compatible) changes in the Magritte 2 code-base to resolve some major annoyances and issues that keep on reoccurring: - Move descriptions from class-side to instance-side. This resolves various issues such as cache-invalidation, instance specific descriptions, dynamic descriptions, context dependent descriptions, etc. Furthermore the descriptions will be closer to the code they describe and it will be possible to describe class- and instance-side of an object, not just the instance-side. - Rename the method #description as the default entry point into Magritte to #magritteDescription. This avoids common problems where the domain model already defines such a method. - Instead of using a naming convention for description methods, use a pragma called to annotate the methods. And to extend and change existing descriptions use . Finally all Smalltalk implementation reached a consensus of pragmas that can be safely used cross-platform. All in all the "new" Magritte would look like in the following example. Imagine a shop item with the accessor #place: Item>>place ^ place Item>>place: aString place := aString The meta-description is defined on the instance-side and annotated. It can refer to itself for the possible places: Item>>placeDescription ^ MASingleOptionDescription new options: self possiblePlaces; label: 'Place of Item'; accessor: #place; yourself Class extensions can modify a description using: Item>>placeDescriptionXmlStorage: aDescription ^ placeDescription xmlTag: 'xname' Since these changes are not backward compatible I'll try to provide automatic refactorings for most parts. Moving existing code to the new codebase will certainly cause some problems, but in the long run I believe this to be a much better approach than the current one. If people have any feedback, concerns or other changes that would be important in the same run I am happy to hear them. -------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Thu Jan 5 16:36:30 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 5 Jan 2012 15:36:30 +0000 Subject: Magritte with pragma support Message-ID: Lukas makes an excellent case for moving the Magritte descriptions to the instance-side - in his original email below. I'm happy to have a first pass at moving the descriptions to the instance-side and adding description extensions.... unless someone else has already dived-in with an implementation. If I hear nothing I'll make a start tomorrow... Nick ---------- Forwarded message ---------- > From: Lukas Renggli > Date: 17 November 2010 17:21 > Subject: Re: Providing lookup environment for descriptions > To: "Magritte, Pier and Related Tools ..." > > > The way Magritte builds descriptions by default has become quite a > nuisance. Of course you can always do your own thing as Yanni > describes, but I think that at some point Magritte should be improved > in that regard. I wrote a proposal this summer of want to proceed on > that, but of course I had to finish my writing and never actually > found the time to implement it: > > -------------------- > > I propose to perform the following (non-backward compatible) changes > in the Magritte 2 code-base to resolve some major annoyances and > issues that keep on reoccurring: > > - Move descriptions from class-side to instance-side. This resolves > various issues such as cache-invalidation, instance specific > descriptions, dynamic descriptions, context dependent descriptions, > etc. Furthermore the descriptions will be closer to the code they > describe and it will be possible to describe class- and instance-side > of an object, not just the instance-side. > > - Rename the method #description as the default entry point into > Magritte to #magritteDescription. This avoids common problems where > the domain model already defines such a method. > > - Instead of using a naming convention for description methods, use a > pragma called to annotate the methods. And to extend and > change existing descriptions use . Finally all > Smalltalk implementation reached a consensus of pragmas that can be > safely used cross-platform. > > All in all the "new" Magritte would look like in the following > example. Imagine a shop item with the accessor #place: > > Item>>place > ^ place > > Item>>place: aString > place := aString > > The meta-description is defined on the instance-side and annotated. It > can refer to itself for the possible places: > > Item>>placeDescription > > > ^ MASingleOptionDescription new > options: self possiblePlaces; > label: 'Place of Item'; > accessor: #place; > yourself > > Class extensions can modify a description using: > > Item>>placeDescriptionXmlStorage: aDescription > > > ^ placeDescription xmlTag: 'xname' > > Since these changes are not backward compatible I'll try to provide > automatic refactorings for most parts. Moving existing code to the new > codebase will certainly cause some problems, but in the long run I > believe this to be a much better approach than the current one. If > people have any feedback, concerns or other changes that would be > important in the same run I am happy to hear them. > > -------------------- > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From estebanlm at gmail.com Thu Jan 5 16:49:32 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Thu, 5 Jan 2012 12:49:32 -0300 Subject: =?windows-1252?Q?Re=3A_=5BANN=5D_Magritte_2=2E1_with_pragma_supp?= =?windows-1252?Q?ort_=5BWAS=3A_Re=3A_about_some_magritte_changes?= =?windows-1252?Q?_I_made=85=5D?= In-Reply-To: References: <9BB00A8E-2BD0-4595-98CF-71E9076C81ED@gmail.com> <1673F6E0-0B1C-4791-9B25-C25FC410E3D5@gmail.com> <1336BBD9-C717-4725-A418-DD75C3BEBF5A@gmail.com> Message-ID: <3D864401-311D-47CD-AD9C-63ACAB766B0E@gmail.com> Hi, it is planned... as far as I saw, is more or less trivial but I wanted to have 100% green tests before start next stage. If you want to try the change by yourself, please, go ahead :) El 05/01/2012, a las 8:41a.m., Norbert Hartl escribi?: > Esteban, > > this is really great. A long awaited task you are tackling now. Do you plan to enable instance side descriptions as well? > > Norbert > > Am 05.01.2012 um 00:05 schrieb Esteban Lorenzano: > >> Hi, >> >> well, I want to announce the born of magritte2unstable project, where I will place some changes to magritte: >> >> - a pragma builder, and >> - #magritteDescription instead #description >> >> also, I will follow Lukas recommendations to enhance the framework. >> >> for now, there are just packages I'm changing, plus a ConfigurationOfMagritte2 who looks first in unstable repository. >> >> current development version is '2.1' >> >> there are 3 failures and 1 error in tests, related to a powerful capability I didn't even know it was there until I wrote the pragma builder: description extensions... I don't know how to tackle that with pragmas... >> >> best, >> Esteban >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From estebanlm at gmail.com Thu Jan 5 16:50:23 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Thu, 5 Jan 2012 12:50:23 -0300 Subject: FYI: background to Magritte with pragma support In-Reply-To: References: Message-ID: Thanks NIck, now I know how to tackle the description extensions issue :) cheers, Esteban El 05/01/2012, a las 10:31a.m., Nick Ager escribi?: > FYI > > ---------- Forwarded message ---------- > From: Lukas Renggli > Date: 17 November 2010 17:21 > Subject: Re: Providing lookup environment for descriptions > To: "Magritte, Pier and Related Tools ..." > > > The way Magritte builds descriptions by default has become quite a > nuisance. Of course you can always do your own thing as Yanni > describes, but I think that at some point Magritte should be improved > in that regard. I wrote a proposal this summer of want to proceed on > that, but of course I had to finish my writing and never actually > found the time to implement it: > > -------------------- > > I propose to perform the following (non-backward compatible) changes > in the Magritte 2 code-base to resolve some major annoyances and > issues that keep on reoccurring: > > - Move descriptions from class-side to instance-side. This resolves > various issues such as cache-invalidation, instance specific > descriptions, dynamic descriptions, context dependent descriptions, > etc. Furthermore the descriptions will be closer to the code they > describe and it will be possible to describe class- and instance-side > of an object, not just the instance-side. > > - Rename the method #description as the default entry point into > Magritte to #magritteDescription. This avoids common problems where > the domain model already defines such a method. > > - Instead of using a naming convention for description methods, use a > pragma called to annotate the methods. And to extend and > change existing descriptions use . Finally all > Smalltalk implementation reached a consensus of pragmas that can be > safely used cross-platform. > > All in all the "new" Magritte would look like in the following > example. Imagine a shop item with the accessor #place: > > Item>>place > ^ place > > Item>>place: aString > place := aString > > The meta-description is defined on the instance-side and annotated. It > can refer to itself for the possible places: > > Item>>placeDescription > > > ^ MASingleOptionDescription new > options: self possiblePlaces; > label: 'Place of Item'; > accessor: #place; > yourself > > Class extensions can modify a description using: > > Item>>placeDescriptionXmlStorage: aDescription > > > ^ placeDescription xmlTag: 'xname' > > Since these changes are not backward compatible I'll try to provide > automatic refactorings for most parts. Moving existing code to the new > codebase will certainly cause some problems, but in the long run I > believe this to be a much better approach than the current one. If > people have any feedback, concerns or other changes that would be > important in the same run I am happy to hear them. > > -------------------- > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -------------- next part -------------- An HTML attachment was scrubbed... URL: From estebanlm at gmail.com Thu Jan 5 16:51:18 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Thu, 5 Jan 2012 12:51:18 -0300 Subject: Magritte with pragma support In-Reply-To: References: Message-ID: <341B5EE3-BCB0-4CC0-AA0F-A09C1263840F@gmail.com> hehe... that happens for answer mails before reading: please, go ahead :) best, Esteban El 05/01/2012, a las 12:36p.m., Nick Ager escribi?: > Lukas makes an excellent case for moving the Magritte descriptions to the instance-side - in his original email below. > > I'm happy to have a first pass at moving the descriptions to the instance-side and adding description extensions.... unless someone else has already dived-in with an implementation. > > If I hear nothing I'll make a start tomorrow... > > Nick > > ---------- Forwarded message ---------- > From: Lukas Renggli > Date: 17 November 2010 17:21 > Subject: Re: Providing lookup environment for descriptions > To: "Magritte, Pier and Related Tools ..." > > > The way Magritte builds descriptions by default has become quite a > nuisance. Of course you can always do your own thing as Yanni > describes, but I think that at some point Magritte should be improved > in that regard. I wrote a proposal this summer of want to proceed on > that, but of course I had to finish my writing and never actually > found the time to implement it: > > -------------------- > > I propose to perform the following (non-backward compatible) changes > in the Magritte 2 code-base to resolve some major annoyances and > issues that keep on reoccurring: > > - Move descriptions from class-side to instance-side. This resolves > various issues such as cache-invalidation, instance specific > descriptions, dynamic descriptions, context dependent descriptions, > etc. Furthermore the descriptions will be closer to the code they > describe and it will be possible to describe class- and instance-side > of an object, not just the instance-side. > > - Rename the method #description as the default entry point into > Magritte to #magritteDescription. This avoids common problems where > the domain model already defines such a method. > > - Instead of using a naming convention for description methods, use a > pragma called to annotate the methods. And to extend and > change existing descriptions use . Finally all > Smalltalk implementation reached a consensus of pragmas that can be > safely used cross-platform. > > All in all the "new" Magritte would look like in the following > example. Imagine a shop item with the accessor #place: > > Item>>place > ^ place > > Item>>place: aString > place := aString > > The meta-description is defined on the instance-side and annotated. It > can refer to itself for the possible places: > > Item>>placeDescription > > > ^ MASingleOptionDescription new > options: self possiblePlaces; > label: 'Place of Item'; > accessor: #place; > yourself > > Class extensions can modify a description using: > > Item>>placeDescriptionXmlStorage: aDescription > > > ^ placeDescription xmlTag: 'xname' > > Since these changes are not backward compatible I'll try to provide > automatic refactorings for most parts. Moving existing code to the new > codebase will certainly cause some problems, but in the long run I > believe this to be a much better approach than the current one. If > people have any feedback, concerns or other changes that would be > important in the same run I am happy to hear them. > > -------------------- > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Thu Jan 12 22:31:34 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 12 Jan 2012 21:31:34 +0000 Subject: Magritte with Pragma support update Message-ID: Hi, I've built on Esteban's pragma work and all tests are again green - that is the Magritte container and description extensions now work. The code is in: http://source.lukas-renggli.ch/magritte2unstable If you want to try it out you'll have to ensure MAPragmaBuilder is used by resetting the builder: MADescriptionBuilder default: nil. Currently the code is backwards compatible. The next step appears to be to break backwards compatibility and move the descriptions to the instance side. Lukas mentioned that it might be possible to automate this breaking change with an automated refactoring. I've had a quick look at some of the existing refactorings and will need some support to build a reliable refactoring, which should perform the following: 1) Add , , for respectively descriptions, descriptions extensions and description containers. 2) Move the descriptions to the instance-side Perhaps more contentiously it could also: 3) put descriptions in category "magritte" or "magritte-descriptions" or "meta-descriptions" rather than just "descriptions" 4) rename descriptions from: #descriptionPlace to #placeDescription. Once descriptions are on the instance-side Magritte will require a little more refactoring... Then Pier will need to be migrated... Any thoughts on the above or pointers on how to tackle the automated the refactoring? Thanks Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Thu Jan 12 23:24:17 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 12 Jan 2012 22:24:17 +0000 Subject: Magritte with Pragma support update In-Reply-To: References: Message-ID: I've created a package to contain the refactorings: 'Magritte-Tools' in http://source.lukas-renggli.ch/magritte2unstable contain an initial attempt at description refactoring MAMoveDescriptionsToInstanceRefactoring On 12 January 2012 21:31, Nick Ager wrote: > Hi, > > I've built on Esteban's pragma work and all tests are again green - that > is the Magritte container and description extensions now work. > > The code is in: > http://source.lukas-renggli.ch/magritte2unstable > > If you want to try it out you'll have to ensure MAPragmaBuilder is used by > resetting the builder: > > MADescriptionBuilder default: nil. > > Currently the code is backwards compatible. > > The next step appears to be to break backwards compatibility and move the > descriptions to the instance side. > > Lukas mentioned that it might be possible to automate this breaking change > with an automated refactoring. I've had a quick look at some of the > existing refactorings and will need some support to build a reliable > refactoring, which should perform the following: > > 1) Add , , > for respectively descriptions, descriptions extensions and description > containers. > 2) Move the descriptions to the instance-side > > Perhaps more contentiously it could also: > > 3) put descriptions in category "magritte" or "magritte-descriptions" or > "meta-descriptions" rather than just "descriptions" > 4) rename descriptions from: #descriptionPlace to #placeDescription. > > Once descriptions are on the instance-side Magritte will require a little > more refactoring... Then Pier will need to be migrated... > > Any thoughts on the above or pointers on how to tackle the automated the > refactoring? > > Thanks > > Nick > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Sat Jan 14 22:35:07 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 14 Jan 2012 16:35:07 -0500 Subject: pier admin - adding to existing pier site In-Reply-To: References: Message-ID: sorry for the late delay.. i did something really stupid.. i forgot the password to my original pier instance! lame, i know.. i had to do a little digging.. but i figured out how to change it.. anyway.. i got it changed, i changed my kernel to the original kernel, and everything seems to be working just fine.. will make more changes to my kernel, and see what happens.. thanks for the heads up! On Tue, Jan 3, 2012 at 4:54 AM, Nick Ager wrote: > Hi Sergio, > >> >> i was wondering if it was possible to install pier admin on an >> existing pier site.. > > > It should work but I haven't tested it on an extensive range of pre-existing > Pier kernels. > Questions: > 1) When you load pier-admin into your existing Pier installation does you > Pier site continue to work correctly, that is the site without the > pier-admin wrapper? > 2) If the answer to 1) is yes then it should just be a matter of editing > /config for pier-admin and defining the kernel, admin user and password. > 3) If the answer to 1) is no, then one way to proceed would be to export > your existing kernel. Install a fresh version of Pier, pier-admin etc and > import your old kernel. > > Hope this helps, and let us know how you get along > > Nick > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From renggli at gmail.com Sun Jan 15 10:56:48 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 15 Jan 2012 10:56:48 +0100 Subject: Magritte with Pragma support update In-Reply-To: References: Message-ID: Hi Nick, Looks cool! > 1) Add , , > for?respectively descriptions, descriptions extensions and description > containers. I don't like the name of the pragma. Maybe better call it ? Not sure if there was the possibility to extend the container in the previous implementation? > 3) put descriptions in category "magritte" or "magritte-descriptions" or > "meta-descriptions" rather than just "descriptions" I guess you could have it together with the accessors. So in the browser you have everything together: #name #name: #nameDescription Otherwise I would put them into a protocol like #'accessing-descriptions' or #'accessing-magritte'. Lukas > 4) rename descriptions from: #descriptionPlace to #placeDescription. > > Once descriptions are on the instance-side Magritte will require a little > more refactoring... Then Pier will need to be migrated... > > Any thoughts on the above or pointers on how to tackle the automated the > refactoring? > > Thanks > > Nick > > > > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From norbert at hartl.name Sun Jan 15 11:54:41 2012 From: norbert at hartl.name (Norbert Hartl) Date: Sun, 15 Jan 2012 11:54:41 +0100 Subject: Magritte with Pragma support update In-Reply-To: References: Message-ID: <7C079FB5-F6B6-4C66-B438-A9716414DCE2@hartl.name> Am 15.01.2012 um 10:56 schrieb Lukas Renggli: > Hi Nick, > > Looks cool! > >> 1) Add , , >> for respectively descriptions, descriptions extensions and description >> containers. > > I don't like the name of the pragma. Maybe better call it ? > +1 > Not sure if there was the possibility to extend the container in the > previous implementation? > I think until two weeks ago you were the only one that knew an extension mechanism exists. So if you don't know who else? :) Norbert >> 3) put descriptions in category "magritte" or "magritte-descriptions" or >> "meta-descriptions" rather than just "descriptions" > > I guess you could have it together with the accessors. So in the > browser you have everything together: > > #name > #name: > #nameDescription > > Otherwise I would put them into a protocol like > #'accessing-descriptions' or #'accessing-magritte'. > > Lukas > >> 4) rename descriptions from: #descriptionPlace to #placeDescription. >> >> Once descriptions are on the instance-side Magritte will require a little >> more refactoring... Then Pier will need to be migrated... >> >> Any thoughts on the above or pointers on how to tackle the automated the >> refactoring? >> >> Thanks >> >> Nick >> >> >> >> >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki From sergiolist at village-buzz.com Mon Jan 16 03:49:21 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 15 Jan 2012 21:49:21 -0500 Subject: new pier deployment: i broke it in the process Message-ID: somehow, i broke my pier image in the process of deployment.. i am not sure where it broke, but at some point, it stopped rendering correctly. at first, i thought it was just the deployed image, but now, running it locally, it's broke here, too.. i am sure that someone can take one look at it and let me know what it did. can someone take a look at: www.toaplacebehindthesun.com and let me know if anyone has any ideas? thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From renggli at gmail.com Mon Jan 16 07:18:11 2012 From: renggli at gmail.com (Lukas Renggli) Date: Mon, 16 Jan 2012 07:18:11 +0100 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: Looks like you have a character in your model that is not valid in the selected server encoding (for example it cannot be represented) or that is not correctly processed (due to a bug) by the selected encoder of your Smalltalk system. To fix you can navigate to the page using the 'Browse' view or use an inspector to clean up the document. Lukas On 16 January 2012 03:49, sergio_101 wrote: > somehow, i broke my pier image in the process of deployment.. i am not > sure where it broke, but at some point, it stopped rendering > correctly. at first, i thought it was just the deployed image, but > now, running it locally, it's broke here, too.. > > i am sure that someone can take one look at it and let me know what it did. > > can someone take a look at: > > www.toaplacebehindthesun.com > > and let me know if anyone has any ideas? > > thanks! > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From nick.ager at gmail.com Mon Jan 16 11:31:22 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 16 Jan 2012 10:31:22 +0000 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: or make sure you are using UTF-8 encoding On 16 January 2012 06:18, Lukas Renggli wrote: > Looks like you have a character in your model that is not valid in the > selected server encoding (for example it cannot be represented) or > that is not correctly processed (due to a bug) by the selected encoder > of your Smalltalk system. > > To fix you can navigate to the page using the 'Browse' view or use an > inspector to clean up the document. > > Lukas > > On 16 January 2012 03:49, sergio_101 wrote: > > somehow, i broke my pier image in the process of deployment.. i am not > > sure where it broke, but at some point, it stopped rendering > > correctly. at first, i thought it was just the deployed image, but > > now, running it locally, it's broke here, too.. > > > > i am sure that someone can take one look at it and let me know what it > did. > > > > can someone take a look at: > > > > www.toaplacebehindthesun.com > > > > and let me know if anyone has any ideas? > > > > thanks! > > > > -- > > ---- > > peace, > > sergio > > photographer, journalist, visionary > > > > http://www.CodingForHire.com > > http://www.coffee-black.com > > http://www.painlessfrugality.com > > http://www.twitter.com/sergio_101 > > http://www.facebook.com/sergio101 > > _______________________________________________ > > Magritte, Pier and Related Tools ... > > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Mon Jan 16 11:34:52 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 16 Jan 2012 10:34:52 +0000 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: make sure you are using UTF-8 encoding in your Server Adaptor (right-click on the server adaptor in the Seaside Control panel and click on 'Encoding...') On 16 January 2012 10:31, Nick Ager wrote: > or make sure you are using UTF-8 encoding > > > On 16 January 2012 06:18, Lukas Renggli wrote: > >> Looks like you have a character in your model that is not valid in the >> selected server encoding (for example it cannot be represented) or >> that is not correctly processed (due to a bug) by the selected encoder >> of your Smalltalk system. >> >> To fix you can navigate to the page using the 'Browse' view or use an >> inspector to clean up the document. >> >> Lukas >> >> On 16 January 2012 03:49, sergio_101 wrote: >> > somehow, i broke my pier image in the process of deployment.. i am not >> > sure where it broke, but at some point, it stopped rendering >> > correctly. at first, i thought it was just the deployed image, but >> > now, running it locally, it's broke here, too.. >> > >> > i am sure that someone can take one look at it and let me know what it >> did. >> > >> > can someone take a look at: >> > >> > www.toaplacebehindthesun.com >> > >> > and let me know if anyone has any ideas? >> > >> > thanks! >> > >> > -- >> > ---- >> > peace, >> > sergio >> > photographer, journalist, visionary >> > >> > http://www.CodingForHire.com >> > http://www.coffee-black.com >> > http://www.painlessfrugality.com >> > http://www.twitter.com/sergio_101 >> > http://www.facebook.com/sergio101 >> > _______________________________________________ >> > Magritte, Pier and Related Tools ... >> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Tue Jan 17 02:45:43 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 16 Jan 2012 20:45:43 -0500 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: bonus, everyone! it was indeed utf-8! i had to switch ports (this is the third pier image running on this server)... some quick background.. my sister in law wrote a book.. i told her i would help her publish it online.. a chapter a week.. then, publish to kindle.. just to see how it all goes.. of course, i am using pier to set it all up.. On Mon, Jan 16, 2012 at 5:34 AM, Nick Ager wrote: > make sure you are using UTF-8 encoding in your Server Adaptor (right-click > on the server adaptor in the Seaside Control panel and click on > 'Encoding...') > > On 16 January 2012 10:31, Nick Ager wrote: >> >> or make sure you are using UTF-8 encoding >> >> >> On 16 January 2012 06:18, Lukas Renggli wrote: >>> >>> Looks like you have a character in your model that is not valid in the >>> selected server encoding (for example it cannot be represented) or >>> that is not correctly processed (due to a bug) by the selected encoder >>> of your Smalltalk system. >>> >>> To fix you can navigate to the page using the 'Browse' view or use an >>> inspector to clean up the document. >>> >>> Lukas >>> >>> On 16 January 2012 03:49, sergio_101 wrote: >>> > somehow, i broke my pier image in the process of deployment.. i am not >>> > sure where it broke, but at some point, it stopped rendering >>> > correctly. at first, i thought it was just the deployed image, but >>> > now, running it locally, it's broke here, too.. >>> > >>> > i am sure that someone can take one look at it and let me know what it >>> > did. >>> > >>> > can someone take a look at: >>> > >>> > www.toaplacebehindthesun.com >>> > >>> > and let me know if anyone has any ideas? >>> > >>> > thanks! >>> > >>> > -- >>> > ---- >>> > peace, >>> > sergio >>> > photographer, journalist, visionary >>> > >>> > http://www.CodingForHire.com >>> > http://www.coffee-black.com >>> > http://www.painlessfrugality.com >>> > http://www.twitter.com/sergio_101 >>> > http://www.facebook.com/sergio101 >>> > _______________________________________________ >>> > Magritte, Pier and Related Tools ... >>> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>> >>> >>> >>> -- >>> Lukas Renggli >>> www.lukas-renggli.ch >>> _______________________________________________ >>> Magritte, Pier and Related Tools ... >>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Tue Jan 17 05:08:37 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 16 Jan 2012 23:08:37 -0500 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: okay, now i have a new issue.. i can't log in.. the login seems to want to point to /pier/ for instance, if i go to: http://www.toaplacebehindthesun.com/blog/ and hit login.. it is looking for /pier/blog/ any ideas? thanks! On Mon, Jan 16, 2012 at 8:45 PM, sergio_101 wrote: > bonus, everyone! it was indeed utf-8! > > i had to switch ports (this is the third pier image running on this server)... > > some quick background.. > > my sister in law wrote a book.. i told her i would help her publish it > online.. a chapter a week.. then, publish to kindle.. > > just to see how it all goes.. > > of course, i am using pier to set it all up.. > > On Mon, Jan 16, 2012 at 5:34 AM, Nick Ager wrote: >> make sure you are using UTF-8 encoding in your Server Adaptor (right-click >> on the server adaptor in the Seaside Control panel and click on >> 'Encoding...') >> >> On 16 January 2012 10:31, Nick Ager wrote: >>> >>> or make sure you are using UTF-8 encoding >>> >>> >>> On 16 January 2012 06:18, Lukas Renggli wrote: >>>> >>>> Looks like you have a character in your model that is not valid in the >>>> selected server encoding (for example it cannot be represented) or >>>> that is not correctly processed (due to a bug) by the selected encoder >>>> of your Smalltalk system. >>>> >>>> To fix you can navigate to the page using the 'Browse' view or use an >>>> inspector to clean up the document. >>>> >>>> Lukas >>>> >>>> On 16 January 2012 03:49, sergio_101 wrote: >>>> > somehow, i broke my pier image in the process of deployment.. i am not >>>> > sure where it broke, but at some point, it stopped rendering >>>> > correctly. at first, i thought it was just the deployed image, but >>>> > now, running it locally, it's broke here, too.. >>>> > >>>> > i am sure that someone can take one look at it and let me know what it >>>> > did. >>>> > >>>> > can someone take a look at: >>>> > >>>> > www.toaplacebehindthesun.com >>>> > >>>> > and let me know if anyone has any ideas? >>>> > >>>> > thanks! >>>> > >>>> > -- >>>> > ---- >>>> > peace, >>>> > sergio >>>> > photographer, journalist, visionary >>>> > >>>> > http://www.CodingForHire.com >>>> > http://www.coffee-black.com >>>> > http://www.painlessfrugality.com >>>> > http://www.twitter.com/sergio_101 >>>> > http://www.facebook.com/sergio101 >>>> > _______________________________________________ >>>> > Magritte, Pier and Related Tools ... >>>> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>> >>>> >>>> >>>> -- >>>> Lukas Renggli >>>> www.lukas-renggli.ch >>>> _______________________________________________ >>>> Magritte, Pier and Related Tools ... >>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>> >>> >> >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Tue Jan 17 05:17:26 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 16 Jan 2012 23:17:26 -0500 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: hmm.. okay.. now, the css isn't working correctly.. On Mon, Jan 16, 2012 at 11:08 PM, sergio_101 wrote: > okay, now i have a new issue.. > > i can't log in.. > > the login seems to want to point to /pier/ > > for instance, if i go to: > > http://www.toaplacebehindthesun.com/blog/ > > and hit login.. > > it is looking for /pier/blog/ > > any ideas? > > thanks! > > On Mon, Jan 16, 2012 at 8:45 PM, sergio_101 wrote: >> bonus, everyone! it was indeed utf-8! >> >> i had to switch ports (this is the third pier image running on this server)... >> >> some quick background.. >> >> my sister in law wrote a book.. i told her i would help her publish it >> online.. a chapter a week.. then, publish to kindle.. >> >> just to see how it all goes.. >> >> of course, i am using pier to set it all up.. >> >> On Mon, Jan 16, 2012 at 5:34 AM, Nick Ager wrote: >>> make sure you are using UTF-8 encoding in your Server Adaptor (right-click >>> on the server adaptor in the Seaside Control panel and click on >>> 'Encoding...') >>> >>> On 16 January 2012 10:31, Nick Ager wrote: >>>> >>>> or make sure you are using UTF-8 encoding >>>> >>>> >>>> On 16 January 2012 06:18, Lukas Renggli wrote: >>>>> >>>>> Looks like you have a character in your model that is not valid in the >>>>> selected server encoding (for example it cannot be represented) or >>>>> that is not correctly processed (due to a bug) by the selected encoder >>>>> of your Smalltalk system. >>>>> >>>>> To fix you can navigate to the page using the 'Browse' view or use an >>>>> inspector to clean up the document. >>>>> >>>>> Lukas >>>>> >>>>> On 16 January 2012 03:49, sergio_101 wrote: >>>>> > somehow, i broke my pier image in the process of deployment.. i am not >>>>> > sure where it broke, but at some point, it stopped rendering >>>>> > correctly. at first, i thought it was just the deployed image, but >>>>> > now, running it locally, it's broke here, too.. >>>>> > >>>>> > i am sure that someone can take one look at it and let me know what it >>>>> > did. >>>>> > >>>>> > can someone take a look at: >>>>> > >>>>> > www.toaplacebehindthesun.com >>>>> > >>>>> > and let me know if anyone has any ideas? >>>>> > >>>>> > thanks! >>>>> > >>>>> > -- >>>>> > ---- >>>>> > peace, >>>>> > sergio >>>>> > photographer, journalist, visionary >>>>> > >>>>> > http://www.CodingForHire.com >>>>> > http://www.coffee-black.com >>>>> > http://www.painlessfrugality.com >>>>> > http://www.twitter.com/sergio_101 >>>>> > http://www.facebook.com/sergio101 >>>>> > _______________________________________________ >>>>> > Magritte, Pier and Related Tools ... >>>>> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>>> >>>>> >>>>> >>>>> -- >>>>> Lukas Renggli >>>>> www.lukas-renggli.ch >>>>> _______________________________________________ >>>>> Magritte, Pier and Related Tools ... >>>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>> >>>> >>> >>> >>> _______________________________________________ >>> Magritte, Pier and Related Tools ... >>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Tue Jan 17 05:17:59 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 16 Jan 2012 23:17:59 -0500 Subject: new pier deployment: i broke it in the process In-Reply-To: References: Message-ID: oh! and if you click on /about, which accesses the filesystem, the image crashes.. On Mon, Jan 16, 2012 at 11:17 PM, sergio_101 wrote: > hmm.. okay.. now, the css isn't working correctly.. > > On Mon, Jan 16, 2012 at 11:08 PM, sergio_101 > wrote: >> okay, now i have a new issue.. >> >> i can't log in.. >> >> the login seems to want to point to /pier/ >> >> for instance, if i go to: >> >> http://www.toaplacebehindthesun.com/blog/ >> >> and hit login.. >> >> it is looking for /pier/blog/ >> >> any ideas? >> >> thanks! >> >> On Mon, Jan 16, 2012 at 8:45 PM, sergio_101 wrote: >>> bonus, everyone! it was indeed utf-8! >>> >>> i had to switch ports (this is the third pier image running on this server)... >>> >>> some quick background.. >>> >>> my sister in law wrote a book.. i told her i would help her publish it >>> online.. a chapter a week.. then, publish to kindle.. >>> >>> just to see how it all goes.. >>> >>> of course, i am using pier to set it all up.. >>> >>> On Mon, Jan 16, 2012 at 5:34 AM, Nick Ager wrote: >>>> make sure you are using UTF-8 encoding in your Server Adaptor (right-click >>>> on the server adaptor in the Seaside Control panel and click on >>>> 'Encoding...') >>>> >>>> On 16 January 2012 10:31, Nick Ager wrote: >>>>> >>>>> or make sure you are using UTF-8 encoding >>>>> >>>>> >>>>> On 16 January 2012 06:18, Lukas Renggli wrote: >>>>>> >>>>>> Looks like you have a character in your model that is not valid in the >>>>>> selected server encoding (for example it cannot be represented) or >>>>>> that is not correctly processed (due to a bug) by the selected encoder >>>>>> of your Smalltalk system. >>>>>> >>>>>> To fix you can navigate to the page using the 'Browse' view or use an >>>>>> inspector to clean up the document. >>>>>> >>>>>> Lukas >>>>>> >>>>>> On 16 January 2012 03:49, sergio_101 wrote: >>>>>> > somehow, i broke my pier image in the process of deployment.. i am not >>>>>> > sure where it broke, but at some point, it stopped rendering >>>>>> > correctly. at first, i thought it was just the deployed image, but >>>>>> > now, running it locally, it's broke here, too.. >>>>>> > >>>>>> > i am sure that someone can take one look at it and let me know what it >>>>>> > did. >>>>>> > >>>>>> > can someone take a look at: >>>>>> > >>>>>> > www.toaplacebehindthesun.com >>>>>> > >>>>>> > and let me know if anyone has any ideas? >>>>>> > >>>>>> > thanks! >>>>>> > >>>>>> > -- >>>>>> > ---- >>>>>> > peace, >>>>>> > sergio >>>>>> > photographer, journalist, visionary >>>>>> > >>>>>> > http://www.CodingForHire.com >>>>>> > http://www.coffee-black.com >>>>>> > http://www.painlessfrugality.com >>>>>> > http://www.twitter.com/sergio_101 >>>>>> > http://www.facebook.com/sergio101 >>>>>> > _______________________________________________ >>>>>> > Magritte, Pier and Related Tools ... >>>>>> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Lukas Renggli >>>>>> www.lukas-renggli.ch >>>>>> _______________________________________________ >>>>>> Magritte, Pier and Related Tools ... >>>>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>>> >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Magritte, Pier and Related Tools ... >>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>> >>> >>> >>> -- >>> ---- >>> peace, >>> sergio >>> photographer, journalist, visionary >>> >>> http://www.CodingForHire.com >>> http://www.coffee-black.com >>> http://www.painlessfrugality.com >>> http://www.twitter.com/sergio_101 >>> http://www.facebook.com/sergio101 >> >> >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From btc at openInWorld.com Tue Jan 17 16:57:01 2012 From: btc at openInWorld.com (Ben Coman) Date: Tue, 17 Jan 2012 23:57:01 +0800 Subject: Magritte - representing multiple relationships between two classes Message-ID: <4F159A4D.2080704@openInWorld.com> I am just about to dip my toe into trying out Magritte to implement a UML model and would like to clarify how bidirection relationships work. Section 2.6.1 of [1] says... "A relationship is always de?ned from the described object to the referenced object. To describe a two-way relationship the developer has to de?ne a relationship description at both ends of the association." I haven't seen a specific Magritte example of that, but I assume it is similar to the Phosyden example [2] > personEntity hasOne: #Pet as: #myPet. > petEntity hasOne: #Person as: #owner. That makes sense where there is only a single relation between two classes. However where there are two relations between two classes as shown in attached image, how are relations (1a,1b) paired together and (2a,2b) pair together. Or would this pairing generally be of no consequence? I would naively assume these four definitions... 1a. topologicalNodeEntity hasOne: #TopologicalIsland as: #topologicalIsland. 1b. topologicalIslandEntity hasMany: #TopologicalNode as: #topologicalNodes. 2a. topologicalNodeEntity hasOne: #TopologicalIsland as: #angleRefTopologicalIsland. 2b. topologicalIslandEntity hasOne: #TopologicalNode as: #angleRefTopologicalNode. cheers, Ben [1] http://www.iam.unibe.ch/~scg/Archive/Diploma/Reng06a.pdf [2] http://dbxtalk.smallworks.com.ar/pier/Documentation/mission-4_-about-relations -------------- next part -------------- A non-text attachment was scrubbed... Name: Magritte multiple relationships between two classes (2).png Type: image/png Size: 12471 bytes Desc: not available URL: From renggli at gmail.com Tue Jan 17 17:35:04 2012 From: renggli at gmail.com (Lukas Renggli) Date: Tue, 17 Jan 2012 17:35:04 +0100 Subject: Magritte - representing multiple relationships between two classes In-Reply-To: <4F159A4D.2080704@openInWorld.com> References: <4F159A4D.2080704@openInWorld.com> Message-ID: Hi Ben, Magritte does not model UML. For that you probably better look at FAME (http://scg.unibe.ch/wiki/projects/fame/fm3) that provides an EMOF-like model. Magritte does not support bidirectional relationships, although one could probably add support for that. Cheers, Lukas On 17 January 2012 16:57, Ben Coman wrote: > I am just about to dip my toe into trying out Magritte to implement a UML > model and would like to clarify how bidirection relationships work. > > Section 2.6.1 of [1] says... "A relationship is always de?ned from the > described object to the referenced object. > To describe a two-way relationship the developer has to de?ne a relationship > description at both ends of the association." > I haven't seen a specific Magritte example of that, but I assume it is > similar to the Phosyden example [2] > >> personEntity hasOne: #Pet as: #myPet. >> petEntity hasOne: #Person as: #owner. > > > That makes sense where there is only a single relation between two classes. > However where there are two relations between two classes as shown in > attached image, how are relations (1a,1b) paired together and (2a,2b) pair > together. Or would this pairing generally be of no consequence? > > I would naively assume these four definitions... > 1a. topologicalNodeEntity hasOne: #TopologicalIsland as: #topologicalIsland. > 1b. topologicalIslandEntity hasMany: #TopologicalNode as: #topologicalNodes. > 2a. topologicalNodeEntity hasOne: #TopologicalIsland as: > #angleRefTopologicalIsland. > 2b. topologicalIslandEntity hasOne: #TopologicalNode as: > #angleRefTopologicalNode. > > cheers, Ben > > [1] http://www.iam.unibe.ch/~scg/Archive/Diploma/Reng06a.pdf > [2] > http://dbxtalk.smallworks.com.ar/pier/Documentation/mission-4_-about-relations > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From btc at openInWorld.com Tue Jan 17 17:46:22 2012 From: btc at openInWorld.com (Ben Coman) Date: Wed, 18 Jan 2012 00:46:22 +0800 Subject: ConfigurationOfMagritteAddOns2 missing dependency JSJsonParser Message-ID: <4F15A5DE.3060002@openInWorld.com> In a fresh Pharo-1.3-13315 image, from Monticello Broswer I loaded ... ConfigurationOfMagritte2-NickAger.34 from 'http://source.lukas-renggli.ch/magritte2' ConfigurationOfMagritteAddOns2-NickAger.7 from 'http://source.lukas-renggli.ch/magritte2addons' then executed each of ... ConfigurationOfMagritte2 project stableVersion load. ConfigurationOfMagritteAddOns2 load. with the second producing the following dependency error... This package depends on the following classes: WAObject JSJsonParser You must resolve these dependencies before you will be able to load these definitions: MJJsonParser MJJsonParser classSide>>onStream:description: MJJsonParser classSide>>parse:using: MJJsonParser>>addProperty:to: MJJsonParser>>createObject MJJsonParser>>descriptionFor:of: MJJsonParser>>initializeOnStream:description: MJJsonParser>>parseProperty MJJsonParser>>pushDescription:during: MJObject MJObject classSide>>descriptionContainer I have resolved this loading ConfigurationOfSeaside30-dkh.352 and then executing... ConfigurationOfSeaside30 load cheers, Ben From nick.ager at gmail.com Tue Jan 17 18:01:57 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:01:57 +0000 Subject: Magritte with Pragma support update #2 Message-ID: Highlights: * Magritte descriptions now work on the instance side * /magritte/editor works with instance side descriptions * Refactoring support to move descriptions to instance side Details: * All code is in the repository: http://source.lukas-renggli.ch/magritte2unstable * Taking feedback from previous mail pragmas are now named: <* magritteDescription*>, <*magritteDescription:* #extensionMethod>, respectively for descriptions, descriptions extensions and description containers (description containers extensions do exist, they use the same pragma but take the container as a parameter). * All tests are green, and the /magritte/editor works. * The refactoring supports works at the method, class and class-category/package level. It adds the appropriate pragma for descriptions, description extensions and container descriptions. The methods keep the same category (this is to avoid package extensions methods inadvertantly being reclassified). I attempted renaming #descriptionAddress to #addressDescription but it complicated description extensions so I decided to keep things simple. The refactoring support can be loaded from Magritte-Tools. Before you try the refactoring, read the caveats below. Caveats: * I've ported but haven't tested the Morphic bindings. Be great if someone who knows the Morphic bindings can test. * The refactoring will not add 'class' for class-side selectors. For example the following description: > descriptionGroup > ^ MAStringDescription new > accessor: #group; > default: self defaultGroup; > label: 'Group'; > priority: 105; > yourself will be refactored to: descriptionGroup > > ^ MAStringDescription new > accessor: #group; > default: self defaultGroup; > label: 'Group'; > priority: 105; > yourself However you'll have to manually add a 'class' to 'self defaultGroup' to make it 'self class defaultGroup' .... unless someone knows how to fix this?... * all instance side #description & #description: selectors within MADescription and MAMemento hierarchy have been renamed to #magritteDescription & #magritteDescription: respectively. I've tried to catch all senders of #description and change them to #magritteDescription. However instance creation methods have kept their original naming for example MAMemento class>>model:description: Next Steps: Attempt to refactor Pier and fix bugs based on feedback.... over to you.... Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Tue Jan 17 18:09:51 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:09:51 +0000 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: If you want to try it out you'll have to ensure MAPragmaBuilder is used by resetting the builder: MADescriptionBuilder default: nil. [ once you've loaded the code from: http://source.lukas-renggli.ch/magritte2unstable ] -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Tue Jan 17 18:13:12 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:13:12 +0000 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: See attached screen grabs showing how to access the refactoring support at a method, class and package level. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: magritteMethodRefactoring.png Type: image/png Size: 64203 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: MagritteClassRefactoring.png Type: image/png Size: 61917 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen shot 2011-05-27 at 14.02.52.png Type: image/png Size: 107856 bytes Desc: not available URL: From nick.ager at gmail.com Tue Jan 17 18:16:31 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:16:31 +0000 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: Opps package refactoring attached On 17 January 2012 17:13, Nick Ager wrote: > See attached screen grabs showing how to access the refactoring support at > a method, class and package level. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: MagrittePackageRefactoring.png Type: image/png Size: 65396 bytes Desc: not available URL: From renggli at gmail.com Tue Jan 17 18:18:53 2012 From: renggli at gmail.com (Lukas Renggli) Date: Tue, 17 Jan 2012 18:18:53 +0100 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: On 17 January 2012 18:01, Nick Ager wrote: > Highlights: > ? * Magritte descriptions now work on the instance side > ? *?/magritte/editor works with instance side descriptions > ? * Refactoring support to move descriptions to instance side > > Details: > * All code is in the > repository:?http://source.lukas-renggli.ch/magritte2unstable > ?* Taking feedback from previous mail pragmas are now > named:?, , > respectively for descriptions, descriptions extensions > and description containers (description containers extensions do exist, they > use the same pragma? but take the container as a > parameter). > ?* All tests are green, and the?/magritte/editor works. > ?* The refactoring supports works at the method, class and > class-category/package level. It adds the appropriate pragma for > descriptions, description extensions and container descriptions. The methods > keep the same category (this is to avoid package extensions methods > inadvertantly being reclassified). I attempted renaming #descriptionAddress > to #addressDescription but it complicated description extensions so I > decided to keep things simple. The refactoring support can be loaded from > Magritte-Tools. Before you try the refactoring, read the caveats below. Awesome news! > Caveats: > ?* I've ported but haven't tested the Morphic bindings. Be great if someone > who knows the Morphic bindings can test. > ?* The refactoring will not add 'class' for class-side selectors. For > example the following description: I guess this is good enough for most users. Also in OB-Refactory there is an action where you can move a method with one click on the instance/class side. Lukas >> >> descriptionGroup >> ^ MAStringDescription new >> accessor: #group; >> default: self defaultGroup; >> label: 'Group'; >> priority: 105; >> yourself > > > will be refactored to: > >> descriptionGroup >> >> ^ MAStringDescription new >> accessor: #group; >> default: self defaultGroup; >> label: 'Group'; >> priority: 105; >> yourself > > > However you'll have to manually add a 'class' to 'self defaultGroup' to make > it 'self class defaultGroup' ?.... unless someone knows how to fix this?... > > * all instance side #description & #description:?selectors within > MADescription and MAMemento hierarchy have been renamed to > ?#magritteDescription & #magritteDescription: respectively. I've tried to > catch all senders of #description and change them to #magritteDescription. > However instance creation methods have kept their original naming for > example MAMemento class>>model:description: > > Next Steps: > Attempt to refactor Pier and fix bugs based on feedback.... over to you.... > > Nick > > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From nick.ager at gmail.com Tue Jan 17 18:28:54 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:28:54 +0000 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: > > > * The refactoring will not add 'class' for class-side selectors. For > > I guess this is good enough for most users. Also in OB-Refactory there > is an action where you can move a method with one click on the > instance/class side. > > yes I looked at the move instance/class side refactoring but it seems to suffer from the same problem - unless I've missed something -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Tue Jan 17 18:33:21 2012 From: renggli at gmail.com (Lukas Renggli) Date: Tue, 17 Jan 2012 18:33:21 +0100 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: On 17 January 2012 18:28, Nick Ager wrote: >> > ?* The refactoring will not add 'class' for class-side selectors. For >> >> I guess this is good enough for most users. Also in OB-Refactory there >> is an action where you can move a method with one click on the >> instance/class side. >> > yes I looked at the move instance/class side refactoring but it seems to > suffer from the same problem - unless I've missed something Yeah, it doesn't pull other methods along. That is quite hard to do in a dynamic language and might get out of hands pretty quickly. I was just trying to say, that it is easy to fix manually afterwards. Lukas -- Lukas Renggli www.lukas-renggli.ch From nick.ager at gmail.com Tue Jan 17 18:41:31 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 17:41:31 +0000 Subject: Magritte with Pragma support update #2 In-Reply-To: References: Message-ID: > > Yeah, it doesn't pull other methods along. That is quite hard to do in > a dynamic language and might get out of hands pretty quickly. I was > just trying to say, that it is easy to fix manually afterwards. OK, my approach so far has been to keep the methods which the descriptions access on the class side as most of them seem to be defaults which feel at home on the class-side. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Tue Jan 17 19:02:15 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 18:02:15 +0000 Subject: Understanding the benefits of instance side descriptions. Message-ID: Hi, In Lukas's proposal for moving to instance-side descriptions there are various benefits mentioned such as: - Move descriptions from class-side to instance-side. This resolves > various issues such as cache-invalidation, instance specific > descriptions, dynamic descriptions, context dependent descriptions, > etc. Furthermore the descriptions will be closer to the code they > describe and it will be possible to describe class- and instance-side > of an object, not just the instance-side. > I'm not sure I understand the cache-invalidation issue. MAPragmaBuilder is derived from MADescriptionBuilder and uses MADescriptionBuilder *cache*instance variable which is invalidated in the same way as before, so currently the two implementations are equivalent. Was something different envisaged? Did you envisage any change to the use of #magritteDynamicObject? Cheers Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Tue Jan 17 19:34:21 2012 From: renggli at gmail.com (Lukas Renggli) Date: Tue, 17 Jan 2012 19:34:21 +0100 Subject: Understanding the benefits of instance side descriptions. In-Reply-To: References: Message-ID: Hi Nick, Not sure if I understand you question, let me know if I answer something you didn't want to know :-) > ?I'm not sure I understand the cache-invalidation issue. MAPragmaBuilder is > derived from MADescriptionBuilder and uses?MADescriptionBuilder?cache > instance variable which is invalidated in the same way as before, so > currently the two implementations are equivalent. Was something different > envisaged? Some Magritte users are unnecessarily rigid, because the descriptions are only created once and in a meaningless context (on the class side). This caused some ugly hacks like #magritteDynamicObject or overrides of #description that should no longer be necessary. Of course that means we need to drop the global caching, because Magritte cannot easily decide anymore if a description changes or not. I don't think this will be a big performance problem, because descriptions are essentially just data holders for a bunch of literals. What we could want to cache instead are the selectors that build the descriptions for a particular class, so that we do not repeatedly need to walk over the methods of the class hierarchies. And the flushing would happen as before. Lukas -- Lukas Renggli www.lukas-renggli.ch From gaston.dalloglio at gmail.com Tue Jan 17 22:16:38 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Tue, 17 Jan 2012 18:16:38 -0300 Subject: PQCyclerWidget and load jquery in Pier Message-ID: Hello all. Short history, what is the better manner to load jquery libraries for get working a PQCyclerWidget? Long... I wanted to add a slideshow to a Pier site and I saw that already exists a PRWidget for JQCycle, and I say great! Quickly I got to show the images that I added to a structure, but without the effect... After a some experimentation (I'm newbe in Pier) I saw this error in the browser console: "Uncaught exception: ReferenceError: Undefined variable: jQuery". Then I understood that the jquery library was not loaded, and I go to the implementation of PQCyclerWidget and saw this: PQCyclerWidget>>updateRoot: anHtmlRoot super updateRoot: anHtmlRoot. "assume that jQuery libraries are already loaded" anHtmlRoot javascript url: JQWidgetBoxDeploymentLibrary / #jquerycycleallJs then, I add this (before the existing line) and now the slideshow works fine: anHtmlRoot javascript url: ' https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'. which is surely not the right way to load jquery in pier. About instalation of this widget, I just load JQWidgetBox-Core and JQWidgetBox-Cycle-Core in a Pier2 image (no dev packages), it is correct? Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: From yanni at rogers.com Tue Jan 17 22:18:33 2012 From: yanni at rogers.com (Yanni Chiu) Date: Tue, 17 Jan 2012 16:18:33 -0500 Subject: Understanding the benefits of instance side descriptions. In-Reply-To: References: Message-ID: On 17/01/12 1:34 PM, Lukas Renggli wrote: > > Some Magritte users are unnecessarily rigid, because the descriptions > are only created once and in a meaningless context (on the class > side). This caused some ugly hacks like #magritteDynamicObject or > overrides of #description that should no longer be necessary. Yes, that's the motivation. I needed a magritte description that was used to populate a select list. The options needed to be based on the instance's containing object. There's no way for a class-based description to handle this situation. Even #magritteDynamicObject was not sufficient because the dynamic block has no access to the instance. I'll try out the new code, once I get past my current build problems. From nick.ager at gmail.com Tue Jan 17 23:26:24 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 22:26:24 +0000 Subject: PQCyclerWidget and load jquery in Pier In-Reply-To: References: Message-ID: Hi Gast?n, I don't know specifically about PQCyclerWidget - but it looks as though you've diagnosed your problem successfully. One way ensure that the jQuery libraries are served, is to use the /config application to add libraries to your application: Browse to /config eg http://localhost:8080/config Select your Pier site, by default it's registered at /pier Under the General/Libraries, click on 'Configure' Then in Library configuration click Override Add the JQuery libraries, for example JQDevelopmentLibrary, JQUIDevelopmentLibrary, JQFlickTheme (you may not require the last two). There is more information available: http://book.seaside.st/book/in-action/serving-files Hope this helps Nick 2012/1/17 Gast?n Dall' Oglio > Hello all. > > Short history, what is the better manner to load jquery libraries for get > working a PQCyclerWidget? > > Long... > I wanted to add a slideshow to a Pier site and I saw that already exists a > PRWidget for JQCycle, and I say great! Quickly I got to show the images > that I added to a structure, but without the effect... After a some > experimentation (I'm newbe in Pier) I saw this error in the browser > console: "Uncaught exception: ReferenceError: Undefined variable: jQuery". > Then I understood that the jquery library was not loaded, and I go to the > implementation of PQCyclerWidget and saw this: > > PQCyclerWidget>>updateRoot: anHtmlRoot > super updateRoot: anHtmlRoot. > "assume that jQuery libraries are already loaded" > anHtmlRoot javascript url: JQWidgetBoxDeploymentLibrary / #jquerycycleallJs > > > then, I add this (before the existing line) and now the slideshow works > fine: > anHtmlRoot javascript url: ' > https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'. > > which is surely not the right way to load jquery in pier. > > > About instalation of this widget, I just load JQWidgetBox-Core and > JQWidgetBox-Cycle-Core in a Pier2 image (no dev packages), it is correct? > > Regards > > > > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Tue Jan 17 23:36:21 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 17 Jan 2012 22:36:21 +0000 Subject: Understanding the benefits of instance side descriptions. In-Reply-To: References: Message-ID: Hi Lukas > Some Magritte users are unnecessarily rigid, because the descriptions > are only created once and in a meaningless context (on the class > side). This caused some ugly hacks like #magritteDynamicObject or > overrides of #description that should no longer be necessary. > > Of course that means we need to drop the global caching, because > Magritte cannot easily decide anymore if a description changes or not. > I don't think this will be a big performance problem, because > descriptions are essentially just data holders for a bunch of > literals. What we could want to cache instead are the selectors that > build the descriptions for a particular class, so that we do not > repeatedly need to walk over the methods of the class hierarchies. And > the flushing would happen as before. That's clear, I'll drop the caching so the descriptions are created on-demand. However I'm confused as to why the caching couldn't have been dropped before for the class-side descriptions. I realise removing the caching before wouldn't have solved all the problems that instance descriptions have, but it would have removed the need for #magritteDynamicObject and friends. Though perhaps that is only a marginal benefit. Am I missing something? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From gaston.dalloglio at gmail.com Wed Jan 18 00:27:25 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Tue, 17 Jan 2012 20:27:25 -0300 Subject: PQCyclerWidget and load jquery in Pier In-Reply-To: References: Message-ID: Hello Nick. 2012/1/17 Nick Ager > Hi Gast?n, > > I don't know specifically about PQCyclerWidget - but it looks as though > you've diagnosed your problem successfully. > The best part, is that I beginning to understand a little about Seaside and Pier :)) > One way ensure that the jQuery libraries are served, is to use the /config > application to add libraries to your application: > thats is just I wanted to do, add those libraries to Pier, but I do not realized that Pier is just an application like any other, then thought I had to refer to the kernel to load jquery, grrr :) > > Browse to /config eg http://localhost:8080/config > Select your Pier site, by default it's registered at /pier > Under the General/Libraries, click on 'Configure' > Then in Library configuration click Override > Add the JQuery libraries, for example JQDevelopmentLibrary, > JQUIDevelopmentLibrary, JQFlickTheme (you may not require the last two). > > There is more information available: > http://book.seaside.st/book/in-action/serving-files > yes, I know this help, thanks > Hope this helps > yes, thanks agains > > Nick > Regards, Gast?n. > > 2012/1/17 Gast?n Dall' Oglio > >> Hello all. >> >> Short history, what is the better manner to load jquery libraries for get >> working a PQCyclerWidget? >> >> Long... >> I wanted to add a slideshow to a Pier site and I saw that already exists >> a PRWidget for JQCycle, and I say great! Quickly I got to show the images >> that I added to a structure, but without the effect... After a some >> experimentation (I'm newbe in Pier) I saw this error in the browser >> console: "Uncaught exception: ReferenceError: Undefined variable: jQuery". >> Then I understood that the jquery library was not loaded, and I go to the >> implementation of PQCyclerWidget and saw this: >> >> PQCyclerWidget>>updateRoot: anHtmlRoot >> super updateRoot: anHtmlRoot. >> "assume that jQuery libraries are already loaded" >> anHtmlRoot javascript url: JQWidgetBoxDeploymentLibrary / >> #jquerycycleallJs >> >> >> then, I add this (before the existing line) and now the slideshow works >> fine: >> anHtmlRoot javascript url: ' >> https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'. >> >> which is surely not the right way to load jquery in pier. >> >> >> About instalation of this widget, I just load JQWidgetBox-Core and >> JQWidgetBox-Cycle-Core in a Pier2 image (no dev packages), it is correct? >> >> Regards >> >> >> >> >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Wed Jan 18 18:01:01 2012 From: nick.ager at gmail.com (Nick Ager) Date: Wed, 18 Jan 2012 17:01:01 +0000 Subject: Pragma conversion update #3: dynamic non-caching descriptions Message-ID: Hi, I've removed Magritte's description caching in the latest version so that descriptions are now created dynamically on demand. Without the cache I found I needed to guard against recursive descriptions and ended up using a dynamic-variable as a temporary cache to break the recursion. I had to modify one test to avoid a failure: MADescriptionBuilderTest>>testRecursive self assert: self magritteDescription children first reference = self magritteDescription The failure was caused by the child descriptions both having null accessors which use random UUIDs so will never be equal. I fixed this by specify an accessor: "accessor: MADictionaryAccessor new;" I've created a Magritte-Deprecated package which contains: MADescriptionBuilder MANamedBuilder MAProxyObject MADynamicObject MADynamicObjectTest Also the following package extension methods have been placed in deprecated: Object>>#description Object class>>#description BlockClosure>>#magritteDynamicObject BlockContext>>#magritteDynamicObject and I've removed all references to #magritteDynamicObject and the associated block in the core Magritte packages. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Wed Jan 18 18:11:33 2012 From: nick.ager at gmail.com (Nick Ager) Date: Wed, 18 Jan 2012 17:11:33 +0000 Subject: converting Pier to Magritte with pragmas Message-ID: Hi, I'd like to create a repository for Pier using Magritte with pragmas (shall we call it Magritte 3?). Can you (Lukas) create a new repository for Pier (Pier3/ Pierunstable?) on source.lukas-renggli.ch Thanks Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Wed Jan 18 21:15:52 2012 From: renggli at gmail.com (Lukas Renggli) Date: Wed, 18 Jan 2012 21:15:52 +0100 Subject: converting Pier to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Nick, I've created http://source.lukas-renggli.ch/pier2unstable. Lukas On 18 January 2012 18:11, Nick Ager wrote: > Hi, > > I'd like to create a repository for Pier using Magritte with pragmas (shall > we call it Magritte 3?). Can you (Lukas) create a new repository for Pier > (Pier3/ Pierunstable?) on source.lukas-renggli.ch > > Thanks > > Nick > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From nick.ager at gmail.com Thu Jan 19 09:47:46 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 19 Jan 2012 08:47:46 +0000 Subject: Pier Magritte with pragmas porting woes Message-ID: Just when it was all going so well.... I started trying to port Pier to use Magritte with pragmas and hit some issues: Pier structures are instantiated with snippets of code thus: addChild: ((PRComponent named: 'children') componentClass: PRChildrenWidget; write: 1 using: PRChildrenWidget descriptionLevel; yourself); the description is no longer defined on the class side so the above doesn't work. Superficially a quick solution might be modify the code thus: addChild: ((PRComponent named: 'children') componentClass: PRChildrenWidget; write: 1 using: (PRChildrenWidget *new*) descriptionLevel; yourself); However within PRComponent the method PRComponent>>#componentDescription currently uses the componentClass to generate the descriptions. Again this could be modified to create an instance and retrieve the descriptions from the instance. However I started to wonder if there is a better way, rather than creating numerous temporary instances for extracting the descriptions. My initial idea is to pass a prototypical instance instance to PRComponent with the default values set, this would then eliminate the need to create multiple instances for description retrieval - the descriptions can be retrieved directly from the prototypical instance. The above code would then be something like: addChild: ((PRComponent named: 'children') prototypeInstance: ((PRChildrenWidget *new*) descriptionLevel: 1; yourself); yourself); Then I run into more issues as PRChildrenWidget doesn't currently have write accessors for described properties (nor do any objects derived from PRWidget), clearly that could be fixed ... but I'm starting to wonder if I'm going down a sensible path and the modifications required simply fall out of having instance-side descriptions or if I'm heading completely in the wrong direction. Thoughts? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Thu Jan 19 10:48:12 2012 From: renggli at gmail.com (Lukas Renggli) Date: Thu, 19 Jan 2012 10:48:12 +0100 Subject: Pier Magritte with pragmas porting woes In-Reply-To: References: Message-ID: On 19 January 2012 09:47, Nick Ager wrote: > Just when it was all going so well.... ?I started trying to port Pier to use > Magritte with pragmas and hit some issues: > > Pier structures are instantiated with snippets of code thus: > > addChild: ((PRComponent named: 'children') > componentClass: PRChildrenWidget; > write: 1 using: PRChildrenWidget descriptionLevel; > yourself); > > > the description is no longer defined on the class side so the above doesn't > work. Superficially a quick solution might be modify the code thus: > > addChild: ((PRComponent named: 'children') > componentClass: PRChildrenWidget; > write: 1 using: (PRChildrenWidget new)?descriptionLevel; > yourself); > > > However within PRComponent the method PRComponent>>#componentDescription > currently uses the componentClass to generate the descriptions. Again this > could be modified to create an instance and retrieve the descriptions from > the instance. However I started to wonder if there is a better way, rather > than creating numerous temporary instances for extracting the descriptions. > My initial idea is to pass a prototypical instance instance to PRComponent > with the default values set, this would then eliminate the need to create > multiple instances for description retrieval - the descriptions can be > retrieved directly from the?prototypical instance. The above code would then > be something like: > > addChild: ((PRComponent named: 'children') > prototypeInstance: ((PRChildrenWidget?new) descriptionLevel: 1; yourself); > yourself); > > > Then I run into more issues as?PRChildrenWidget doesn't currently have write > accessors for described properties (nor do any objects derived from > PRWidget), clearly that could be fixed ... but I'm starting to wonder if I'm > going down a sensible path and the modifications required simply fall out of > having instance-side descriptions or if I'm heading completely in the wrong > direction. > > Thoughts? I would add a method Object>>#write:usingNamed: Lukas > > Nick > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From nick.ager at gmail.com Thu Jan 19 20:08:54 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 19 Jan 2012 19:08:54 +0000 Subject: converting Pier to Magritte with pragmas In-Reply-To: References: Message-ID: OK I've checked an initial version of Pier with Magritte pragmas into http://source.lukas-renggli.ch/pier2unstable All the tests are green and after some fixes it appears to function. Note it's a minimal pier installation, no pier book no pier blog etc. My modifications to PRComponent adding #write:usingNamed: feel a little too hacky. If anyone has time be great if they can have a look at the comment in MAElementDescription>>#new - again it feels a little hacky. I really don't like the code in PRComponent and feel that passing it a prototype instance could simplify things (as per my previous mail). I'll try to mock it up to see how well it works ... unless it's been discussed, thought about before and rejected for good reasons. Feedback always appreciated Nick On 18 January 2012 20:15, Lukas Renggli wrote: > Hi Nick, > > I've created http://source.lukas-renggli.ch/pier2unstable. > > Lukas > > On 18 January 2012 18:11, Nick Ager wrote: > > Hi, > > > > I'd like to create a repository for Pier using Magritte with pragmas > (shall > > we call it Magritte 3?). Can you (Lukas) create a new repository for Pier > > (Pier3/ Pierunstable?) on source.lukas-renggli.ch > > > > Thanks > > > > Nick > > > > _______________________________________________ > > Magritte, Pier and Related Tools ... > > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Sat Jan 21 10:57:31 2012 From: nick.ager at gmail.com (Nick Ager) Date: Sat, 21 Jan 2012 09:57:31 +0000 Subject: converting Pier to Magritte with pragmas In-Reply-To: References: Message-ID: Hi, I've checked-in an alternative implementation using prototypeInstances. Both implementations can be installed and compared: prototypeInstances - (Pier-Seaside-NickAger.527) #write:usingNamed - (Pier-Seaside-NickAger.526). I think the prototypeInstance has worked well and I'd like to push ahead with that - converting blog, book and other add-ons - be great if anyone has a chance to look at what I've done and provide feedback - before I push ahead in a direction that people later don't think makes sense. Even better would be help converting some of the components, once we've agreed on a direction. The check-in comment: alternative implementation of PRCommand which takes a #prototypeInstance: so PRStructure>>defaultEnvironment now reads as: addChild: ((PRComponent named: 'search') prototypeInstance: PRSearchWidget new; yourself); addChild: ((PRComponent named: 'children') prototypeInstance: (PRChildrenWidget new level: 1; yourself); yourself); addChild: ((PRPage named: 'sidebar') addChild: ((PRComponent named: 'navigation') prototypeInstance: (PRChildrenWidget new level: 2; expand: true yourself); yourself); addChild: ((PRComponent named: 'views') prototypeInstance: PRViewsWidget new; yourself); addChild: ((PRComponent named: 'commands') prototypeInstance: PRCommandsWidget new; yourself); whereas my first attempt using #write:usingNamed looks like: addChild: ((PRComponent named: 'search') componentClass: PRSearchWidget; yourself); addChild: ((PRComponent named: 'children') componentClass: PRChildrenWidget; write: 1 usingNamed: #descriptionLevel; yourself); addChild: ((PRPage named: 'sidebar') addChild: ((PRComponent named: 'navigation') componentClass: PRChildrenWidget; write: 2 usingNamed: #descriptionLevel; write: true usingNamed: #descriptionExpand; yourself); addChild: ((PRComponent named: 'views') componentClass: PRViewsWidget; yourself); addChild: ((PRComponent named: 'commands') componentClass: PRCommandsWidget; yourself); The alternative implementation with prototypeInstances simplifies PRComponent, and is more efficient (though I doubt that is significant with the larger context of Pier). Another advantage is that there is less of a conceptual jump for people making a move from WAComponents to PRWidgets - as it allows an alternative form of widget development. That is widgets can use instance variables to hold their state rather than being required to map state onto #properties stored within PRWidget. As an example I've modified PRBatcherWidget, PRContentsWidget, PRHtmlWidget, PRSearchWidget and PRTocWidget to use this instance variable state holding form of widgets. Other widgets keep the old property mapping form, and to support both forms I've introduced a new base PRWidgetPropertyBase, which encapsulates the property support. The prototypeInstance implementation does require that PRWidgets implement setters; in the examples above I had to modify PRChildenWidget to add #level: and #expand:. I've modified all PRWidgets to add setters - potentially this could be automated through a refactoriing or rewrite rule. -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Sat Jan 21 17:48:02 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sat, 21 Jan 2012 17:48:02 +0100 Subject: converting Pier to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Nick, Looks nice with the prototypes, in fact much better than with the symbols as I originally suggested. We just have to pay attention that no unwanted state is creeping in. Lukas On 21 January 2012 10:57, Nick Ager wrote: > Hi, > > I've checked-in an alternative implementation using prototypeInstances. Both > implementations can be installed and compared: > prototypeInstances -??(Pier-Seaside-NickAger.527) > #write:usingNamed -?(Pier-Seaside-NickAger.526). > > I think the prototypeInstance has worked well and I'd like to push ahead > with that - converting blog, book and other add-ons - be great if anyone has > a chance to look at what I've done and provide feedback - before I push > ahead in a direction that people later don't think makes sense. Even better > would be help converting some of the components, once we've agreed on a > direction. > > The check-in comment: > > alternative implementation of PRCommand which takes a #prototypeInstance: so > PRStructure>>defaultEnvironment now reads as: > > addChild: ((PRComponent named: 'search') > prototypeInstance: PRSearchWidget new; > yourself); > addChild: ((PRComponent named: 'children') > prototypeInstance: (PRChildrenWidget new > level: 1; > yourself); > yourself); > addChild: ((PRPage named: 'sidebar') > addChild: ((PRComponent named: 'navigation') > prototypeInstance: (PRChildrenWidget new > level: 2; > expand: true > yourself); > yourself); > addChild: ((PRComponent named: 'views') > prototypeInstance: PRViewsWidget new; > yourself); > addChild: ((PRComponent named: 'commands') > prototypeInstance: PRCommandsWidget new; > yourself); > > whereas my first attempt using?#write:usingNamed looks like: > > addChild: ((PRComponent named: 'search') > componentClass: PRSearchWidget; > yourself); > addChild: ((PRComponent named: 'children') > componentClass: PRChildrenWidget; > write: 1 usingNamed: #descriptionLevel; > yourself); > addChild: ((PRPage named: 'sidebar') > addChild: ((PRComponent named: 'navigation') > componentClass: PRChildrenWidget; > write: 2 usingNamed: #descriptionLevel; > write: true usingNamed: #descriptionExpand; > yourself); > addChild: ((PRComponent named: 'views') > componentClass: PRViewsWidget; > yourself); > addChild: ((PRComponent named: 'commands') > componentClass: PRCommandsWidget; > yourself); > The alternative implementation with prototypeInstances simplifies > PRComponent, and is more efficient (though I doubt that is significant with > the larger context of Pier). Another advantage is that there is less of a > conceptual jump for people making a move from WAComponents to PRWidgets - as > it allows an alternative form of widget development. That is widgets can use > instance variables to hold their state rather than being required to map > state onto #properties stored within PRWidget. As an example I've modified > PRBatcherWidget, PRContentsWidget, PRHtmlWidget, PRSearchWidget and > PRTocWidget to use this instance variable state holding form of widgets. > Other widgets keep the old property mapping form, and to support both forms > I've introduced a new base PRWidgetPropertyBase, which encapsulates the > property support. > > The prototypeInstance implementation does require that PRWidgets implement > setters; in the examples above I had to modify PRChildenWidget to add > #level: and #expand:. I've modified all PRWidgets to add setters - > potentially this could be automated through a refactoriing or rewrite rule. > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sergiolist at village-buzz.com Sat Jan 21 18:38:11 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 21 Jan 2012 12:38:11 -0500 Subject: pier: standard practice for site development Message-ID: quick question.. how do you guys normally develop a website with pier? it seems like i run into problems developing locally, then deploying.. it is never a really smooth process.. should i just deploy an image, then add my content to the live site? thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Sat Jan 21 19:45:46 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 21 Jan 2012 13:45:46 -0500 Subject: pier admin: problems starting seaside control panel Message-ID: i am working with pier admin, and having some issues.. when starting with a clean image (downloaded from pier site) .. i install rfbserver (in case i need to get into it while it's deployed).. then, i shut down the webserver and install pier admin. when i try to start seaside control panel, i get: 21 January 2012 1:42:15 pm VM: Mac OS - intel - 1072 - Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.140] Pier 2.0 Image: Pharo1.3 [Latest update: #13320] OBMorphicPlatform(Object)>>doesNotUnderstand: #optionalButtons Receiver: an OBMorphicPlatform Arguments and temporary variables: aMessage: optionalButtons exception: MessageNotUnderstood: OBMorphicPlatform>>optionalButtons resumeValue: nil Receiver's instance variables: an OBMorphicPlatform WAPharoServerAdaptorBrowser class(OBBrowser class)>>buttonPanel Receiver: WAPharoServerAdaptorBrowser Arguments and temporary variables: Receiver's instance variables: superclass: WAServerAdaptorBrowser methodDict: a MethodDictionary() format: 136 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAPharoServerAdaptorBrowser classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Seaside-Pharo-Tools-OmniBrowser' traitComposition: {} localSelectors: nil WAPharoServerAdaptorBrowser class(OBBrowser class)>>panels Receiver: WAPharoServerAdaptorBrowser Arguments and temporary variables: Receiver's instance variables: superclass: WAServerAdaptorBrowser methodDict: a MethodDictionary() format: 136 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAPharoServerAdaptorBrowser classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Seaside-Pharo-Tools-OmniBrowser' traitComposition: {} localSelectors: nil WAPharoServerAdaptorBrowser class(OBBrowser class)>>new Receiver: WAPharoServerAdaptorBrowser Arguments and temporary variables: Receiver's instance variables: superclass: WAServerAdaptorBrowser methodDict: a MethodDictionary() format: 136 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAPharoServerAdaptorBrowser classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Seaside-Pharo-Tools-OmniBrowser' traitComposition: {} localSelectors: nil WAPharoServerAdaptorBrowser class(OBBrowser class)>>open Receiver: WAPharoServerAdaptorBrowser Arguments and temporary variables: Receiver's instance variables: superclass: WAServerAdaptorBrowser methodDict: a MethodDictionary() format: 136 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAPharoServerAdaptorBrowser classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Seaside-Pharo-Tools-OmniBrowser' traitComposition: {} localSelectors: nil [self open] in WAPharoServerAdaptorBrowser class>>menuCommandOn: Receiver: WAPharoServerAdaptorBrowser Arguments and temporary variables: Receiver's instance variables: superclass: WAServerAdaptorBrowser methodDict: a MethodDictionary() format: 136 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #WAPharoServerAdaptorBrowser classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Seaside-Pharo-Tools-OmniBrowser' traitComposition: {} localSelectors: nil [| selArgCount | (selArgCount := selector numArgs) = 0 ifTrue: [target perform: selector] ifFalse: [selArgCount = arguments size ifTrue: [target perform: selector withArguments: arguments] ifFalse: [target perform: selector withArguments: (arguments copyWith: evt)]]. self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: evt: [558 at 375 mouseUp 745728 nil] selArgCount: 0 Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil BlockClosure>>ensure: Receiver: [| selArgCount | (selArgCount := selector numArgs) = 0 ifTrue: [target perform: selector...etc... Arguments and temporary variables: aBlock: [oldcursor show] complete: nil returnValue: nil Receiver's instance variables: outerContext: ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: startpc: 156 numArgs: 0 CursorWithMask(Cursor)>>showWhile: Receiver: ((CursorWithMask extent: 16 at 16 depth: 1 fromArray: #( 2r0 2r10000000000000000000000...etc... Arguments and temporary variables: aBlock: [| selArgCount | (selArgCount := selector numArgs) = 0 ifTrue: [targe...etc... oldcursor: ((CursorWithMask extent: 16 at 16 depth: 1 fromArray: #( 2r0 2r1...etc... Receiver's instance variables: bits: a Bitmap of length 16 width: 16 height: 16 depth: 1 offset: -1@ -1 maskForm: Form(16x16x1) ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: evt: [558 at 375 mouseUp 745728 nil] w: a PasteUpMorph(425197568) [world] Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil ToggleMenuItemMorph(MenuItemMorph)>>mouseUp: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: evt: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil MouseButtonEvent>>sentTo: Receiver: [558 at 375 mouseUp 745728 nil] Arguments and temporary variables: anObject: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Receiver's instance variables: timeStamp: 745728 source: a HandMorph(843055104) windowIndex: nil type: #mouseUp buttons: 0 position: 558 at 375 handler: nil wasHandled: true whichButton: 4 ToggleMenuItemMorph(Morph)>>handleEvent: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil MorphicEventDispatcher>>dispatchDefault:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] aMorph: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' localEvt: nil index: 1 child: nil morphs: #() inside: true Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] aMorph: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: ToggleMenuItemMorph(Morph)>>processEvent:using: Receiver: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] defaultDispatcher: a MorphicEventDispatcher Receiver's instance variables: bounds: 497 at 371 corner: 663 at 385 owner: a MenuMorph(186646528) submorphs: #() fullBounds: 497 at 371 corner: 663 at 385 color: Color black extension: a MorphExtension (499908608) font: a StrikeFont(Bitmap DejaVu Sans 9 14) emphasis: 0 contents: 'Seaside Control Panel' hasFocus: false isEnabled: true subMenu: nil isSelected: false target: [self open] selector: #value arguments: #() icon: Form(12x12x32) getStateSelector: nil enablementSelector: nil keyText: nil MorphicEventDispatcher>>dispatchDefault:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] aMorph: a MenuMorph(186646528) localEvt: [558 at 375 mouseUp 745728 nil] index: 8 child: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' morphs: an Array(a ToggleMenuItemMorph(369885184)'Finder' a ToggleMenuItemMorph...etc... inside: false Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] aMorph: a MenuMorph(186646528) Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: MenuMorph(Morph)>>processEvent:using: Receiver: a MenuMorph(186646528) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] defaultDispatcher: a MorphicEventDispatcher Receiver's instance variables: bounds: 493 at 234 corner: 667 at 506 owner: nil submorphs: an Array(a ToggleMenuItemMorph(369885184)'Finder' a ToggleMenuItemMo...etc... fullBounds: 493 at 234 corner: 668 at 507 color: (Color r: 0.871 g: 0.871 b: 0.871) extension: a MorphExtension (190578688) [other: (basicColor -> (Color r: 0.784...etc... borderWidth: 1 borderColor: Color gray defaultTarget: nil selectedItem: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' stayUp: false popUpOwner: a ToggleMenuItemMorph(169082880)'Tools' activeSubMenu: nil activatorDockingBar: nil embeddable: nil menuItems: nil MenuMorph(Morph)>>processEvent: Receiver: a MenuMorph(186646528) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 493 at 234 corner: 667 at 506 owner: nil submorphs: an Array(a ToggleMenuItemMorph(369885184)'Finder' a ToggleMenuItemMo...etc... fullBounds: 493 at 234 corner: 668 at 507 color: (Color r: 0.871 g: 0.871 b: 0.871) extension: a MorphExtension (190578688) [other: (basicColor -> (Color r: 0.784...etc... borderWidth: 1 borderColor: Color gray defaultTarget: nil selectedItem: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' stayUp: false popUpOwner: a ToggleMenuItemMorph(169082880)'Tools' activeSubMenu: nil activatorDockingBar: nil embeddable: nil menuItems: nil MenuMorph>>handleFocusEvent: Receiver: a MenuMorph(186646528) Arguments and temporary variables: evt: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 493 at 234 corner: 667 at 506 owner: nil submorphs: an Array(a ToggleMenuItemMorph(369885184)'Finder' a ToggleMenuItemMo...etc... fullBounds: 493 at 234 corner: 668 at 507 color: (Color r: 0.871 g: 0.871 b: 0.871) extension: a MorphExtension (190578688) [other: (basicColor -> (Color r: 0.784...etc... borderWidth: 1 borderColor: Color gray defaultTarget: nil selectedItem: a ToggleMenuItemMorph(497549312)'Seaside Control Panel' stayUp: false popUpOwner: a ToggleMenuItemMorph(169082880)'Tools' activeSubMenu: nil activatorDockingBar: nil embeddable: nil menuItems: nil [ActiveHand := self. ActiveEvent := anEvent. result := focusHolder handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear: Receiver: a HandMorph(843055104) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] focusHolder: a MenuMorph(186646528) result: #(nil) Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil [aBlock value] in PasteUpMorph>>becomeActiveDuring: Receiver: a PasteUpMorph(425197568) [world] Arguments and temporary variables: aBlock: [ActiveHand := self. ActiveEvent := anEvent. result := focusHolder ...etc... Receiver's instance variables: bounds: 0 at 0 corner: 1276 at 730 owner: nil submorphs: an Array(a TaskbarMorph(984088576) a SystemWindow(476577792) a Syste...etc... fullBounds: nil color: Color white extension: a MorphExtension (666632192) [eventHandler = an EventHandler] [othe...etc... borderWidth: 0 borderColor: (Color r: 0.03 g: 0.02 b: 0.0) backgroundMorph: nil worldState: a WorldState griddingOn: nil BlockClosure>>on:do: Receiver: [aBlock value] Arguments and temporary variables: exception: Error handlerAction: [:ex | ActiveWorld := priorWorld. ActiveEvent := priorEvent. ...etc... handlerActive: false Receiver's instance variables: outerContext: PasteUpMorph>>becomeActiveDuring: startpc: 67 numArgs: 0 PasteUpMorph>>becomeActiveDuring: Receiver: a PasteUpMorph(425197568) [world] Arguments and temporary variables: aBlock: [ActiveHand := self. ActiveEvent := anEvent. result := focusHolder ...etc... priorWorld: a PasteUpMorph(425197568) [world] priorHand: a HandMorph(843055104) priorEvent: [558 at 375 mouseOver red nil nil] Receiver's instance variables: bounds: 0 at 0 corner: 1276 at 730 owner: nil submorphs: an Array(a TaskbarMorph(984088576) a SystemWindow(476577792) a Syste...etc... fullBounds: nil color: Color white extension: a MorphExtension (666632192) [eventHandler = an EventHandler] [othe...etc... borderWidth: 0 borderColor: (Color r: 0.03 g: 0.02 b: 0.0) backgroundMorph: nil worldState: a WorldState griddingOn: nil HandMorph>>sendFocusEvent:to:clear: Receiver: a HandMorph(843055104) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] focusHolder: a MenuMorph(186646528) aBlock: [self mouseFocus: nil] w: a PasteUpMorph(425197568) [world] result: #(nil) Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil HandMorph>>sendEvent:focus:clear: Receiver: a HandMorph(843055104) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] focusHolder: a MenuMorph(186646528) aBlock: [self mouseFocus: nil] result: nil Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil HandMorph>>sendMouseEvent: Receiver: a HandMorph(843055104) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil HandMorph>>handleEvent: Receiver: a HandMorph(843055104) Arguments and temporary variables: anEvent: [558 at 375 mouseUp 745728 nil] evt: [558 at 375 mouseUp 745728 nil] ofs: nil Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil HandMorph>>processEvents Receiver: a HandMorph(843055104) Arguments and temporary variables: evt: [558 at 375 mouseUp 745728 nil] evtBuf: #(1 745728 558 375 0 0 1 1) type: 1 hadAny: false Receiver's instance variables: bounds: 896 at 429 corner: 912 at 445 owner: a PasteUpMorph(425197568) [world] submorphs: #() fullBounds: 896 at 429 corner: 912 at 445 color: Color blue extension: a MorphExtension (141295616) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [896 at 429 mouseUp 780699 nil] targetOffset: 93 at 8 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 780699 896 429 0 0 1 1) lastKeyScanCode: 2 combinedChar: nil [:h | ActiveHand := h. h processEvents. ActiveHand := nil] in WorldState>>doOneCycleNowFor: Receiver: a WorldState Arguments and temporary variables: h: a HandMorph(843055104) Receiver's instance variables: hands: an Array(a HandMorph(843055104)) viewBox: 0 at 0 corner: 1276 at 730 canvas: a FormCanvas on: RFBDisplayScreen(1276x730x32) damageRecorder: a DamageRecorder stepList: a Heap(StepMessage(#stepAt: -> an OverflowRowMorph(184549376))(an Ove...etc... lastStepTime: 780697 lastStepMessage: nil lastCycleTime: 780718 alarms: a Heap() lastAlarmTime: 780697 menuBuilder: a PragmaMenuBuilder Array(SequenceableCollection)>>do: Receiver: an Array(a HandMorph(843055104)) Arguments and temporary variables: aBlock: [:h | ActiveHand := h. h processEvents. ActiveHand := nil] index: 1 indexLimiT: 1 Receiver's instance variables: an Array(a HandMorph(843055104)) WorldState>>handsDo: Receiver: a WorldState Arguments and temporary variables: aBlock: [:h | ActiveHand := h. h processEvents. ActiveHand := nil] Receiver's instance variables: hands: an Array(a HandMorph(843055104)) viewBox: 0 at 0 corner: 1276 at 730 canvas: a FormCanvas on: RFBDisplayScreen(1276x730x32) damageRecorder: a DamageRecorder stepList: a Heap(StepMessage(#stepAt: -> an OverflowRowMorph(184549376))(an Ove...etc... lastStepTime: 780697 lastStepMessage: nil lastCycleTime: 780718 alarms: a Heap() lastAlarmTime: 780697 menuBuilder: a PragmaMenuBuilder WorldState>>doOneCycleNowFor: Receiver: a WorldState Arguments and temporary variables: aWorld: a PasteUpMorph(425197568) [world] Receiver's instance variables: hands: an Array(a HandMorph(843055104)) viewBox: 0 at 0 corner: 1276 at 730 canvas: a FormCanvas on: RFBDisplayScreen(1276x730x32) damageRecorder: a DamageRecorder stepList: a Heap(StepMessage(#stepAt: -> an OverflowRowMorph(184549376))(an Ove...etc... lastStepTime: 780697 lastStepMessage: nil lastCycleTime: 780718 alarms: a Heap() lastAlarmTime: 780697 menuBuilder: a PragmaMenuBuilder WorldState>>doOneCycleFor: Receiver: a WorldState Arguments and temporary variables: aWorld: a PasteUpMorph(425197568) [world] Receiver's instance variables: hands: an Array(a HandMorph(843055104)) viewBox: 0 at 0 corner: 1276 at 730 canvas: a FormCanvas on: RFBDisplayScreen(1276x730x32) damageRecorder: a DamageRecorder stepList: a Heap(StepMessage(#stepAt: -> an OverflowRowMorph(184549376))(an Ove...etc... lastStepTime: 780697 lastStepMessage: nil lastCycleTime: 780718 alarms: a Heap() lastAlarmTime: 780697 menuBuilder: a PragmaMenuBuilder PasteUpMorph>>doOneCycle Receiver: a PasteUpMorph(425197568) [world] Arguments and temporary variables: Receiver's instance variables: bounds: 0 at 0 corner: 1276 at 730 owner: nil submorphs: an Array(a TaskbarMorph(984088576) a SystemWindow(476577792) a Syste...etc... fullBounds: nil color: Color white extension: a MorphExtension (666632192) [eventHandler = an EventHandler] [othe...etc... borderWidth: 0 borderColor: (Color r: 0.03 g: 0.02 b: 0.0) backgroundMorph: nil worldState: a WorldState griddingOn: nil [[World doOneCycle. Processor yield. false] whileFalse. nil] in Project class>>spawnNewProcess Receiver: Project Arguments and temporary variables: Receiver's instance variables: superclass: Model methodDict: a MethodDictionary() format: 132 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #Project classPool: a Dictionary(#UIProcess->a Process in nil ) sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'System-Support' traitComposition: {} localSelectors: nil [self value. Processor terminateActive] in BlockClosure>>newProcess Receiver: [[World doOneCycle. Processor yield. false] whileFalse. nil] Arguments and temporary variables: Receiver's instance variables: outerContext: Project class>>spawnNewProcess startpc: 57 numArgs: 0 --- The full stack --- OBMorphicPlatform(Object)>>doesNotUnderstand: #optionalButtons WAPharoServerAdaptorBrowser class(OBBrowser class)>>buttonPanel WAPharoServerAdaptorBrowser class(OBBrowser class)>>panels WAPharoServerAdaptorBrowser class(OBBrowser class)>>new WAPharoServerAdaptorBrowser class(OBBrowser class)>>open [self open] in WAPharoServerAdaptorBrowser class>>menuCommandOn: [| selArgCount | (selArgCount := selector numArgs) = 0 ifTrue: [target perform: selector] ifFalse: [selArgCount = arguments size ifTrue: [target perform: selector withArguments: arguments] ifFalse: [target perform: selector withArguments: (arguments copyWith: evt)]]. self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: BlockClosure>>ensure: CursorWithMask(Cursor)>>showWhile: ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: ToggleMenuItemMorph(MenuItemMorph)>>mouseUp: ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp: MouseButtonEvent>>sentTo: ToggleMenuItemMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: ToggleMenuItemMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: MenuMorph(Morph)>>processEvent:using: MenuMorph(Morph)>>processEvent: MenuMorph>>handleFocusEvent: [ActiveHand := self. ActiveEvent := anEvent. result := focusHolder handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear: [aBlock value] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendMouseEvent: HandMorph>>handleEvent: HandMorph>>processEvents [:h | ActiveHand := h. h processEvents. ActiveHand := nil] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [[World doOneCycle. Processor yield. false] whileFalse. nil] in Project class>>spawnNewProcess [self value. Processor terminateActive] in BlockClosure>>newProcess -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Sun Jan 22 19:47:44 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 13:47:44 -0500 Subject: pier urls - removing /pier Message-ID: for some reason, i am still having problems with doing something as simple as deploying a new image.. i have set up the following: in http://www.toaplacebehindthesun.com:8081/config/pier i added this: resources: http://www.toaplacebehindthesun.com/resources/ server hostname: www.toaplacebehindthesun.com server path: / in http://www.toaplacebehindthesun.com/system/management i added this: Base URL: http://www.toaplacebehindthesun.com all of the links seem to work okay... EXCEPT i can't edit anything.. when i go to edit anything, i am taken here: /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not found on this server.. i have two other pier sites that run perfectly.. and i used them as a guide for this one, but i just can't get that last piece working.. also, if i try to expand the following menus: -Welcome to Pier! +Blog +About Pier +System even when i hover over them, i get something like: http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView when i click, i get this: The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView was not found on this server. hopefully i have given you enough info to make heads or tails of this.. thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From renggli at gmail.com Sun Jan 22 20:38:29 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 22 Jan 2012 20:38:29 +0100 Subject: pier urls - removing /pier In-Reply-To: References: Message-ID: How does you Apache config look like? Lukas On 22 January 2012 19:47, sergio_101 wrote: > for some reason, i am still having problems with doing something as > simple as deploying a new image.. > > i have set up the following: > > in http://www.toaplacebehindthesun.com:8081/config/pier > > i added this: > > resources: http://www.toaplacebehindthesun.com/resources/ > server hostname: www.toaplacebehindthesun.com > server path: / > > in http://www.toaplacebehindthesun.com/system/management > > i added this: > Base URL: http://www.toaplacebehindthesun.com > > all of the links seem to work okay... > > EXCEPT > > i can't edit anything.. > > when i go to edit anything, i am taken here: > > /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not > found on this server.. > > i have two other pier sites that run perfectly.. and i used them as a > guide for this one, but i just can't get that last piece working.. > > also, if i try to expand the following menus: > > -Welcome to Pier! > +Blog > +About Pier > +System > > even when i hover over them, i get something like: > > http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView > > when i click, i get this: > > The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView > was not found on this server. > > hopefully i have given you enough info to make heads or tails of this.. > > thanks! > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sergiolist at village-buzz.com Sun Jan 22 21:55:26 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 15:55:26 -0500 Subject: pier urls - removing /pier In-Reply-To: References: Message-ID: i copied this from the rest of my sites, too.. # set server name ProxyPreserveHost On ServerName toaplacebehindthesun.com ServerAlias www.toaplacebehindthesun.com ErrorLog ? ? /home/behindthesun/logs/error_log CustomLog ? ?/home/behindthesun/logs/access_log combined # connfigure static file serving DocumentRoot /home/behindthesun/imageBehindTheSun/files Order deny,allow Allow from all # rewrite incoming requests RewriteEngine On RewriteRule ^/files/(.*)$ http://localhost:8081/files/$1 [proxy,last] RewriteCond /home/behindthesun/imageBehindTheSun/files/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ http://localhost:8081/pier/$1 [proxy,last] On Sun, Jan 22, 2012 at 2:38 PM, Lukas Renggli wrote: > How does you Apache config look like? > > Lukas > > On 22 January 2012 19:47, sergio_101 wrote: >> for some reason, i am still having problems with doing something as >> simple as deploying a new image.. >> >> i have set up the following: >> >> in http://www.toaplacebehindthesun.com:8081/config/pier >> >> i added this: >> >> resources: http://www.toaplacebehindthesun.com/resources/ >> server hostname: www.toaplacebehindthesun.com >> server path: / >> >> in http://www.toaplacebehindthesun.com/system/management >> >> i added this: >> Base URL: http://www.toaplacebehindthesun.com >> >> all of the links seem to work okay... >> >> EXCEPT >> >> i can't edit anything.. >> >> when i go to edit anything, i am taken here: >> >> /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not >> found on this server.. >> >> i have two other pier sites that run perfectly.. and i used them as a >> guide for this one, but i just can't get that last piece working.. >> >> also, if i try to expand the following menus: >> >> -Welcome to Pier! >> +Blog >> +About Pier >> +System >> >> even when i hover over them, i get something like: >> >> http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >> >> when i click, i get this: >> >> The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >> was not found on this server. >> >> hopefully i have given you enough info to make heads or tails of this.. >> >> thanks! >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From renggli at gmail.com Sun Jan 22 22:07:07 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 22 Jan 2012 22:07:07 +0100 Subject: pier urls - removing /pier In-Reply-To: References: Message-ID: I can't spot a problem in this configuration, looks like from the hand-book :-) What you might want to check is if you have some old cookies, that might interfere from an previous configuration. Also you might want to check if the
that seaside generates is correct, especially the POST URL. Seems to be kind of strange that only the POSTS break. Lukas On 22 January 2012 21:55, sergio_101 wrote: > i copied this from the rest of my sites, too.. > > > > # set server name > ProxyPreserveHost On > ServerName toaplacebehindthesun.com > ServerAlias www.toaplacebehindthesun.com > > ErrorLog ? ? /home/behindthesun/logs/error_log > CustomLog ? ?/home/behindthesun/logs/access_log combined > > # connfigure static file serving > DocumentRoot /home/behindthesun/imageBehindTheSun/files > > Order deny,allow > Allow from all > > > # rewrite incoming requests > RewriteEngine On > RewriteRule ^/files/(.*)$ http://localhost:8081/files/$1 [proxy,last] > RewriteCond /home/behindthesun/imageBehindTheSun/files/%{REQUEST_FILENAME} !-f > RewriteRule ^/(.*)$ http://localhost:8081/pier/$1 [proxy,last] > > > > On Sun, Jan 22, 2012 at 2:38 PM, Lukas Renggli wrote: >> How does you Apache config look like? >> >> Lukas >> >> On 22 January 2012 19:47, sergio_101 wrote: >>> for some reason, i am still having problems with doing something as >>> simple as deploying a new image.. >>> >>> i have set up the following: >>> >>> in http://www.toaplacebehindthesun.com:8081/config/pier >>> >>> i added this: >>> >>> resources: http://www.toaplacebehindthesun.com/resources/ >>> server hostname: www.toaplacebehindthesun.com >>> server path: / >>> >>> in http://www.toaplacebehindthesun.com/system/management >>> >>> i added this: >>> Base URL: http://www.toaplacebehindthesun.com >>> >>> all of the links seem to work okay... >>> >>> EXCEPT >>> >>> i can't edit anything.. >>> >>> when i go to edit anything, i am taken here: >>> >>> /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not >>> found on this server.. >>> >>> i have two other pier sites that run perfectly.. and i used them as a >>> guide for this one, but i just can't get that last piece working.. >>> >>> also, if i try to expand the following menus: >>> >>> -Welcome to Pier! >>> +Blog >>> +About Pier >>> +System >>> >>> even when i hover over them, i get something like: >>> >>> http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>> >>> when i click, i get this: >>> >>> The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>> was not found on this server. >>> >>> hopefully i have given you enough info to make heads or tails of this.. >>> >>> thanks! >>> >>> -- >>> ---- >>> peace, >>> sergio >>> photographer, journalist, visionary >>> >>> http://www.CodingForHire.com >>> http://www.coffee-black.com >>> http://www.painlessfrugality.com >>> http://www.twitter.com/sergio_101 >>> http://www.facebook.com/sergio101 >>> _______________________________________________ >>> Magritte, Pier and Related Tools ... >>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sergiolist at village-buzz.com Sun Jan 22 23:11:32 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 17:11:32 -0500 Subject: pier urls - removing /pier In-Reply-To: References: Message-ID: hey, lukas.. i deleted all of my cookies, and am still having the same problem.. here is the form tag for a comment form: looks okay to me... here is something weird.. if you look here: http://www.toaplacebehindthesun.com/blog/hello/ and click the link for January 2012 (2) the link errors out.. hmmm.. oh! and by the way.. i have a dad alone evening at my house tonight.. i plan on finally watching your seaside video from here: http://www.youtube.com/watch?v=HQTGiaqD2s8 On Sun, Jan 22, 2012 at 4:07 PM, Lukas Renggli wrote: > I can't spot a problem in this configuration, looks like from the hand-book :-) > > What you might want to check is if you have some old cookies, that > might interfere from an previous configuration. > > Also you might want to check if the that seaside generates is > correct, especially the POST URL. Seems to be kind of strange that > only the POSTS break. > > Lukas > > On 22 January 2012 21:55, sergio_101 wrote: >> i copied this from the rest of my sites, too.. >> >> >> >> # set server name >> ProxyPreserveHost On >> ServerName toaplacebehindthesun.com >> ServerAlias www.toaplacebehindthesun.com >> >> ErrorLog ? ? /home/behindthesun/logs/error_log >> CustomLog ? ?/home/behindthesun/logs/access_log combined >> >> # connfigure static file serving >> DocumentRoot /home/behindthesun/imageBehindTheSun/files >> >> Order deny,allow >> Allow from all >> >> >> # rewrite incoming requests >> RewriteEngine On >> RewriteRule ^/files/(.*)$ http://localhost:8081/files/$1 [proxy,last] >> RewriteCond /home/behindthesun/imageBehindTheSun/files/%{REQUEST_FILENAME} !-f >> RewriteRule ^/(.*)$ http://localhost:8081/pier/$1 [proxy,last] >> >> >> >> On Sun, Jan 22, 2012 at 2:38 PM, Lukas Renggli wrote: >>> How does you Apache config look like? >>> >>> Lukas >>> >>> On 22 January 2012 19:47, sergio_101 wrote: >>>> for some reason, i am still having problems with doing something as >>>> simple as deploying a new image.. >>>> >>>> i have set up the following: >>>> >>>> in http://www.toaplacebehindthesun.com:8081/config/pier >>>> >>>> i added this: >>>> >>>> resources: http://www.toaplacebehindthesun.com/resources/ >>>> server hostname: www.toaplacebehindthesun.com >>>> server path: / >>>> >>>> in http://www.toaplacebehindthesun.com/system/management >>>> >>>> i added this: >>>> Base URL: http://www.toaplacebehindthesun.com >>>> >>>> all of the links seem to work okay... >>>> >>>> EXCEPT >>>> >>>> i can't edit anything.. >>>> >>>> when i go to edit anything, i am taken here: >>>> >>>> /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not >>>> found on this server.. >>>> >>>> i have two other pier sites that run perfectly.. and i used them as a >>>> guide for this one, but i just can't get that last piece working.. >>>> >>>> also, if i try to expand the following menus: >>>> >>>> -Welcome to Pier! >>>> +Blog >>>> +About Pier >>>> +System >>>> >>>> even when i hover over them, i get something like: >>>> >>>> http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>>> >>>> when i click, i get this: >>>> >>>> The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>>> was not found on this server. >>>> >>>> hopefully i have given you enough info to make heads or tails of this.. >>>> >>>> thanks! >>>> >>>> -- >>>> ---- >>>> peace, >>>> sergio >>>> photographer, journalist, visionary >>>> >>>> http://www.CodingForHire.com >>>> http://www.coffee-black.com >>>> http://www.painlessfrugality.com >>>> http://www.twitter.com/sergio_101 >>>> http://www.facebook.com/sergio101 >>>> _______________________________________________ >>>> Magritte, Pier and Related Tools ... >>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>> >>> >>> >>> -- >>> Lukas Renggli >>> www.lukas-renggli.ch >>> _______________________________________________ >>> Magritte, Pier and Related Tools ... >>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Sun Jan 22 23:15:32 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 17:15:32 -0500 Subject: pier urls - removing /pier In-Reply-To: References: Message-ID: i also checked, and i can't leave a comment either.. hmmm... On Sun, Jan 22, 2012 at 5:11 PM, sergio_101 wrote: > hey, lukas.. > > i deleted all of my cookies, and am still having the same problem.. > > here is the form tag for a comment form: > > action="http://www.toaplacebehindthesun.com/blog/hello/?_k=7vT4c2G8ClASrAr7" > class="magritte"> > > looks okay to me... > > here is something weird.. > > if you look here: > > http://www.toaplacebehindthesun.com/blog/hello/ > > and click the link for January 2012 (2) > > the link errors out.. > > hmmm.. > > oh! > > and by the way.. > > i have a dad alone evening at my house tonight.. i plan on finally > watching your seaside video from here: > > http://www.youtube.com/watch?v=HQTGiaqD2s8 > > > On Sun, Jan 22, 2012 at 4:07 PM, Lukas Renggli wrote: >> I can't spot a problem in this configuration, looks like from the hand-book :-) >> >> What you might want to check is if you have some old cookies, that >> might interfere from an previous configuration. >> >> Also you might want to check if the that seaside generates is >> correct, especially the POST URL. Seems to be kind of strange that >> only the POSTS break. >> >> Lukas >> >> On 22 January 2012 21:55, sergio_101 wrote: >>> i copied this from the rest of my sites, too.. >>> >>> >>> >>> # set server name >>> ProxyPreserveHost On >>> ServerName toaplacebehindthesun.com >>> ServerAlias www.toaplacebehindthesun.com >>> >>> ErrorLog ? ? /home/behindthesun/logs/error_log >>> CustomLog ? ?/home/behindthesun/logs/access_log combined >>> >>> # connfigure static file serving >>> DocumentRoot /home/behindthesun/imageBehindTheSun/files >>> >>> Order deny,allow >>> Allow from all >>> >>> >>> # rewrite incoming requests >>> RewriteEngine On >>> RewriteRule ^/files/(.*)$ http://localhost:8081/files/$1 [proxy,last] >>> RewriteCond /home/behindthesun/imageBehindTheSun/files/%{REQUEST_FILENAME} !-f >>> RewriteRule ^/(.*)$ http://localhost:8081/pier/$1 [proxy,last] >>> >>> >>> >>> On Sun, Jan 22, 2012 at 2:38 PM, Lukas Renggli wrote: >>>> How does you Apache config look like? >>>> >>>> Lukas >>>> >>>> On 22 January 2012 19:47, sergio_101 wrote: >>>>> for some reason, i am still having problems with doing something as >>>>> simple as deploying a new image.. >>>>> >>>>> i have set up the following: >>>>> >>>>> in http://www.toaplacebehindthesun.com:8081/config/pier >>>>> >>>>> i added this: >>>>> >>>>> resources: http://www.toaplacebehindthesun.com/resources/ >>>>> server hostname: www.toaplacebehindthesun.com >>>>> server path: / >>>>> >>>>> in http://www.toaplacebehindthesun.com/system/management >>>>> >>>>> i added this: >>>>> Base URL: http://www.toaplacebehindthesun.com >>>>> >>>>> all of the links seem to work okay... >>>>> >>>>> EXCEPT >>>>> >>>>> i can't edit anything.. >>>>> >>>>> when i go to edit anything, i am taken here: >>>>> >>>>> /pier/about/?_k=NG8sBw9XAlEGBxZQ&command=PREditCommand&_n&8 was not >>>>> found on this server.. >>>>> >>>>> i have two other pier sites that run perfectly.. and i used them as a >>>>> guide for this one, but i just can't get that last piece working.. >>>>> >>>>> also, if i try to expand the following menus: >>>>> >>>>> -Welcome to Pier! >>>>> +Blog >>>>> +About Pier >>>>> +System >>>>> >>>>> even when i hover over them, i get something like: >>>>> >>>>> http://www.toaplacebehindthesun.com/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>>>> >>>>> when i click, i get this: >>>>> >>>>> The requested object /pier/?_k=oNZufgluVsr03wYY&view=PRNotFoundView >>>>> was not found on this server. >>>>> >>>>> hopefully i have given you enough info to make heads or tails of this.. >>>>> >>>>> thanks! >>>>> >>>>> -- >>>>> ---- >>>>> peace, >>>>> sergio >>>>> photographer, journalist, visionary >>>>> >>>>> http://www.CodingForHire.com >>>>> http://www.coffee-black.com >>>>> http://www.painlessfrugality.com >>>>> http://www.twitter.com/sergio_101 >>>>> http://www.facebook.com/sergio101 >>>>> _______________________________________________ >>>>> Magritte, Pier and Related Tools ... >>>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>>> >>>> >>>> >>>> -- >>>> Lukas Renggli >>>> www.lukas-renggli.ch >>>> _______________________________________________ >>>> Magritte, Pier and Related Tools ... >>>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >>> >>> >>> >>> -- >>> ---- >>> peace, >>> sergio >>> photographer, journalist, visionary >>> >>> http://www.CodingForHire.com >>> http://www.coffee-black.com >>> http://www.painlessfrugality.com >>> http://www.twitter.com/sergio_101 >>> http://www.facebook.com/sergio101 >>> >>> _______________________________________________ >>> Magritte, Pier and Related Tools ... >>> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From sergiolist at village-buzz.com Sun Jan 22 23:36:51 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 17:36:51 -0500 Subject: pier: problems with links - chrome only? Message-ID: can someone in the wild look at this? the problems i am having seem to be chrome only, and i am not seeing them in safari.. if you go here: http://www.toaplacebehindthesun.com/blog/ and click the January 2012 (2) link, it errors out in chrome.. but works just fine in safari.. can anyone confirm this for me? thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From renggli at gmail.com Mon Jan 23 00:01:05 2012 From: renggli at gmail.com (Lukas Renggli) Date: Mon, 23 Jan 2012 00:01:05 +0100 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: Yeah, I can reproduce it with Chrome, FireFox. No problem with Safari and Opera though. Did you try to disable the session cookies? I suspect some problem with the redirect Pier 2.0 is doing. Lukas On 22 January 2012 23:36, sergio_101 wrote: > can someone in the wild look at this? > > the problems i am having seem to be chrome only, and i am not seeing > them in safari.. > > if you go here: > > http://www.toaplacebehindthesun.com/blog/ > > and click the January 2012 (2) link, it errors out in chrome.. > > but works just fine in safari.. > > can anyone confirm this for me? > > thanks! > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From sergiolist at village-buzz.com Mon Jan 23 02:18:17 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 22 Jan 2012 20:18:17 -0500 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: > > Did you try to disable the session cookies? I suspect some problem > with the redirect Pier 2.0 is doing. > ok! yes! i did .. i changed it.. as part my SOP, i always go in and change my 'use cookies' setting to 'true'.. i set it to false, and everything now works as it should.. i always change it to 'true' for several reasons.. i wrote this up awhile back, here: http://www.codingforhire.com/2011/02/getting-rid-of-session-data-in-piercms-urls/ can you let me know if the above was on the wrong track? thanks! > Lukas > > On 22 January 2012 23:36, sergio_101 wrote: >> can someone in the wild look at this? >> >> the problems i am having seem to be chrome only, and i am not seeing >> them in safari.. >> >> if you go here: >> >> http://www.toaplacebehindthesun.com/blog/ >> >> and click the January 2012 (2) link, it errors out in chrome.. >> >> but works just fine in safari.. >> >> can anyone confirm this for me? >> >> thanks! >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > Lukas Renggli > www.lukas-renggli.ch > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From nick.ager at gmail.com Mon Jan 23 16:00:25 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 23 Jan 2012 15:00:25 +0000 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: Hi Sergio, I think a change I made to try to solve another issue has caused this problem. I've reverted the change - assuming you have the latest Pier - try grabbing - Pier-Seaside-NickAger.526 Hope this works for you Nick On 23 January 2012 01:18, sergio_101 wrote: > > > > Did you try to disable the session cookies? I suspect some problem > > with the redirect Pier 2.0 is doing. > > > > ok! yes! i did .. i changed it.. as part my SOP, i always go in and > change my 'use cookies' setting to 'true'.. i set it to false, and > everything now works as it should.. > > i always change it to 'true' for several reasons.. i wrote this up > awhile back, here: > > > http://www.codingforhire.com/2011/02/getting-rid-of-session-data-in-piercms-urls/ > > can you let me know if the above was on the wrong track? > > thanks! > > Lukas > > > > On 22 January 2012 23:36, sergio_101 > wrote: > >> can someone in the wild look at this? > >> > >> the problems i am having seem to be chrome only, and i am not seeing > >> them in safari.. > >> > >> if you go here: > >> > >> http://www.toaplacebehindthesun.com/blog/ > >> > >> and click the January 2012 (2) link, it errors out in chrome.. > >> > >> but works just fine in safari.. > >> > >> can anyone confirm this for me? > >> > >> thanks! > >> > >> -- > >> ---- > >> peace, > >> sergio > >> photographer, journalist, visionary > >> > >> http://www.CodingForHire.com > >> http://www.coffee-black.com > >> http://www.painlessfrugality.com > >> http://www.twitter.com/sergio_101 > >> http://www.facebook.com/sergio101 > >> _______________________________________________ > >> Magritte, Pier and Related Tools ... > >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > > > > > -- > > Lukas Renggli > > www.lukas-renggli.ch > > _______________________________________________ > > Magritte, Pier and Related Tools ... > > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > -- > ---- > peace, > sergio > photographer, journalist, visionary > > http://www.CodingForHire.com > http://www.coffee-black.com > http://www.painlessfrugality.com > http://www.twitter.com/sergio_101 > http://www.facebook.com/sergio101 > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Mon Jan 23 20:06:48 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 23 Jan 2012 19:06:48 +0000 Subject: PRContext, PRContextFilter, cookies enabled, component creation and Restful urls Message-ID: Hi, Today I checked-in a fix which reverts a change I made to try to stop multiple PRContextFilter s being added to the session filter chain. Unfortunately the fix caused unintended side-effects, which I believe contributed to the problems Sergio mentioned. Hopefully the reversion should fix some or all of these problems. However there's still an issue with the interaction of PRContext, PRContextFilter, cookies, component creation and Restful urls. To illustrate the issue execute the following: createSimplestPierPRContextFilterIssue | app rootPage | rootPage := (PRPage named: 'rootPage') contents: '+counter+'; yourself. rootPage localEnvironment: ((PRComponent named: 'contents') componentClass: PRContentsWidget; yourself). rootPage addChild: ((PRComponent named: 'counter') componentClass: WACounter; yourself). app := PRPierFrame registerAsApplication: 'contexttest' kernel: (PRKernel named: 'contexttest' root: rootPage). then browse to http://localhost:8080/contexttest You should see a counter instance. Increment the value of the counter once. Then in a new window/tab of the same browser, browse to same url (http://localhost:8080/contexttest) and decrement the value of the counter once. Now return to the original value and increment again - the counter displays the value "-1" rather than "2". If I try the same test in Pier 1, (note in Pier 1 you'll have to manually enable cookies through the /config), when I first browse to the second tab, the counter already displays "1". What's happening? In the Pier 2 case: * PRPierFrame>>#initialRequest is called for every Restful url. There is no distinction between a call when a new session has been created and a call with an existing session. * In PRPierFrame>>#initialRequest a new PRContextFilter is added to the session: "self session addFilter: (PRContextFilter on: self)" * In WASession>>#handleFiltered: aRequestContext, if there is no continuation key, #start is called on the session, which creates a new root component - in this case a new PRPierFrame. * So every time we browse to a Restful url a new PRPierFrame is created which holds the PRContext. This context is then "held" by the PRContextFilter. What does this mean in our counter example: In the first tab a new session is created, a new PRPierFrame, a new PRContextFilter and a new WACounter instance are created. The link to increment the counter contains a continuation key so #initialRequest isn't called and callback is fired incrementing the counter which in turn displays "1". In the second tab the session already exists, however without a continuation key a new PRPierFrame, a new PRContextFilter and a new WACounter instance are created. Decrementing the counter decrements it on the new WACounter instance. Now returning to the first tab we again try to increment the counter. The callback on the first component created is called and the counter is incremented. However in the rendering phase, the second component created in the second tab is displayed, with it's counter unincremented and set to "-1". What are the problems: * There is no distinction between #initialRequest called with a newly created session and #initialRequest called from a session recovered via a cookie. Neither is there an obvious way of detecting for which case #initialRequest has been called. * Within WASession>>#handleFiltered: if no continuation key exists a new root component is created. * A new PRContextFilter is added for each Restful call. Two possible solutions: * A new PRPierFrame is only created when a new session is created. This should then function as Pier 1. However if the root presenter is exchanged in one open tab e.g. with a #call or #show on the root, then other open tabs will not operate as intended. The implementation would I think require a custom session with a custom #handleFiltered: or alternatively a modified WASession which allows configurable behaviour when there's no continuation key. * If however we want to allow for multiple components so that state isn't maintained between two identical Restful - that is both counters start at 0. Then we could move PRContext into the session, and remove the PRContextFilter. I hope this makes sense I've I understood the situation correctly. Any thoughts? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Tue Jan 24 14:10:35 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 24 Jan 2012 13:10:35 +0000 Subject: Pier port to Magritte with pragmas Message-ID: Hi, I've checked-in an initial port of Pier using Magritte with pragma support into: http://source.lukas-renggli.ch/pier2unstable - all tests are green and with a cursory test everything appears to be functioning as before. The port includes the following packages: pier-model pier-seaside pier-security pier-pharo-model pier-pharo-persistency pier-tests-model pier-test-security and the following add ons: pier-blog pier-book pier-setup pier-google pier-documents Next steps: 1) Be great if people can try the initial port and report any errors or different behaviour 2) If success with 1) perhaps we can move to new repositories (e.g. Magritte3, Pier3, Pier3addons) 3) Continue porting addons. There are many add-ons in both http://source.lukas-renggli.ch/pieraddons and http://source.lukas-renggli.ch/pier2addons that would be great to port. 4) Document the changes to Magritte and how they effect Pier. Porting guide: *1) search for all instances of #description if they are magritte descriptions rename the method #magritteDescription 2) remove #magritteDynamic and remove the block around the method. 3) Use the refactoring support to move class-side descriptions to instance side descriptions with pragmas - making sure that any accessors to class side methods are either prefixed with ?class? or moved to the instance side. If you move description help methods to instance side be careful if they contain context := PRCurrentContext value - context will shadow an instance variable of the same name so either replace context with self context and remove context := PRCurrentContext value or rename context say theContext and replace context := PRCurrentContext value with theContext := self context. 4) Remove any empty categories on the class side.* *5) PRWidget derived classes should either by modified to be derived from PRWidgetPropertyBase or keep derived from **PRWidget but modify the accessors to store state in instance variable rather than the property dictionary in **PRWidgetPropertyBase. See PRViewsWidget and PRSearchWidget for examples of both types of port.* *6) Modify structure initialisation with PRComponent to use prototype instance rather than classes. So* * (PRComponent named: 'contents') componentClass: PRContentsWidget; write: '%c' using: PRContentsWidget descriptionHeading; yourself becomes to: (PRComponent named: 'contents') prototypeInstance: (PRContentsWidget new heading: '%c'; yourself) ** yourself ** you may well have to add setters to allow initial settings to be set on the prototype instances again see **PRViewsWidget and **PRSearchWidget for examples.* *7) P**ut a break point in Object>>description and Object class>>description to trap any cases you?ve missed (the break-point should not be hit) and check the add-on.* * * *Hope this makes sense* * * *Nick* * * -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: MagrittePackageRefactoring.png Type: image/png Size: 65396 bytes Desc: not available URL: From yanni at rogers.com Wed Jan 25 06:40:50 2012 From: yanni at rogers.com (Yanni Chiu) Date: Wed, 25 Jan 2012 00:40:50 -0500 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On 24/01/12 8:10 AM, Nick Ager wrote: > 1) Be great if people can try the initial port and report any errors or > different behaviour I was able to build and run it on a recent Pharo-1.4 image. Next, I'll try to port my code. From yanni at rogers.com Thu Jan 26 06:32:09 2012 From: yanni at rogers.com (Yanni Chiu) Date: Thu, 26 Jan 2012 00:32:09 -0500 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On 25/01/12 12:40 AM, Yanni Chiu wrote: > Next, I'll try to port my code. Following the porting hints, most everything went smoothly. As I expected, the trouble arose in areas where I was creating instance-based magritte descriptions. In my PRComponent subclasses I was already creating prototype instance, it seems. I tried a few things to fix things up, but could not get everything to work right yet. I'm not going to complete the port until it becomes clear what the timeline is for adopting the new code, because I don't want to maintain two code streams. The new pragma approach looks good though. From nick.ager at gmail.com Thu Jan 26 11:27:47 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 26 Jan 2012 10:27:47 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Yanni, As I expected, the trouble arose in areas where I was creating > instance-based magritte descriptions. In my PRComponent subclasses I was > already creating prototype instance, it seems. I tried a few things to fix > things up, but could not get everything to work right yet. > That's interesting I've never derived from PRComponent, always PRWidget or PRViewComponent I'm not going to complete the port until it becomes clear what the timeline > is for adopting the new code, because I don't want to maintain two code > streams. > I guess the only impediment to adopting the new code is ensuring it doesn't introduce any nasty bugs - the more people testing it - the more confident we can be. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From davorin.rusevljan at gmail.com Thu Jan 26 11:50:05 2012 From: davorin.rusevljan at gmail.com (Davorin Rusevljan) Date: Thu, 26 Jan 2012 11:50:05 +0100 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On Thu, Jan 26, 2012 at 11:27 AM, Nick Ager wrote: > I guess the only impediment to adopting the new code is ensuring it doesn't > introduce any nasty bugs - the more people testing it - the more confident > we can be. Well, once the dust settles, I guess migrating old pier instances people are using could raise all kind of strange issues. (not that I am ungratefull for progress :) Davorin Rusevljan http://www.cloud208.com/ From nick.ager at gmail.com Thu Jan 26 12:28:01 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 26 Jan 2012 11:28:01 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Davorin, Well, once the dust settles, I guess migrating old pier instances > people are using could raise all kind of strange issues. (not that I > am ungratefull for progress :) > That's a great point. One of the issues with Pier is how to upgrade to a new version - I found this particularly challenging on Gemstone as I ended up with multiple version of the same class (#classHistory size ~= 1) which caused strange bugs with class equality checks in the code-base. One idea I came up with is to build an exporter which generates Pier kernel creation code based on the data currently in Pier - it's a lazy design as I only have to write an exporter not an importer. I've used it successfully on a few smaller projects but have yet to try it on more substantial projects. The code is available in http://source.lukas-renggli.ch/pier2addons - package Pier-Exporter-Code. To use it: PRKernelCodeExporter exportKernel: (PRKernel instances detect: [: each | > each name = 'pier']). The exporter generates PierKernelCreator and the kernel can be recreated with: PierKernelCreator new createKernel A Pier upgrade procedure could then be: 1) load PRKernelCodeExporter 2) export your kernel to code 3) try to regenerate your kernel 4) if 3 is successful then export the created code; PierKernelCreator 5) load PierKernelCreator and any of your custom Pier code into a Pier image with pragma support 6) Ensure that all add ons you use have been ported, including any of your own code using the porting guide outlined at the start of this thread. I will add PRKernelCodeExporter class>>#exportMigratedKernel: which will generate #prototypeInstance initialisation for PRComponents, but first I'd like feedback if people think this approach is worth pursuing in theory and if so, in practice does the PRKernelCodeExporter work on your existing kernels? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From davorin.rusevljan at gmail.com Thu Jan 26 15:29:06 2012 From: davorin.rusevljan at gmail.com (Davorin Rusevljan) Date: Thu, 26 Jan 2012 15:29:06 +0100 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On Thu, Jan 26, 2012 at 12:28 PM, Nick Ager wrote: > Hi Davorin, > > One idea I came up with is to build an exporter which generates Pier kernel > creation code based on the data currently in Pier - it's a lazy design as I > only have to write an exporter not an importer. I've used it successfully on > a few smaller projects but have yet to try it on more substantial projects. ... > I will add PRKernelCodeExporter class>>#exportMigratedKernel: which will > generate #prototypeInstance initialisation for PRComponents, but first I'd > like feedback if people think this approach is worth pursuing in theory and > if so, in practice does the?PRKernelCodeExporter work on your existing > kernels? I can not look at it more deeply now, but it seems to me like a good idea, because if something goes wrong with import (if being close to rhetorical;), one would probably be able to hack the generated code by hand until it can create valid PRKernel instance. Which might be simpler than hacking the binary representation in file, or transforming the somehow mis-loaded object tree in memory. I have one ancient Pier 1.x kernel on which I might try that, once I find some time. Do you think that PRKernelCodeExporter might have a chance working on old kernels (there has been some variables additions, removing, etc). Davorin http://www.cloud208.com/ From yanni at rogers.com Thu Jan 26 17:12:20 2012 From: yanni at rogers.com (Yanni Chiu) Date: Thu, 26 Jan 2012 11:12:20 -0500 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On 26/01/12 5:27 AM, Nick Ager wrote: > > That's interesting I've never derived from PRComponent, always PRWidget > or PRViewComponent It's possible that I didn't know what I was doing at the time (i.e. just learning how to use Pier). I should look into it. From dhenrich at vmware.com Thu Jan 26 18:17:28 2012 From: dhenrich at vmware.com (Dale Henrichs) Date: Thu, 26 Jan 2012 09:17:28 -0800 (PST) Subject: Pier port to Magritte with pragmas In-Reply-To: Message-ID: <1282893606.127852.1327598248560.JavaMail.root@zimbra-prod-mbox-2.vmware.com> Nick, Yes I seem to recall that Pier was using the class as an index into a collection or the hash of the class was used in an equality comparison and in GemStone class identity is just not preserved over time, so different class versions have different hash values ... Maybe we should tackle these issues sometime, or have you found your exporter to be a better solution? Dale ----- Original Message ----- | From: "Nick Ager" | To: "Pier and Related Tools Magritte ..." | Sent: Thursday, January 26, 2012 3:28:01 AM | Subject: Re: Pier port to Magritte with pragmas | | | Hi Davorin, | | | | | | | | Well, once the dust settles, I guess migrating old pier instances | people are using could raise all kind of strange issues. (not that I | am ungratefull for progress :) | | | | That's a great point. One of the issues with Pier is how to upgrade | to a new version - I found this particularly challenging on Gemstone | as I ended up with multiple version of the same class (#classHistory | size ~= 1) which caused strange bugs with class equality checks in | the code-base. | | | One idea I came up with is to build an exporter which generates Pier | kernel creation code based on the data currently in Pier - it's a | lazy design as I only have to write an exporter not an importer. | I've used it successfully on a few smaller projects but have yet to | try it on more substantial projects. | | | The code is available in http://source.lukas-renggli.ch/pier2addons - | package Pier-Exporter-Code. | | | To use it: | | | | PRKernelCodeExporter exportKernel: (PRKernel instances detect: [: | each | each name = 'pier']). | | | The exporter generates PierKernelCreator | | | and the kernel can be recreated with: | | | | PierKernelCreator new createKernel | | | A Pier upgrade procedure could then be: | | | 1) load PRKernelCodeExporter | 2) export your kernel to code | 3) try to regenerate your kernel | 4) if 3 is successful then export the created code; PierKernelCreator | 5) load PierKernelCreator and any of your custom Pier code into a | Pier image with pragma support | 6) Ensure that all add ons you use have been ported, including any of | your own code using the porting guide outlined at the start of this | thread. | | | I will add PRKernelCodeExporter class>>#exportMigratedKernel: which | will generate #prototypeInstance initialisation for PRComponents, | but first I'd like feedback if people think this approach is worth | pursuing in theory and if so, in practice does the | PRKernelCodeExporter work on your existing kernels? | | | Nick | | | _______________________________________________ | Magritte, Pier and Related Tools ... | https://www.iam.unibe.ch/mailman/listinfo/smallwiki From nick.ager at gmail.com Thu Jan 26 21:36:42 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 26 Jan 2012 20:36:42 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: <1282893606.127852.1327598248560.JavaMail.root@zimbra-prod-mbox-2.vmware.com> References: <1282893606.127852.1327598248560.JavaMail.root@zimbra-prod-mbox-2.vmware.com> Message-ID: Hi Dale, Yes I seem to recall that Pier was using the class as an index into a > collection or the hash of the class was used in an equality comparison and > in GemStone class identity is just not preserved over time, so different > class versions have different hash values ... Maybe we should tackle these > issues sometime, or have you found your exporter to be a better solution? I think having both would be ideal - an exporter and the ability to safely upgrade in-place. I had a problem upgrading my Pier instance on Gemstone when classes that are held in an instance variable change shape. The situation should be slightly better with Migritte with pragmas as PRComponent now holds a prototype instance rather than a componentClass. However there are other places that hold a class then check for equality e.g. PUSecurity, PUPermission Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Fri Jan 27 00:03:28 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 26 Jan 2012 23:03:28 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Davorin, I have one ancient Pier 1.x kernel on which I might try that, once I > find some time. Do you think that PRKernelCodeExporter might have a > chance working on old kernels (there has been some variables > additions, removing, etc). I've only tried it on a few Pier 2 kernels. Today I've made some revisions to the code to hopefully make it more compatible with Pier 1.x kernels, however you will at least need to modify a method #compile:into:classified: which uses grease's GRPlatform that is only available with Seaside 3.0. There are probably other issues with exporting Pier 1.x kernels - be great for someone to try and see how useful the code is. I've made a couple of other changes: * Renamed PRKernelCodeExporter to PRPier2CodeExporter to be explicit that it's designed for Pier 2 with Magritte 2 and will have to be modified for exporting for Pier with Magritte pragmas (though it should work with Pier 1 and Magritte 1 with the above caveats) * added PRPier2CodeExporter>>#exportMigratedKernel: to export the kernel in a form ready for Pier with Magritte pragmas - the behaviour of PRComponent based structures is changed to use the new #prototypeInstance: rather than #write:using: semantics. So to check how well the exporter will work with your existing kernel: PRPier2CodeExporter exportKernel: (PRKernel instances detect: [: each | > each name = 'pier']). If the exporter works OK then prepare to upgrade with: PRPier2CodeExporter exportMigratedKernel: (PRKernel instances detect: [: > each | each name = 'pier']). Two major caveats: 1) the exporter currently doesn't export owner, group or other permissioning details on the structures. 2) the exporter current doesn't export the users of the kernel. Both are quite possible to do, I just haven't got round to it yet. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Fri Jan 27 04:47:11 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Thu, 26 Jan 2012 22:47:11 -0500 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: okay, i am gonna have to do something.. there is a pretty big problem somewhere with this thing.. some sites load up the stylesheet, some don't.. and different problems with browser/locations.. do i just use monticello to update? now, i really wish i would have gone with my gut and uploaded my image with remote desktop installed.. On Mon, Jan 23, 2012 at 10:00 AM, Nick Ager wrote: > Hi Sergio, > > I think a change I made to try to solve another issue has caused this > problem. I've reverted the change - assuming you have the latest Pier - try > grabbing -?Pier-Seaside-NickAger.526 > > Hope this works for you > > Nick > > > On 23 January 2012 01:18, sergio_101 wrote: >> >> > >> > Did you try to disable the session cookies? I suspect some problem >> > with the redirect Pier 2.0 is doing. >> > >> >> ok! yes! i did .. i changed it.. as part my SOP, i always go in and >> change my 'use cookies' setting to 'true'.. i set it to false, and >> everything now works as it should.. >> >> i always change it to 'true' for several reasons.. i wrote this up >> awhile back, here: >> >> >> http://www.codingforhire.com/2011/02/getting-rid-of-session-data-in-piercms-urls/ >> >> can you let me know if the above was on the wrong track? >> >> thanks! >> > Lukas >> > >> > On 22 January 2012 23:36, sergio_101 >> > wrote: >> >> can someone in the wild look at this? >> >> >> >> the problems i am having seem to be chrome only, and i am not seeing >> >> them in safari.. >> >> >> >> if you go here: >> >> >> >> http://www.toaplacebehindthesun.com/blog/ >> >> >> >> and click the January 2012 (2) link, it errors out in chrome.. >> >> >> >> but works just fine in safari.. >> >> >> >> can anyone confirm this for me? >> >> >> >> thanks! >> >> >> >> -- >> >> ---- >> >> peace, >> >> sergio >> >> photographer, journalist, visionary >> >> >> >> http://www.CodingForHire.com >> >> http://www.coffee-black.com >> >> http://www.painlessfrugality.com >> >> http://www.twitter.com/sergio_101 >> >> http://www.facebook.com/sergio101 >> >> _______________________________________________ >> >> Magritte, Pier and Related Tools ... >> >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> > >> > >> > >> > -- >> > Lukas Renggli >> > www.lukas-renggli.ch >> > _______________________________________________ >> > Magritte, Pier and Related Tools ... >> > https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> >> >> >> -- >> ---- >> peace, >> sergio >> photographer, journalist, visionary >> >> http://www.CodingForHire.com >> http://www.coffee-black.com >> http://www.painlessfrugality.com >> http://www.twitter.com/sergio_101 >> http://www.facebook.com/sergio101 >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From nick.ager at gmail.com Fri Jan 27 08:26:41 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 27 Jan 2012 07:26:41 +0000 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: Hi Sergio, do i just use monticello to update? > I haven't updated ConfigurationOfPier2 yet to take the latest changes so Monticello is the way to go. I assume you are using a recent image, in which case it should just be a matter of using Monticello to load Pier-Seaside-NickAger.526. now, i really wish i would have gone with my gut and uploaded my image > with remote desktop installed.. > Do you have a local configuration that mirrors your server configuration - that way you can minimise or eliminate remote configuration. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Fri Jan 27 08:57:52 2012 From: renggli at gmail.com (Lukas Renggli) Date: Fri, 27 Jan 2012 08:57:52 +0100 Subject: PRContext, PRContextFilter, cookies enabled, component creation and Restful urls In-Reply-To: References: Message-ID: > What's happening? In the Pier 2 case: > * PRPierFrame>>#initialRequest is called for every Restful url. There is no > distinction between a call when a new session has been created and a call > with an existing session. Is this the correct behavior? Looks like a bug in Seaside, it should only call #initialRequest: when the session object is created. Julian might know more ... > * In?PRPierFrame>>#initialRequest a new PRContextFilter is added to the > session: "self session?addFilter: (PRContextFilter on: self)" I see, there are countless filters added. Now it would be easy to detect if a filter is already present, but then the root cause seems to be somewhere else ... > * In?WASession>>#handleFiltered: aRequestContext,?if there is no > continuation key, #start is called on the session, which creates a new root > component - in this case a new PRPierFrame. That's a Seaside bug, no? > * So every time we browse to a Restful url a new PRPierFrame is created > which holds the PRContext. This context is then "held" by the > PRContextFilter. PRPierFrame should be preserved, because it is stageful. With and without cookies. > * A new PRPierFrame is only created when a new session is created. This > should then function as Pier 1. However if the root presenter is exchanged > in one open tab e.g. with a #call or #show on the root, then other open tabs > will not operate as intended. The root presenter is backtracked, so this should be fine. > The implementation would I think require a > custom session with a custom #handleFiltered: or alternatively a modified > WASession which allows configurable behaviour when there's no continuation > key. I think the current behavior of WASession is broken. Does the plain Seaside counter without Pier work at all if cookies are enabled? > * If however we want to allow for multiple components so that state isn't > maintained between two identical Restful - that is both counters start at 0. > Then we could move PRContext into the session, and remove the > PRContextFilter. All components should preserve their state across their session. Also I would try to avoid depending on a specific WASession, that was a big problem in Pier 1 because you could not easily use it in your own application (for example as a help or documentation system). Lukas -- Lukas Renggli www.lukas-renggli.ch From davorin.rusevljan at gmail.com Fri Jan 27 11:19:40 2012 From: davorin.rusevljan at gmail.com (Davorin Rusevljan) Date: Fri, 27 Jan 2012 11:19:40 +0100 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On Fri, Jan 27, 2012 at 12:03 AM, Nick Ager wrote: > Hi?Davorin, > So to check how well the exporter will work with your existing kernel: Ok so , as you have4 anticipated one source of problems with exporting pier1 kernel was that exporter is dependent on Grease, and for some reason I can not load Grease into my pier 1.1.1 image (metacello fails to bootstrap itself). So I have created Dummy GRObject, which let me load exporter package. Next obstacle was that PRStructure was missing absolutePath method, so I copied one from Pier2. After that I had to implement greaseString on Object. And here I think I have stuck, code generator spits the code with syntax error, seems like way too many apostrophes smugle in: mainenvironment | structure | structure := PRPage named: 'mainenvironment'. structure title: #('_''M''a''i''n'' ''E''n''v''i''r''o''n''m''e''n''t'). structure contents: #('<''d''i''v'' ''c''l''a''s''s''=''"''c''o''n''t''a''i''n''e''r''"''>''\r''\t''+''/''e''n''v''i''r''o''n''m''e''n''t''/''h''e'' .... It could be because I do not have proper Grease, but more likely it could also be result of using WAKomEncoded, and something funny going on with unicode characters. So maybe it would be good idea if someone has encoded 2.0 kernel to check with it, since maybe there is problem also. I do not have many pages, so I guess old fashioned manual migration will also work :) What worries me is that I also have "live" counter example inside pier blog, and I am not sure how and if will it make to new pier with cookies (if I am understanding the discussion in other thread about sessions) For the new Pier3 does it work in Pharo 1.3 or 1.4? Thanks! Davorin Rusevljan http://www.cloud208.com/ From nick.ager at gmail.com Fri Jan 27 11:34:49 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 27 Jan 2012 10:34:49 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: Hi Davorin, Thanks for the report. When I get the chance I'll try it on a Pier 1.x kernel and see if there are some simple things I can do to fix the exporter for Pier 1.x and Seaside 2.8. Of course there are other export and import methods which may work for you. What worries me is that I also have "live" counter > example inside pier blog, and I am not sure how and if will it make to > new pier with cookies (if I am understanding the discussion in other > thread about sessions) > It will work - just currently with the Pier 2 code base the state will be reset for each RESTful call. > For the new Pier3 does it work in Pharo 1.3 or 1.4? > Currently I've only tested on Pharo 1.3, but I guess there will be some of us who want it to work on Pharo 1.4 so I'm sure someone will fix any (if any) issues Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From davorin.rusevljan at gmail.com Fri Jan 27 11:45:30 2012 From: davorin.rusevljan at gmail.com (Davorin Rusevljan) Date: Fri, 27 Jan 2012 11:45:30 +0100 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: On Fri, Jan 27, 2012 at 11:34 AM, Nick Ager wrote: > Hi?Davorin, > > Thanks for the report. When I get the chance I'll try it on a Pier 1.x > kernel and see if there are some simple things I can do to fix the exporter > for Pier 1.x and Seaside 2.8. Of course there are other export and import > methods which may work for you. Yes, I do not think you should waste more time on 1.0 since it is rare case, and I have other options. But checking exporter on Encoded 2.0 kernel might be a good idea. > It will work - just currently with the Pier 2 code base the state will be > reset for each RESTful call. hm - so when blog reader clicks on + in the example, the counter would not actually increase as advertised? :) I think I will need to get rid of that example. Davorin From nick.ager at gmail.com Fri Jan 27 11:56:16 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 27 Jan 2012 10:56:16 +0000 Subject: Pier port to Magritte with pragmas In-Reply-To: References: Message-ID: > hm - so when blog reader clicks on + in the example, the counter would > not actually increase as advertised? :) I think I will need to get rid > of that example. No it *will* work. The issue (currently) in Pier 2 is if you have cookies enabled and you return to the same blog/blog post via a RESTful url the counter will be reset to zero. This is different to the behaviour in Pier 1.x where the counter maintains it's state when cookies are enabled between RESTful calls. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Fri Jan 27 15:26:58 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 27 Jan 2012 14:26:58 +0000 Subject: PRContext, PRContextFilter, cookies enabled, component creation and Restful urls In-Reply-To: References: Message-ID: Hi Lukas, Thanks for the reply. Looking again at the issues they are more Seaside bugs than Pier bugs. Or rather the Seaside bugs should be resolved first, then any outstanding Pier bugs can be addressed. I've posted on the Seaside-dev list - using a cookie enabled WACounter as the example. There is one issue that could simplify things in the meantime: > > * If however we want to allow for multiple components so that state isn't > > maintained between two identical Restful - that is both counters start > at 0. > > Then we could move PRContext into the session, and remove the > > PRContextFilter. > > All components should preserve their state across their session. Also > I would try to avoid depending on a specific WASession, that was a big > problem in Pier 1 because you could not easily use it in your own > application (for example as a help or documentation system). > PRContext could be stored in a WASession property and still allow Pier to be used by Seaside apps. Storing in a session property would prevent two or more Pier instances being used within a Seaside app - although the current PRContextFilter won't work properly in that situation either. By adding PRContext as a session property PRContextFilter wouldn't be necessary and the code simplified. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Sat Jan 28 16:44:01 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 28 Jan 2012 10:44:01 -0500 Subject: pier: problems with links - chrome only? In-Reply-To: References: Message-ID: > > Do you have a local configuration that mirrors your server configuration - > that way you can minimise or eliminate remote configuration. > not in the current state of content.. i usually have one around that is stripped down and ready to go, but i forgot to put the remote desktop in there.. -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 From b.prior at ieee.org Sat Jan 28 20:46:52 2012 From: b.prior at ieee.org (Bruce Prior) Date: Sat, 28 Jan 2012 11:46:52 -0800 Subject: Magritte "First Example" in Seaside Book Message-ID: <4F2450AC.6040408@ieee.org> I have been working on understanding Magritte and tried the First Example in the Seaside Book (Lulu publication, page 358, section 24.2). The Example failed to run, apparently because the method keyword, accessor:, in the descriptions wasn't recognized. When I added my own getters and setters for the instance variable names (street, plz, etc) everything in the Example worked fine. Is the code in the Example perhaps outdated? Could someone suggest what method I might use? I tried asAccessor: and selectorAccessor: with no success. -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Sun Jan 29 11:57:51 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 29 Jan 2012 11:57:51 +0100 Subject: Magritte "First Example" in Seaside Book In-Reply-To: <4F2450AC.6040408@ieee.org> References: <4F2450AC.6040408@ieee.org> Message-ID: Hi Bruce, As the instructions say (http://book.seaside.st/book/advanced/magritte/first-examples) you need to create the accessors for the instance variables. For the missing method #accessor: I don't know. This method was not always there, but unless you use a version that is older than 2009 you should have it. Please always state the Smalltalk Platform, Seaside and Magritte versions you use. Lukas On 28 January 2012 20:46, Bruce Prior wrote: > I have been working on understanding Magritte and tried the First Example in > the Seaside Book (Lulu publication, page 358, section 24.2). > > The Example failed to run, apparently because the method keyword, accessor:, > in the descriptions wasn't recognized. When I added my own getters and > setters for the instance variable names (street, plz, etc) everything in the > Example worked fine. > > Is the code in the Example perhaps outdated? Could someone suggest what > method I might use? I tried asAccessor: and selectorAccessor: with no > success. > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- Lukas Renggli www.lukas-renggli.ch From estebanlm at gmail.com Sun Jan 29 21:44:45 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 29 Jan 2012 17:44:45 -0300 Subject: pier2 loaded successfully on Pharo 1.4 Message-ID: <28BF3674-2221-4C5B-ABC8-9A68BE945EAA@gmail.com> Hi, with seaside 3.0 fixed (as I send in another mail), I can report that pier2 loads and runs out of the box on pharo 1.4 best, Esteban From estebanlm at gmail.com Sun Jan 29 21:46:39 2012 From: estebanlm at gmail.com (Esteban Lorenzano) Date: Sun, 29 Jan 2012 17:46:39 -0300 Subject: pier2 loaded successfully on Pharo 1.4 In-Reply-To: <28BF3674-2221-4C5B-ABC8-9A68BE945EAA@gmail.com> References: <28BF3674-2221-4C5B-ABC8-9A68BE945EAA@gmail.com> Message-ID: <6F92A8CB-3ACD-415F-85C7-C1C0BCE87D6F@gmail.com> oops... that's not completely true... there is a problem with one of the persistence strategies, because pharo 1.4 removes image segment. but all the rest is working fine :) El 29/01/2012, a las 5:44p.m., Esteban Lorenzano escribi?: > Hi, > > with seaside 3.0 fixed (as I send in another mail), I can report that pier2 loads and runs out of the box on pharo 1.4 > > best, > Esteban From sergiolist at village-buzz.com Mon Jan 30 18:59:02 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 30 Jan 2012 12:59:02 -0500 Subject: which vm to use for pier Message-ID: i have two new pier sites going up, and i am not sure where the issue is, but the headless server seems to die after a few hours.. i got the vm from one of the cog prebuilt binaries, but i would have to go searching around to find out where.. the details are: VM Version: Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.140] VM Type: 32bit Endianness: little anyway.. i was wondering which one everyone was currently using on their deployed systems.. thanks! -- ---- peace, sergio photographer, journalist, visionary http://www.CodingForHire.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101