From nick.ager at gmail.com Thu Feb 2 20:59:45 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 2 Feb 2012 19:59:45 +0000 Subject: Magritte 3 Pier 3 Message-ID: Hi, I've completed an initial port of Pier to Magritte with pragma instance side descriptions - now known as Magritte 3. The Pier port is now named Pier 3. In addition to base systems I've ported the following: Magritte 3 ported addons: -------- Magritte-Json MAgritte-XMLBinding Pier 3 ported addons: ----- Pier-Admin Pier-Blog Pier-Book Pier-Desihn Pier-Documents Pier-EditorEnh Pier-FileUpload-* Pier-Google Pier-JQuery Pier-Kernel-Distributions Pier-LinkChecker Pier-Shout Pier-Wysiwyg Pier-Exporter-Code Pier-Randomizer Pier-Setup Pier-Twitter Note I've moved the Pier-Blog and Pier-Book to the Pier 3 add-ons repository (http://source.lukas-renggli.ch/pier3addons) The repositories are: http://source.lukas-renggli.ch/pier3 http://source.lukas-renggli.ch/magritte3 http://source.lukas-renggli.ch/magritte3addons http://source.lukas-renggli.ch/pier3addons Note: I've deleted "Pier 2 unstable" and "Magritte 2 unstable" repositories - all the code has migrated to the repositories above. There are four supporting configurations: ConfigurationOfMagritte3 ConfigurationOfMagritte3AddOns ConfigurationOfPier3 ConfigurationOfPier3AddOns Try it out with: Gofer it squeaksource: 'MetacelloRespository'; package: 'ConfigurationOfPier3AddOns'; load. ConfigurationOfPier3AddOns project stableVersion load: 'Pier-Admin' the above will pull in a significant portion of the add ons and core libraries and give you a sense of how stable the code is. Caveats: ---- All the tests are green, but I've only applied limited testing. I've tested the above 'Pier-Admin' loading on a clean Pharo 1.3 image. I've removed the Gemstone information from the configurations. I guess once everything is stable on Pharo we can consider a Gemstone port. Let me know how you get on Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From tudor at tudorgirba.com Fri Feb 3 07:12:59 2012 From: tudor at tudorgirba.com (Tudor Girba) Date: Fri, 3 Feb 2012 07:12:59 +0100 Subject: Magritte 3 Pier 3 In-Reply-To: References: Message-ID: Fantastic work :) Doru On 2 Feb 2012, at 20:59, Nick Ager wrote: > Hi, > > I've completed an initial port of Pier to Magritte with pragma instance side descriptions - now known as Magritte 3. The Pier port is now named Pier 3. > In addition to base systems I've ported the following: > > Magritte 3 ported addons: > -------- > Magritte-Json > MAgritte-XMLBinding > > > Pier 3 ported addons: > ----- > Pier-Admin > Pier-Blog > Pier-Book > Pier-Desihn > Pier-Documents > Pier-EditorEnh > Pier-FileUpload-* > Pier-Google > Pier-JQuery > Pier-Kernel-Distributions > Pier-LinkChecker > Pier-Shout > Pier-Wysiwyg > Pier-Exporter-Code > Pier-Randomizer > Pier-Setup > Pier-Twitter > > Note I've moved the Pier-Blog and Pier-Book to the Pier 3 add-ons repository (http://source.lukas-renggli.ch/pier3addons) > > The repositories are: > > http://source.lukas-renggli.ch/pier3 > http://source.lukas-renggli.ch/magritte3 > http://source.lukas-renggli.ch/magritte3addons > http://source.lukas-renggli.ch/pier3addons > > Note: I've deleted "Pier 2 unstable" and "Magritte 2 unstable" repositories - all the code has migrated to the repositories above. > > There are four supporting configurations: > ConfigurationOfMagritte3 > ConfigurationOfMagritte3AddOns > ConfigurationOfPier3 > ConfigurationOfPier3AddOns > > Try it out with: > > Gofer it > squeaksource: 'MetacelloRespository'; > package: 'ConfigurationOfPier3AddOns'; > load. > > ConfigurationOfPier3AddOns project stableVersion load: 'Pier-Admin' > > the above will pull in a significant portion of the add ons and core libraries and give you a sense of how stable the code is. > > Caveats: > ---- > All the tests are green, but I've only applied limited testing. > I've tested the above 'Pier-Admin' loading on a clean Pharo 1.3 image. > I've removed the Gemstone information from the configurations. I guess once everything is stable on Pharo we can consider a Gemstone port. > > Let me know how you get on > > Nick > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki -- www.tudorgirba.com "Problem solving efficiency grows with the abstractness level of problem understanding." From nick.ager at gmail.com Fri Feb 3 08:14:31 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 3 Feb 2012 07:14:31 +0000 Subject: Magritte 3 Pier 3 In-Reply-To: References: Message-ID: Opps typo that should be: Gofer it squeaksource: '*MetacelloRepository*'; package: 'ConfigurationOfPier3AddOns'; load. ConfigurationOfPier3AddOns project stableVersion load: 'Pier-Admin' On 3 February 2012 06:12, Tudor Girba wrote: > Fantastic work :) > > Doru > > > On 2 Feb 2012, at 20:59, Nick Ager wrote: > > > Hi, > > > > I've completed an initial port of Pier to Magritte with pragma instance > side descriptions - now known as Magritte 3. The Pier port is now named > Pier 3. > > In addition to base systems I've ported the following: > > > > Magritte 3 ported addons: > > -------- > > Magritte-Json > > MAgritte-XMLBinding > > > > > > Pier 3 ported addons: > > ----- > > Pier-Admin > > Pier-Blog > > Pier-Book > > Pier-Desihn > > Pier-Documents > > Pier-EditorEnh > > Pier-FileUpload-* > > Pier-Google > > Pier-JQuery > > Pier-Kernel-Distributions > > Pier-LinkChecker > > Pier-Shout > > Pier-Wysiwyg > > Pier-Exporter-Code > > Pier-Randomizer > > Pier-Setup > > Pier-Twitter > > > > Note I've moved the Pier-Blog and Pier-Book to the Pier 3 add-ons > repository (http://source.lukas-renggli.ch/pier3addons) > > > > The repositories are: > > > > http://source.lukas-renggli.ch/pier3 > > http://source.lukas-renggli.ch/magritte3 > > http://source.lukas-renggli.ch/magritte3addons > > http://source.lukas-renggli.ch/pier3addons > > > > Note: I've deleted "Pier 2 unstable" and "Magritte 2 unstable" > repositories - all the code has migrated to the repositories above. > > > > There are four supporting configurations: > > ConfigurationOfMagritte3 > > ConfigurationOfMagritte3AddOns > > ConfigurationOfPier3 > > ConfigurationOfPier3AddOns > > > > Try it out with: > > > > Gofer it > > squeaksource: 'MetacelloRespository'; > > package: 'ConfigurationOfPier3AddOns'; > > load. > > > > ConfigurationOfPier3AddOns project stableVersion load: 'Pier-Admin' > > > > the above will pull in a significant portion of the add ons and core > libraries and give you a sense of how stable the code is. > > > > Caveats: > > ---- > > All the tests are green, but I've only applied limited testing. > > I've tested the above 'Pier-Admin' loading on a clean Pharo 1.3 image. > > I've removed the Gemstone information from the configurations. I guess > once everything is stable on Pharo we can consider a Gemstone port. > > > > Let me know how you get on > > > > Nick > > _______________________________________________ > > Magritte, Pier and Related Tools ... > > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > > -- > www.tudorgirba.com > > "Problem solving efficiency grows with the abstractness level of problem > understanding." > > > > > _______________________________________________ > 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 Fri Feb 3 13:20:01 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 3 Feb 2012 12:20:01 +0000 Subject: loading refactoring support legacy (deprecated) code Message-ID: Hi, I forgot to mention in my previous mail how to load refactoring support (currently refactoring tool support doesn't load by default): Gofer it squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfMagritte3'; load. ConfigurationOfMagritte3 project stableVersion load: 'Magritte-Pharo-Tools' This will load refactoring support to move Magritte 1 or 2 described objects to instance-side pragma descriptions. It also loads deprecated code such as #description with redirects to #magritteDescription with a deprecation warning. ----- So that everything is the same place here are the porting guidelines I posted previously: 1) search for all senders and implementors of #description in your code, if they are magritte descriptions rename the selector from #description to #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' as 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: (PRComponent named: 'contents') prototypeInstance: (PRContentsWidget new heading: '%c'; yourself); yourself add setters to allow initial settings to be set on the prototype instances again see PRViewsWidget and PRSearchWidget for examples. 7) Put 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. Note Object>>#description and Object class>>#description are only present if you load 'Magritte-Deprecated' -------------- 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 nick.ager at gmail.com Fri Feb 3 15:14:36 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 3 Feb 2012 14:14:36 +0000 Subject: MAComponent>>#magritteDescription and Object>>#magritteDescription Message-ID: Hi, When I translated #description to #magritteDescription I noticed that both MAComponent and Object implement #description and now in Magritte 3 both implement #magritteDescription. It seems that MAComponent>>#description/#magritteDescription is a redundant redefinition of Object>>#description/#magritteDescription. Any reason for it's existence? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Sat Feb 4 14:29:20 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 4 Feb 2012 08:29:20 -0500 Subject: Pier-Seaside-NickAger.526 fixes cookie issue Message-ID: not sure if i commented on this yet, but this indeed fixes the issue that i had with chrome and cookies.. thanks, nick! -- ---- 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 Sat Feb 4 15:59:09 2012 From: nick.ager at gmail.com (Nick Ager) Date: Sat, 4 Feb 2012 14:59:09 +0000 Subject: Pier-Seaside-NickAger.526 fixes cookie issue In-Reply-To: References: Message-ID: Thanks for letting us know. I've updated ConfigurationOfPier2 to use Pier-Seaside-NickAger.526 On 4 February 2012 13:29, sergio_101 wrote: > not sure if i commented on this yet, but this indeed fixes the issue > that i had with chrome and cookies.. > > thanks, nick! > > -- > ---- > 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 sergiolist at village-buzz.com Sat Feb 4 21:50:00 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 4 Feb 2012 15:50:00 -0500 Subject: Pier-Seaside-NickAger.526 - new error report Message-ID: i have updated to Pier-Seaside-NickAger.526, and when i go to /system/components/contents/, i can't save.. i get the following error.. Seaside Walkback MessageNotUnderstood: PRViewCommand>>fields Debug Proceed Possible Causes you sent a message this type of object doesn't understand Stack Trace thisContext PRViewCommand(Object)>>doesNotUnderstand: #fields self a PRViewCommand[246939648] thisContext PRDocumentWidget>>text: self a PRDocumentWidget thisContext [:value | self text: value] in PRDocumentWidget>>renderEditOn: self a PRDocumentWidget thisContext BlockClosure>>valueWithPossibleArguments: self [:value | self text: value] thisContext WAValueCallback>>evaluateWithArgument: self a WAValueCallback thisContext WAValueCallback(WACallback)>>evaluateWithFieldValues: self a WAValueCallback thisContext [:callback | callback evaluateWithFieldValues: (fields allAt: callback key)] in WACallbackRegistry...etc... self a WACallbackRegistry thisContext Array(SequenceableCollection)>>do: self an Array(a WAValueCallback a WAValueCallback a WAValueCallback a WAValueCallback a WAValueCallback a...etc... thisContext WACallbackRegistry>>handle: self a WACallbackRegistry thisContext [self renderContext callbacks handle: self requestContext] in [self withNotificationHandlerDo: [se...etc... self a WAActionPhaseContinuation thisContext BlockClosure>>on:do: self [self renderContext callbacks handle: self requestContext] thisContext WAActionPhaseContinuation(WARenderLoopContinuation)>>withNotificationHandlerDo: self a WAActionPhaseContinuation thisContext [self withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext]. (WAV...etc... self a WAActionPhaseContinuation thisContext BlockClosure>>ensure: self [self withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext]. (WAV...etc... thisContext WAActionPhaseContinuation>>runCallbacks self a WAActionPhaseContinuation thisContext WAActionPhaseContinuation>>handleRequest self a WAActionPhaseContinuation thisContext [self handleRequest] in WAActionPhaseContinuation(WASessionContinuation)>>basicValue self a WAActionPhaseContinuation thisContext BlockClosure>>on:do: self [self handleRequest] thisContext WAActionPhaseContinuation(WASessionContinuation)>>withUnregisteredHandlerDo: self a WAActionPhaseContinuation thisContext WAActionPhaseContinuation(WASessionContinuation)>>basicValue self a WAActionPhaseContinuation thisContext WAActionPhaseContinuation(WASessionContinuation)>>value self a WAActionPhaseContinuation thisContext WASession>>handleFiltered: self a WASession thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext PRContextFilter(WARequestFilter)>>handleFiltered: self a PRContextFilter thisContext [super handleFiltered: aRequestContext] in PRContextFilter>>handleFiltered: self a PRContextFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext PRCurrentContextHolder class>>use:during: self PRCurrentContextHolder thisContext PRContextFilter>>handleFiltered: self a PRContextFilter thisContext WAMutualExclusionFilter(WARequestFilter)>>handleFiltered: self a WAMutualExclusionFilter thisContext [super handleFiltered: aRequestContext] in WAMutualExclusionFilter>>handleFiltered: self a WAMutualExclusionFilter thisContext BlockClosure>>ensure: self [super handleFiltered: aRequestContext] thisContext [owner := process. aBlock ensure: [owner := nil]] in WAMutex>>critical: self a WAMutex thisContext [caught := true. self wait. blockValue := mutuallyExcludedBlock value] in Semaphore>>critical: self a Semaphore() thisContext BlockClosure>>ensure: self [caught := true. self wait. blockValue := mutuallyExcludedBlock value] thisContext Semaphore>>critical: self a Semaphore() thisContext WAMutex>>critical: self a WAMutex thisContext WAMutualExclusionFilter>>handleFiltered: self a WAMutualExclusionFilter thisContext [self filter handleFiltered: aRequestContext] in WASession(WARequestHandler)>>handle: self a WASession thisContext BlockClosure>>on:do: self [self filter handleFiltered: aRequestContext] thisContext WACurrentRequestContext class(WADynamicVariable class)>>use:during: self WACurrentRequestContext thisContext [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during: self a WARequestContext url: thisContext BlockClosure>>ensure: self [WACurrentRequestContext use: self during: aBlock] thisContext WARequestContext>>push:during: self a WARequestContext url: thisContext WASession(WARequestHandler)>>handle: self a WASession thisContext WAApplication(WARegistry)>>dispatch:to: self a WAApplication thisContext WAApplication(WARegistry)>>handleKeyed:with: self a WAApplication thisContext WAApplication(WARegistry)>>handleFiltered: self a WAApplication thisContext WAApplication>>handleFiltered: self a WAApplication thisContext WAExceptionFilter(WARequestFilter)>>handleFiltered: self a WAExceptionFilter thisContext [super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered: self a WAExceptionFilter thisContext BlockClosure>>on:do: self [super handleFiltered: aRequestContext] thisContext WAWalkbackErrorHandler(WAExceptionHandler)>>handleExceptionsDuring: self a WAWalkbackErrorHandler thisContext WAWalkbackErrorHandler class(WAExceptionHandler class)>>handleExceptionsDuring:context: self WAWalkbackErrorHandler thisContext WAExceptionFilter>>handleFiltered: self a WAExceptionFilter thisContext [self filter handleFiltered: aRequestContext] in WAApplication(WARequestHandler)>>handle: self a WAApplication thisContext BlockClosure>>on:do: self [self filter handleFiltered: aRequestContext] thisContext WACurrentRequestContext class(WADynamicVariable class)>>use:during: self WACurrentRequestContext thisContext [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during: self a WARequestContext url: thisContext BlockClosure>>ensure: self [WACurrentRequestContext use: self during: aBlock] thisContext WARequestContext>>push:during: self a WARequestContext url: thisContext WAApplication(WARequestHandler)>>handle: self a WAApplication thisContext WADispatcher>>handleFiltered:named: self a WADispatcher thisContext WADispatcher>>handleFiltered: self a WADispatcher thisContext [self filter handleFiltered: aRequestContext] in WADispatcher(WARequestHandler)>>handle: self a WADispatcher thisContext BlockClosure>>on:do: self [self filter handleFiltered: aRequestContext] thisContext WACurrentRequestContext class(WADynamicVariable class)>>use:during: self WACurrentRequestContext thisContext [WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:during: self a WARequestContext url: thisContext BlockClosure>>ensure: self [WACurrentRequestContext use: self during: aBlock] thisContext WARequestContext>>push:during: self a WARequestContext url: thisContext WADispatcher(WARequestHandler)>>handle: self a WADispatcher thisContext [self requestHandler handle: aRequestContext] in WAComancheAdaptor(WAServerAdaptor)>>handleRequest: self a WAComancheAdaptor thisContext BlockClosure>>on:do: self [self requestHandler handle: aRequestContext] thisContext WAComancheAdaptor(WAServerAdaptor)>>handleRequest: self a WAComancheAdaptor thisContext WAComancheAdaptor(WAServerAdaptor)>>handle: self a WAComancheAdaptor thisContext [self handle: context; responseFrom: context] in WAComancheAdaptor(WAServerAdaptor)>>process: self a WAComancheAdaptor thisContext BlockClosure>>ensure: self [self handle: context; responseFrom: context] thisContext WAComancheAdaptor(WAServerAdaptor)>>process: self a WAComancheAdaptor thisContext WAComancheAdaptor>>processHttpRequest: self a WAComancheAdaptor thisContext HttpService>>processHttpRequest: self seaside-8081 [running] port: 8081 thisContext [self target processHttpRequest: request] in HttpAdaptor>>dispatchRequest: self a HttpAdaptor thisContext BlockClosure>>on:do: self [self target processHttpRequest: request] thisContext HttpService>>handleDispatchErrorsIn: self seaside-8081 [running] port: 8081 thisContext HttpAdaptor>>dispatchRequest: self a HttpAdaptor thisContext [[[request := self readRequest] on: Error do: [:ex | continue := false]. continue ifTrue: [re...etc... self a HttpAdaptor thisContext BlockClosure>>ensure: self [[[request := self readRequest] on: Error do: [:ex | continue := false]. continue ifTrue: [re...etc... thisContext HttpAdaptor>>beginConversation self a HttpAdaptor thisContext HttpAdaptor class>>readAndWriteTo:service: self HttpAdaptor thisContext HttpAdaptor class>>readAndWriteToSocket:service: self HttpAdaptor thisContext HttpService>>serve: self seaside-8081 [running] port: 8081 thisContext [self serve: aSocket] in HttpService(TcpService)>>value: self seaside-8081 [running] port: 8081 thisContext [self value. Processor terminateActive] in BlockClosure>>newProcess self [self serve: aSocket] -- ---- 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 Feb 4 22:07:28 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 4 Feb 2012 16:07:28 -0500 Subject: Pier-Seaside-NickAger.526 - new error report In-Reply-To: References: Message-ID: really quickly.. i backed off to 524, and the error goes away.. it seems to be wrapped up in 526.. 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 Feb 4 22:11:48 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sat, 4 Feb 2012 16:11:48 -0500 Subject: Pier-Seaside-NickAger.526 - new error report In-Reply-To: References: Message-ID: a little bit more info - it seems as though nothing can be saved with 526.. -- ---- 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 Feb 5 07:49:17 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 5 Feb 2012 01:49:17 -0500 Subject: inserting a single line break.. Message-ID: how would l go about making some text render like so: this is a few lines that i want to have break in specified places rather than have a space between them to insert a line break, i have to add two.. and i end up with this.. this is a few lines that i want to have break in specified places rather than have a space between them 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 tudor at tudorgirba.com Sun Feb 5 08:40:50 2012 From: tudor at tudorgirba.com (Tudor Girba) Date: Sun, 5 Feb 2012 08:40:50 +0100 Subject: inserting a single line break.. In-Reply-To: References: Message-ID: <7AE6C4B7-0091-41D5-B703-109A978C05CB@tudorgirba.com> I use {{{
}}}. So, you would have: this is a few lines{{{
}}} that i want to have break{{{
}}} in specified places rather{{{
}}} than have a space between{{{
}}} them Doru On 5 Feb 2012, at 07:49, sergio_101 wrote: > how would l go about making some text render like so: > > this is a few lines > that i want to have break > in specified places rather > than have a space between > them > > to insert a line break, i have to add two.. and i end up with this.. > > this is a few lines > > that i want to have break > > in specified places rather > > than have a space between > > them > > 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 -- www.tudorgirba.com Things happen when they happen, not when you talk about them happening. From jborden23 at mac.com Sun Feb 5 21:07:13 2012 From: jborden23 at mac.com (John Borden) Date: Sun, 05 Feb 2012 14:07:13 -0600 Subject: inserting a single line break.. In-Reply-To: References: Message-ID: In the standard pier editor, I would use: > this is a few lines{{{
}}} > that i want to have break{{{
}}} > in specified places rather{{{
}}} > than have a space between{{{
}}} > them Where are you rendering this from? Thanks, John On Feb 5, 2012, at 0:49, sergio_101 wrote: > how would l go about making some text render like so: > > this is a few lines > that i want to have break > in specified places rather > than have a space between > them > > to insert a line break, i have to add two.. and i end up with this.. > > this is a few lines > > that i want to have break > > in specified places rather > > than have a space between > > them > > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Sun Feb 5 23:13:01 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Sun, 5 Feb 2012 17:13:01 -0500 Subject: what to do when you break your site.. Message-ID: here's one i could never figure out how to do.. okay.. so, if you edit a component.. say, header.. and you accidentally put in some broken html.. say, you forget to close out a tag.. when you do this, the whole site is rendered incorrectly.. this then means that the whole site is breaks, and you can't edit it, or go back to a different revision... how would you go back and fix 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 sergiolist at village-buzz.com Mon Feb 6 07:16:26 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 01:16:26 -0500 Subject: component - display most recent blog post Message-ID: on the front page of my pier site, i would like to automatically display an abbreviated (say, 1000 characters) of the latest blog story.. anyone have any idea on how i would do this? say, grab the newest child of the blog component.. 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 damien.cassou at gmail.com Mon Feb 6 10:28:28 2012 From: damien.cassou at gmail.com (Damien Cassou) Date: Mon, 6 Feb 2012 10:28:28 +0100 Subject: component - display most recent blog post In-Reply-To: References: Message-ID: On Mon, Feb 6, 2012 at 7:16 AM, sergio_101 wrote: > on the front page of my pier site, i would like to automatically > display an abbreviated (say, 1000 characters) of the latest blog > story.. > > anyone have any idea on how i would do this? say, grab the newest > child of the blog component.. there is already a component which shows you the first (maybe 100) characters of the last (maybe 5) posts. I think it comes by default with Pier-Blog and is also deployed in a typical Pier installation. -- Damien Cassou http://damiencassou.seasidehosting.st "Lambdas are relegated to relative obscurity until Java makes them popular by not having them." James Iry From nick.ager at gmail.com Mon Feb 6 11:23:11 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 6 Feb 2012 10:23:11 +0000 Subject: component - display most recent blog post In-Reply-To: References: Message-ID: Look at PRDistribution>>postTickerWidget On 6 February 2012 09:28, Damien Cassou wrote: > On Mon, Feb 6, 2012 at 7:16 AM, sergio_101 > wrote: > > on the front page of my pier site, i would like to automatically > > display an abbreviated (say, 1000 characters) of the latest blog > > story.. > > > > anyone have any idea on how i would do this? say, grab the newest > > child of the blog component.. > > there is already a component which shows you the first (maybe 100) > characters of the last (maybe 5) posts. I think it comes by default > with Pier-Blog and is also deployed in a typical Pier installation. > > -- > Damien Cassou > http://damiencassou.seasidehosting.st > > "Lambdas are relegated to relative obscurity until Java makes them > popular by not having them." James Iry > _______________________________________________ > 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 Feb 6 11:57:26 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 6 Feb 2012 10:57:26 +0000 Subject: what to do when you break your site.. In-Reply-To: References: Message-ID: Hi Sergio, so, if you edit a component.. say, header.. and you accidentally put > in some broken html.. say, you forget to close out a tag.. > > when you do this, the whole site is rendered incorrectly.. > > this then means that the whole site is breaks, and you can't edit it, > or go back to a different revision... > This is one of the reasons for Pier-Admin - a separate admin interface that won't be effected by changes you make to the site. However without Pier-Admin, I guess it depends on how your site is configured - in PRDistribution based sites there is a separate template/environment which is used for system tools - so that if you mess up the main site's environment you can still use the management tools - search for senders of PRDistribution>>metaEnvironmentPage You could try using the Diff View to put back a previous version - but it will probably use you default environment (which appears to be broken) eg: http://localhost:8082/pier/system/components/header&view=PRDiffView where /pier/system/components/header is replaced with: /apath/to/component/which/is/broken Alternatively from an image you can navigate to any PRStructure instance within your kernel with something like: (((WADispatcher default handlerAt: 'pier') configuration valueAt: #kernel) root lookupPath: '/system/components/header') contents This will extract the kernel from the handler registered at /pier then lookup a path to a structure within the kernel at '/system/components/header' and display the contents. You can then replace the contents with: (((WADispatcher default handlerAt: 'pier') configuration valueAt: #kernel) root lookupPath: '/system/components/header') contents: 'fixed header' I'm sure with some experimentation you'll be able to fix it Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Mon Feb 6 12:31:56 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 6 Feb 2012 11:31:56 +0000 Subject: inserting a single line break.. In-Reply-To: References: Message-ID: You can also use a paragraph annotation then use css to apply the styling [1]. For example: this is a few lines > that i want to have break > @@breakout in specified places rather > than have a space between will produce a paragraph: >

in specified places rather

Then you can use css to style the paragraph with extra space - indentation etc and you can use semantics names indicate what is special about a block of text. [1] http://www.piercms.com/doc/syntax On 5 February 2012 20:07, John Borden wrote: > In the standard pier editor, I would use: > > this is a few lines{{{
}}} > that i want to have break{{{
}}} > > in specified places rather{{{
}}} > > than have a space between{{{
}}} > > them > > > Where are you rendering this from? > > Thanks, > John > > On Feb 5, 2012, at 0:49, sergio_101 wrote: > > how would l go about making some text render like so: > > this is a few lines > that i want to have break > in specified places rather > than have a space between > them > > to insert a line break, i have to add two.. and i end up with this.. > > this is a few lines > > that i want to have break > > in specified places rather > > than have a space between > > them > > 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 > > > _______________________________________________ > 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 Mon Feb 6 12:39:39 2012 From: renggli at gmail.com (Lukas Renggli) Date: Mon, 6 Feb 2012 12:39:39 +0100 Subject: what to do when you break your site.. In-Reply-To: References: Message-ID: I typically keep the default style for the system-pages, so that experiments with the template does not affect the complete site. I think the default style is setup like this, so you can always navigate to /system to get a working admin area. This is likely too late now, but typically if you break something you can use the back button and resubmit a fixed version. If you have Pier OmniBrowser (in older versions of Pier) or Pier Admin loaded you can easily use the alternative interface to fix the problem. Otherwise the inspector is always a last resort. Lukas On 5 February 2012 23:13, sergio_101 wrote: > here's one i could never figure out how to do.. > > okay.. > > so, if you edit a component.. say, header.. and you accidentally put > in some broken html.. say, you forget to close out a tag.. > > when you do this, the whole site is rendered incorrectly.. > > this then means that the whole site is breaks, and you can't edit it, > or go back to a different revision... > > how would you go back and fix 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 Mon Feb 6 14:39:22 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 08:39:22 -0500 Subject: Pier-Seaside-NickAger.526 fixes cookie issue In-Reply-To: References: Message-ID: just for reference.. check the appropriately titled bug report i left on issue.. thanks! On Sat, Feb 4, 2012 at 9:59 AM, Nick Ager wrote: > Thanks for letting us know. I've updated?ConfigurationOfPier2 to > use?Pier-Seaside-NickAger.526 > > On 4 February 2012 13:29, sergio_101 wrote: >> >> not sure if i commented on this yet, but this indeed fixes the issue >> that i had with chrome and cookies.. >> >> thanks, nick! >> >> -- >> ---- >> 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 sergiolist at village-buzz.com Mon Feb 6 14:41:51 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 08:41:51 -0500 Subject: component - display most recent blog post In-Reply-To: References: Message-ID: > Look at PRDistribution>>postTickerWidget > this is the one i was using.. unfortunately, it just renders a unformatted snippet of the article.. this is exactly what i need on the sidebar, but on the front page, i would like to be able to include a formatted view, with all subcomponents rendered also.. -- ---- 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 Mon Feb 6 14:44:54 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 08:44:54 -0500 Subject: inserting a single line break.. In-Reply-To: References: Message-ID: thanks! i have always used the {{{
}}} method.. but i knew there was probably a cleaner way to do it.. On Mon, Feb 6, 2012 at 6:31 AM, Nick Ager wrote: > You can also use a paragraph annotation then use css to apply the styling > [1]. For example: > >> this is a few lines >> that i want to have break >> @@breakout in specified places rather >> >> than have a space between > > > will produce a paragraph: >> >>

in specified places rather

> > > Then you can use css to style the paragraph with extra space - indentation > etc and you can use semantics names indicate what is special about a block > of text. > > [1]?http://www.piercms.com/doc/syntax > > > On 5 February 2012 20:07, John Borden wrote: >> >> In the standard pier editor, I would use: >> >> this is a few lines{{{
}}} >> that i want to have break{{{
}}} >> >> in specified places rather{{{
}}} >> >> than have a space between{{{
}}} >> >> them >> >> >> Where are you rendering this from? >> >> Thanks, >> John >> >> On Feb 5, 2012, at 0:49, sergio_101 wrote: >> >> how would l go about making some text render like so: >> >> this is a few lines >> that i want to have break >> in specified places rather >> than have a space between >> them >> >> to insert a line break, i have to add two.. and i end up with this.. >> >> this is a few lines >> >> that i want to have break >> >> in specified places rather >> >> than have a space between >> >> them >> >> 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 >> >> >> _______________________________________________ >> 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 Mon Feb 6 15:01:28 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 09:01:28 -0500 Subject: what to do when you break your site.. In-Reply-To: References: Message-ID: > > This is one of the reasons for Pier-Admin - a separate admin interface that > won't be effected by changes you make to the site. > oh! i forgot to mention.. i am having lots of problems with pier-admin.. i will have to try it in a controlled environment, but the gist of it was: when i installed pier-admin, it would kill the web server, and it wouldn't start back up. i am not sure if this was a problem with 524 vs. 526, as i am not sure i made it to that point in troubleshooting.. i am pretty sure i posted a detailed error log to the list, but i will have to check again for sure.. anyway.. i will test it both in 524 and 526 tonight, and let you know what happens.. thanks! > However without Pier-Admin, I guess it depends on how your site is > configured - in PRDistribution based sites there is a separate okay, i remember doing this before.. i think /systems/components uses the normal theme.. i think i should change that back.. -- ---- 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 Feb 6 16:31:53 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 6 Feb 2012 15:31:53 +0000 Subject: Pier-Seaside-NickAger.526 fixes cookie issue In-Reply-To: References: Message-ID: Hi Sergio, just for reference.. check the appropriately titled bug report i left on > issue.. > > thanks! I can't see the bug in: http://code.google.com/p/pier/issues/list Can you provide a link or reference number. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Mon Feb 6 16:36:00 2012 From: nick.ager at gmail.com (Nick Ager) Date: Mon, 6 Feb 2012 15:36:00 +0000 Subject: what to do when you break your site.. In-Reply-To: References: Message-ID: Hi Sergio, oh! i forgot to mention.. i am having lots of problems with > pier-admin.. i will have to try it in a controlled environment, but > the gist of it was: when i installed pier-admin, it would kill the web > server, and it wouldn't start back up. i am not sure if this was a > problem with 524 vs. 526, as i am not sure i made it to that point in > troubleshooting.. > I haven't tested loading Pier-Admin into an older kernel - though I don't know if this is your problem. In order to solve problems we need to be able to replicate your environment so to help us can you post more information such as which Smalltalk you are using e.g. Pharo 1.2, Pharo 1.3 version of Seaside, version of Pier etc. How you loaded the code. Cheers Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Mon Feb 6 18:43:36 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 12:43:36 -0500 Subject: Pier-Seaside-NickAger.526 fixes cookie issue In-Reply-To: References: Message-ID: > I can't see the bug in: http://code.google.com/p/pier/issues/list > Can you provide a link or reference number. > ah! okay.. i wasn't sure where to report these things.. i will run through everything tonight, provide detailed bug reports.. 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 Tue Feb 7 03:40:09 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 21:40:09 -0500 Subject: value:structure|level - what does it mean? Message-ID: ran across these on the blog title page

}}}*>value:structure|level=2*{{{

}}}*>value:structure|level=0|lower=3*{{{

can someone explain what level and lower are? 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 Tue Feb 7 03:53:58 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Mon, 6 Feb 2012 21:53:58 -0500 Subject: new pier site launched Message-ID: okay, fellas.. i volunteered to help my sister in law out.. she is totally technically non savvy.. but she did write a novel. which is more than i could ever do.. so i helped her out by putting her site together.. keep in mind.. i am the crappiest designer ever.. but i do love me some pier.. as this project moves forward, we'll get a real designer on deck.. but it was pretty cool for us to be able to put this together quickly with such a great product (pier).. thanks, all.. oh! the url is: http://www.toaplacebehindthesun.com/ -- ---- 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 Feb 7 14:10:19 2012 From: nick.ager at gmail.com (Nick Ager) Date: Tue, 7 Feb 2012 13:10:19 +0000 Subject: value:structure|level - what does it mean? In-Reply-To: References: Message-ID: Hi Sergio, ran across these on the blog title page > >

}}}*>value:structure|level=2*{{{

>

}}}*>value:structure|level=0|lower=3*{{{

> > can someone explain what level and lower are? > A good question - I didn't know the answer myself so did some delving. I'll answer indirectly via the journey I took to find the answer. From: http://www.piercms.com/doc/syntax value:structure - Display the current structure - but no help with parameters. The object that holds value links is PRValueLink. PRDocument elements are rendered using a visitor pattern [1]. By convention #accept: is the method that takes the visitor: PRValueLink>>accept: aVisitor > aVisitor visitValueLink: self so we look for all implementors of #visitValueLink: It looks like there are two possibilities PRReferenceRenderer and the default implementation in PRVisitor. I set a conditional break-point in PRReferenceRenderer as: self haltIf: ((aLink parameterAt: 'level' ifAbsent: []) notNil and: [ > (aLink parameterAt: 'lower' ifAbsent: []) notNil ]). The break-point was hit and stepping through I end up in PRValueLink>>#lookupStructure:do: which has the helpful comment: Lookup aStructure and evaluate aBlock if it is found. This performs > different kinds of navigation starting from aStructure. If the parameter > path is given an absolute or relative lookup is started. The parameter > level choses a structure at the specified level in the parent chain, > where the root is 1 and direct children of the root 2, etc. 0 is the > current structure, -1 the parent of the current structure, etc. Furthermore > the levels can be delimited using lower and upper bounds so: *>value:structure|level=0|lower=3* means use the current structure (level=0) but only if the current structure is 3 or more levels down. Levels are defined as the number of parents e.g. a template displaying a blog entry at /pier/blog/downtobusiness would have 3 levels of parents. What does it do with the structure? PRValueLink>>formatDescribed:default: is called. If a parameter "display" is defined it will try to find a description for the structure with a matching parameter. The default is #title. In this case there is no "display" parameter so the structure's title is displayed. If you want to see what parameters could be displayed by say a blog post (magritte 3): PBPost new magritteDescription children select: [:each | each parameterName > notNil] thenCollect: [ :each | each parameterName ] a SortedCollection('name' 'menu' 'title' 'tags' 'owner' 'group') The result of this is that when you display a blog post the title of the blog post is displayed so: http://localhost:8080/pier/blog/downtobusiness Displays: Blog > Down to business > I like blogging, so here is my second post. Where "Down to business" is displayed by *>value:structure|level=0|lower=3*. Nick [1] http://en.wikipedia.org/wiki/Visitor_pattern -------------- next part -------------- An HTML attachment was scrubbed... URL: From sergiolist at village-buzz.com Wed Feb 8 01:27:10 2012 From: sergiolist at village-buzz.com (sergio_101) Date: Tue, 7 Feb 2012 19:27:10 -0500 Subject: value:children+ -> rendering relative to containing component Message-ID: hi all.. say i have a component.. call "stories" this has many children: "story 1" "story 2" "story 3" so, all i want to do is list all the stories in the component.. so, stories would have: +value:children+ everything works just fine.. so.. now, i'd like to embed this component in another page.. i end up with a page with this: some text.. blah blah .. here is my list of stories: +stories+ the problem is, it wants to rembed value:children with respect to the current structure (which, according to the docs, is what it should do).. but i would rather have the the children render relative to the containing structure.. i hope this all makes sense .. anyone have 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 Wed Feb 8 14:05:19 2012 From: nick.ager at gmail.com (Nick Ager) Date: Wed, 8 Feb 2012 13:05:19 +0000 Subject: value:children+ -> rendering relative to containing component In-Reply-To: References: Message-ID: Hi Sergio, but i would rather have the the children render relative to the > containing structure.. If I understand correctly you want to to be able to display the children of an arbitrary structure. I'm not sure Pier supports this directly. The closest I can see is PBPostTicker - but obviously that's only for blog posts. Perhaps I've missed something obvious and someone else can dive in with the solution. Failing that it should be straightforward to create a PRWidget derived class with does what you need perhaps starting with PBPostTicker and simplifying. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Wed Feb 8 17:42:53 2012 From: nick.ager at gmail.com (Nick Ager) Date: Wed, 8 Feb 2012 16:42:53 +0000 Subject: MAComponent>>#magritteDescription and Object>>#magritteDescription In-Reply-To: References: Message-ID: Ok I guess as no has replied I'll assume that MAComponent>>#magritteDescription is a redundant redefinition of Object>>#magritteDescription and delete it. On 3 February 2012 14:14, Nick Ager wrote: > Hi, > > When I translated #description to #magritteDescription I noticed that both > MAComponent and Object implement #description and now in Magritte 3 both > implement #magritteDescription. > > It seems that MAComponent>>#description/#magritteDescription is a > redundant redefinition of Object>>#description/#magritteDescription. Any > reason for it's existence? > > Nick > > > > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From renggli at gmail.com Wed Feb 8 17:58:51 2012 From: renggli at gmail.com (Lukas Renggli) Date: Wed, 8 Feb 2012 17:58:51 +0100 Subject: MAComponent>>#magritteDescription and Object>>#magritteDescription In-Reply-To: References: Message-ID: It is redundant now, but it was not because WAComponent defined #description to return a description string of the component. Lukas On 8 February 2012 17:42, Nick Ager wrote: > Ok I guess as no has replied I'll assume > that??MAComponent>>#magritteDescription is a redundant redefinition > of?Object>>#magritteDescription and delete it. > > > On 3 February 2012 14:14, Nick Ager wrote: >> >> Hi, >> >> When I translated #description to #magritteDescription I noticed that both >> MAComponent and Object implement #description and now in Magritte 3 both >> implement #magritteDescription. >> >> It seems that MAComponent>>#description/#magritteDescription is a >> redundant redefinition of Object>>#description/#magritteDescription. Any >> reason for it's existence? >> >> 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 Wed Feb 8 18:03:36 2012 From: nick.ager at gmail.com (Nick Ager) Date: Wed, 8 Feb 2012 17:03:36 +0000 Subject: MAComponent>>#magritteDescription and Object>>#magritteDescription In-Reply-To: References: Message-ID: Hi Lukas, On 8 February 2012 16:58, Lukas Renggli wrote: > It is redundant now, but it was not because WAComponent defined > #description to return a description string of the component. > That makes perfect sense, thanks for the explanation. Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From offray at riseup.net Fri Feb 10 12:19:36 2012 From: offray at riseup.net (=?ISO-8859-1?Q?Offray_Vladimir_Luna_C=E1rdenas?=) Date: Fri, 10 Feb 2012 06:19:36 -0500 Subject: Enabling Dynatree on Pier/Seaside Message-ID: <4F34FD48.2070606@riseup.net> Hi all, Hi. I'm trying to load a dynatree support[0][1] in Seaside following the instructions at [2]. It says that I need to load the last version of ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the instructions at [3] I thought that: ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) load: #('JQWidgetBox-Dynatree-Core-tbn.4' 'JQWidgetBox-Dynatree-Dev-tbn.4'). would do the trick, but the first object doesn't understand the "load:" message. So there is something I'm not understanding properly. Any help would be appreciated. Cheers, Offray [0] http://wwwendt.de/tech/dynatree/ [1] http://wwwendt.de/tech/dynatree/doc/samples.html [2] http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html [3] http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html From gaston.dalloglio at gmail.com Fri Feb 10 12:57:19 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Fri, 10 Feb 2012 08:57:19 -0300 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: <4F34FD48.2070606@riseup.net> References: <4F34FD48.2070606@riseup.net> Message-ID: I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside 3.0.6 OneClick and I get this same error. I do not know, but it seem to be something with OB. I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion , I attach the log. 2012/2/10 Offray Vladimir Luna C?rdenas > Hi all, > > Hi. I'm trying to load a dynatree support[0][1] in Seaside following the > instructions at [2]. It says that I need to load the last version of > ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 > JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the > instructions at [3] I thought that: > > ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) load: > #('JQWidgetBox-Dynatree-Core-tbn.4' > 'JQWidgetBox-Dynatree-Dev-tbn.4'). > > would do the trick, but the first object doesn't understand the "load:" > message. So there is something I'm not understanding properly. Any help > would be appreciated. > > Cheers, > > Offray > > [0] http://wwwendt.de/tech/dynatree/ > [1] http://wwwendt.de/tech/dynatree/doc/samples.html > [2] > http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html > [3] http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PharoDebug.log Type: application/octet-stream Size: 101781 bytes Desc: not available URL: From gaston.dalloglio at gmail.com Fri Feb 10 13:00:33 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Fri, 10 Feb 2012 09:00:33 -0300 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: References: <4F34FD48.2070606@riseup.net> Message-ID: Sorry, no same error, but with load JqueryWidgetBox I wish say. 2012/2/10 Gast?n Dall' Oglio > I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside 3.0.6 > OneClick and I get this same error. I do not know, but it seem to be > something with OB. > I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion , > I attach the log. > > > > 2012/2/10 Offray Vladimir Luna C?rdenas > >> Hi all, >> >> Hi. I'm trying to load a dynatree support[0][1] in Seaside following the >> instructions at [2]. It says that I need to load the last version of >> ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 >> JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the >> instructions at [3] I thought that: >> >> ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) load: >> #('JQWidgetBox-Dynatree-Core-tbn.4' >> 'JQWidgetBox-Dynatree-Dev-tbn.4'). >> >> would do the trick, but the first object doesn't understand the "load:" >> message. So there is something I'm not understanding properly. Any help >> would be appreciated. >> >> Cheers, >> >> Offray >> >> [0] http://wwwendt.de/tech/dynatree/ >> [1] http://wwwendt.de/tech/dynatree/doc/samples.html >> [2] >> http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html >> [3] >> http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html >> _______________________________________________ >> Magritte, Pier and Related Tools ... >> https://www.iam.unibe.ch/mailman/listinfo/smallwiki >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gaston.dalloglio at gmail.com Fri Feb 10 13:10:50 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Fri, 10 Feb 2012 09:10:50 -0300 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: References: <4F34FD48.2070606@riseup.net> Message-ID: mmmm there are others previous error in log that I send. The last is the important: ------------------------------------------------------------ THERE_BE_DRAGONS_HERE Error: MessageNotUnderstood: Form>>capitalized 10 February 2012 8:51:22 am VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.140] Image: Pharo1.3 [Latest update: #13320] Form(Object)>>error: Receiver: Form(12x12x32) Arguments and temporary variables: aString: 'MessageNotUnderstood: Form>>capitalized' Receiver's instance variables: bits: a Bitmap of length 144 width: 12 height: 12 depth: 32 offset: nil 2012/2/10 Gast?n Dall' Oglio > Sorry, no same error, but with load JqueryWidgetBox I wish say. > > 2012/2/10 Gast?n Dall' Oglio > >> I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside 3.0.6 >> OneClick and I get this same error. I do not know, but it seem to be >> something with OB. >> I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion , >> I attach the log. >> >> >> >> 2012/2/10 Offray Vladimir Luna C?rdenas >> >>> Hi all, >>> >>> Hi. I'm trying to load a dynatree support[0][1] in Seaside following the >>> instructions at [2]. It says that I need to load the last version of >>> ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 >>> JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the >>> instructions at [3] I thought that: >>> >>> ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) >>> load: >>> #('JQWidgetBox-Dynatree-Core-tbn.4' >>> 'JQWidgetBox-Dynatree-Dev-tbn.4'). >>> >>> would do the trick, but the first object doesn't understand the "load:" >>> message. So there is something I'm not understanding properly. Any help >>> would be appreciated. >>> >>> Cheers, >>> >>> Offray >>> >>> [0] http://wwwendt.de/tech/dynatree/ >>> [1] http://wwwendt.de/tech/dynatree/doc/samples.html >>> [2] >>> http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html >>> [3] >>> http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html >>> _______________________________________________ >>> 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 Fri Feb 10 13:25:08 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 10 Feb 2012 12:25:08 +0000 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: References: <4F34FD48.2070606@riseup.net> Message-ID: try (untested): ((Smalltalk at: #**ConfigurationOfJQueryWidgetBox**) project latestVersion) load: #('JQWidgetBox-Dynatree-Core' 'JQWidgetBox-Dynatree-Dev'). 2012/2/10 Gast?n Dall' Oglio > mmmm there are others previous error in log that I send. The last is the > important: > > ------------------------------------------------------------ > > THERE_BE_DRAGONS_HERE > Error: MessageNotUnderstood: Form>>capitalized > 10 February 2012 8:51:22 am > > VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter > VMMaker.oscog-eem.140] > Image: Pharo1.3 [Latest update: #13320] > > Form(Object)>>error: > Receiver: Form(12x12x32) > Arguments and temporary variables: > aString: 'MessageNotUnderstood: Form>>capitalized' > Receiver's instance variables: > bits: a Bitmap of length 144 > width: 12 > height: 12 > depth: 32 > offset: nil > > > > 2012/2/10 Gast?n Dall' Oglio > >> Sorry, no same error, but with load JqueryWidgetBox I wish say. >> >> 2012/2/10 Gast?n Dall' Oglio >> >>> I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside >>> 3.0.6 OneClick and I get this same error. I do not know, but it seem to be >>> something with OB. >>> I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion >>> , I attach the log. >>> >>> >>> >>> 2012/2/10 Offray Vladimir Luna C?rdenas >>> >>>> Hi all, >>>> >>>> Hi. I'm trying to load a dynatree support[0][1] in Seaside following >>>> the instructions at [2]. It says that I need to load the last version of >>>> ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 >>>> JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the >>>> instructions at [3] I thought that: >>>> >>>> ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) >>>> load: >>>> #('JQWidgetBox-Dynatree-Core-tbn.4' >>>> 'JQWidgetBox-Dynatree-Dev-tbn.4'). >>>> >>>> would do the trick, but the first object doesn't understand the "load:" >>>> message. So there is something I'm not understanding properly. Any help >>>> would be appreciated. >>>> >>>> Cheers, >>>> >>>> Offray >>>> >>>> [0] http://wwwendt.de/tech/dynatree/ >>>> [1] http://wwwendt.de/tech/dynatree/doc/samples.html >>>> [2] >>>> http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html >>>> [3] >>>> http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html >>>> _______________________________________________ >>>> 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 gaston.dalloglio at gmail.com Fri Feb 10 13:47:25 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Fri, 10 Feb 2012 09:47:25 -0300 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: References: <4F34FD48.2070606@riseup.net> Message-ID: squeaksource is down -> http://dsal.cl/squeaksource/ No, that no works: THERE_BE_DRAGONS_HERE Error: Name not found: JQWidgetBox-Dynatree-Dev 10 February 2012 9:42:56 am VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.140] Image: Pharo1.3 [Latest update: #13320] MetacelloMCVersionSpec(Object)>>error: Receiver: spec blessing: #'release'. spec description: 'updated JQFullCalendar and JQFullCalendarExa...etc... Arguments and temporary variables: aString: 'Name not found: JQWidgetBox-Dynatree-Dev' 2012/2/10 Nick Ager > try (untested): > > ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) project latestVersion) > load: > #('JQWidgetBox-Dynatree-Core' > 'JQWidgetBox-Dynatree-Dev'). > > 2012/2/10 Gast?n Dall' Oglio > >> mmmm there are others previous error in log that I send. The last is the >> important: >> >> ------------------------------------------------------------ >> >> THERE_BE_DRAGONS_HERE >> Error: MessageNotUnderstood: Form>>capitalized >> 10 February 2012 8:51:22 am >> >> VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter >> VMMaker.oscog-eem.140] >> Image: Pharo1.3 [Latest update: #13320] >> >> Form(Object)>>error: >> Receiver: Form(12x12x32) >> Arguments and temporary variables: >> aString: 'MessageNotUnderstood: Form>>capitalized' >> Receiver's instance variables: >> bits: a Bitmap of length 144 >> width: 12 >> height: 12 >> depth: 32 >> offset: nil >> >> >> >> 2012/2/10 Gast?n Dall' Oglio >> >>> Sorry, no same error, but with load JqueryWidgetBox I wish say. >>> >>> 2012/2/10 Gast?n Dall' Oglio >>> >>>> I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside >>>> 3.0.6 OneClick and I get this same error. I do not know, but it seem to be >>>> something with OB. >>>> I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion >>>> , I attach the log. >>>> >>>> >>>> >>>> 2012/2/10 Offray Vladimir Luna C?rdenas >>>> >>>>> Hi all, >>>>> >>>>> Hi. I'm trying to load a dynatree support[0][1] in Seaside following >>>>> the instructions at [2]. It says that I need to load the last version of >>>>> ConfigurationOfJQueryWidgetBox and then JQWidgetBox-Dynatree-Dev-tbn.3 >>>>> JQWidgetBox-Dynatree-Core-tbn.3, but it doesn't say how, so following the >>>>> instructions at [3] I thought that: >>>>> >>>>> ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) >>>>> load: >>>>> #('JQWidgetBox-Dynatree-Core-tbn.4' >>>>> 'JQWidgetBox-Dynatree-Dev-tbn.4'). >>>>> >>>>> would do the trick, but the first object doesn't understand the >>>>> "load:" message. So there is something I'm not understanding properly. Any >>>>> help would be appreciated. >>>>> >>>>> Cheers, >>>>> >>>>> Offray >>>>> >>>>> [0] http://wwwendt.de/tech/dynatree/ >>>>> [1] http://wwwendt.de/tech/dynatree/doc/samples.html >>>>> [2] >>>>> http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html >>>>> [3] >>>>> http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html >>>>> _______________________________________________ >>>>> 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 >> > > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PharoDebug.log Type: application/octet-stream Size: 29934 bytes Desc: not available URL: From offray at riseup.net Fri Feb 10 17:51:34 2012 From: offray at riseup.net (=?ISO-8859-1?Q?Offray_Vladimir_Luna_C=E1rdenas?=) Date: Fri, 10 Feb 2012 11:51:34 -0500 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: References: <4F34FD48.2070606@riseup.net> Message-ID: <4F354B16.5020900@riseup.net> Hi, On 10/02/12 07:25, Nick Ager wrote: > try (untested): > > ((Smalltalk at: #__ConfigurationOfJQueryWidgetBox__) project latestVersion) load: > #('JQWidgetBox-Dynatree-Core' > 'JQWidgetBox-Dynatree-Dev'). It doesn't work. When I copied the command the underscores are replaces by left arrows producing a syntax error and without them Metacello says that it can't find the string (I think the one that describe the project I want to load). Any other pointer or suggestion? Thanks, Offray From dhenrich at vmware.com Fri Feb 10 19:43:34 2012 From: dhenrich at vmware.com (Dale Henrichs) Date: Fri, 10 Feb 2012 10:43:34 -0800 (PST) Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: Message-ID: <854834292.900146.1328899414583.JavaMail.root@zimbra-prod-mbox-2.vmware.com> Gast?n, If the Form>>capitalized stack is indeed the stack that you are having trouble with, it is an indication that you are getting the wrong version of OB loaded into your image, so it is important (I think) to understand exactly which version of Pharo you are using (the update # from the System>>about menu is important). You may be using a Pharo version that is too old or too new. If we get the pharo version straightened out, I think that we can resolve the OB issues ... Dale ----- Original Message ----- | From: "Gast?n Dall' Oglio" | To: "Pier and Related Tools Magritte ..." | Sent: Friday, February 10, 2012 4:10:50 AM | Subject: Re: Enabling Dynatree on Pier/Seaside | | | | mmmm there are others previous error in log that I send. The last is | the important: | | | ------------------------------------------------------------ | | THERE_BE_DRAGONS_HERE | Error: MessageNotUnderstood: Form>>capitalized | 10 February 2012 8:51:22 am | | VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter | VMMaker.oscog-eem.140] | Image: Pharo1.3 [Latest update: #13320] | | Form(Object)>>error: | Receiver: Form(12x12x32) | Arguments and temporary variables: | aString: 'MessageNotUnderstood: Form>>capitalized' | Receiver's instance variables: | bits: a Bitmap of length 144 | width: 12 | height: 12 | depth: 32 | | offset: nil | | | | | | | 2012/2/10 Gast?n Dall' Oglio < gaston.dalloglio at gmail.com > | | | | Sorry, no same error, but with load JqueryWidgetBox I wish say. | | | | | | 2012/2/10 Gast?n Dall' Oglio < gaston.dalloglio at gmail.com > | | | | I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside | 3.0.6 OneClick and I get this same error. I do not know, but it seem | to be something with OB. | | I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) | loadLatestVersion , I attach the log. | | | | | | | | 2012/2/10 Offray Vladimir Luna C?rdenas < offray at riseup.net > | | | Hi all, | | Hi. I'm trying to load a dynatree support[0][1] in Seaside following | the instructions at [2]. It says that I need to load the last | version of ConfigurationOfJQueryWidgetBox and then | JQWidgetBox-Dynatree-Dev-tbn.3 JQWidgetBox-Dynatree-Core-tbn.3, but | it doesn't say how, so following the instructions at [3] I thought | that: | | ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) | load: | #('JQWidgetBox-Dynatree-Core-tbn.4' | 'JQWidgetBox-Dynatree-Dev-tbn.4'). | | would do the trick, but the first object doesn't understand the | "load:" message. So there is something I'm not understanding | properly. Any help would be appreciated. | | Cheers, | | Offray | | [0] http://wwwendt.de/tech/dynatree/ | [1] http://wwwendt.de/tech/dynatree/doc/samples.html | [2] | http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html | [3] | http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html | _______________________________________________ | 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 gaston.dalloglio at gmail.com Fri Feb 10 21:03:49 2012 From: gaston.dalloglio at gmail.com (=?ISO-8859-1?Q?Gast=F3n_Dall=27_Oglio?=) Date: Fri, 10 Feb 2012 17:03:49 -0300 Subject: Enabling Dynatree on Pier/Seaside In-Reply-To: <854834292.900146.1328899414583.JavaMail.root@zimbra-prod-mbox-2.vmware.com> References: <854834292.900146.1328899414583.JavaMail.root@zimbra-prod-mbox-2.vmware.com> Message-ID: Hi Dale. You are right, in Seaside 3.0.6 OneClick (from Seeaside site) JQueryWidgetBox load perfectly, sorry! In that image that I have the problem is too new, from http://jenkins.lukas-renggli.ch/job/Seaside%203.0/ . That exactly: http://jenkins.lukas-renggli.ch/job/Seaside%203.0/lastSuccessfulBuild/artifact/Seaside-3.0-OneClick.zip I mixed up Seaside-3.0-OneClick.zip (jenkins) with Seaside-3.0.6-OneClick.zip (seaside site). Thanks! 2012/2/10 Dale Henrichs > Gast?n, > > If the Form>>capitalized stack is indeed the stack that you are having > trouble with, it is an indication that you are getting the wrong version of > OB loaded into your image, so it is important (I think) to understand > exactly which version of Pharo you are using (the update # from the > System>>about menu is important). You may be using a Pharo version that is > too old or too new. > > If we get the pharo version straightened out, I think that we can resolve > the OB issues ... > > Dale > > ----- Original Message ----- > | From: "Gast?n Dall' Oglio" > | To: "Pier and Related Tools Magritte ..." > | Sent: Friday, February 10, 2012 4:10:50 AM > | Subject: Re: Enabling Dynatree on Pier/Seaside > | > | > | > | mmmm there are others previous error in log that I send. The last is > | the important: > | > | > | ------------------------------------------------------------ > | > | THERE_BE_DRAGONS_HERE > | Error: MessageNotUnderstood: Form>>capitalized > | 10 February 2012 8:51:22 am > | > | VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter > | VMMaker.oscog-eem.140] > | Image: Pharo1.3 [Latest update: #13320] > | > | Form(Object)>>error: > | Receiver: Form(12x12x32) > | Arguments and temporary variables: > | aString: 'MessageNotUnderstood: Form>>capitalized' > | Receiver's instance variables: > | bits: a Bitmap of length 144 > | width: 12 > | height: 12 > | depth: 32 > | > | offset: nil > | > | > | > | > | > | > | 2012/2/10 Gast?n Dall' Oglio < gaston.dalloglio at gmail.com > > | > | > | > | Sorry, no same error, but with load JqueryWidgetBox I wish say. > | > | > | > | > | > | 2012/2/10 Gast?n Dall' Oglio < gaston.dalloglio at gmail.com > > | > | > | > | I try to load ConfigurationOfJQueryWidgetBox yesterday in a Seaside > | 3.0.6 OneClick and I get this same error. I do not know, but it seem > | to be something with OB. > | > | I do (Smalltalk at: #ConfigurationOfJQueryWidgetBox) > | loadLatestVersion , I attach the log. > | > | > | > | > | > | > | > | 2012/2/10 Offray Vladimir Luna C?rdenas < offray at riseup.net > > | > | > | Hi all, > | > | Hi. I'm trying to load a dynatree support[0][1] in Seaside following > | the instructions at [2]. It says that I need to load the last > | version of ConfigurationOfJQueryWidgetBox and then > | JQWidgetBox-Dynatree-Dev-tbn.3 JQWidgetBox-Dynatree-Core-tbn.3, but > | it doesn't say how, so following the instructions at [3] I thought > | that: > | > | ((Smalltalk at: #ConfigurationOfJQueryWidgetBox) loadLatestVersion) > | load: > | #('JQWidgetBox-Dynatree-Core-tbn.4' > | 'JQWidgetBox-Dynatree-Dev-tbn.4'). > | > | would do the trick, but the first object doesn't understand the > | "load:" message. So there is something I'm not understanding > | properly. Any help would be appreciated. > | > | Cheers, > | > | Offray > | > | [0] http://wwwendt.de/tech/dynatree/ > | [1] http://wwwendt.de/tech/dynatree/doc/samples.html > | [2] > | > http://forum.world.st/ANN-Dynatree-as-part-of-jquery-widget-box-td3748281.html > | [3] > | http://forum.world.st/ANN-JQueryWidgetbox-and-Metacello-td1013881.html > | _______________________________________________ > | 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 > > _______________________________________________ > Magritte, Pier and Related Tools ... > https://www.iam.unibe.ch/mailman/listinfo/smallwiki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jborden23 at mac.com Thu Feb 16 22:22:43 2012 From: jborden23 at mac.com (John Borden) Date: Thu, 16 Feb 2012 15:22:43 -0600 Subject: value:children+ -> rendering relative to containing component In-Reply-To: References: Message-ID: <358754A9-EE1E-4B4E-AEDB-DE81C2801113@mac.com> Hi Sergio - I've seen similar behavior with the table-of-contents - if a child page has this, and it is embedded in a parent page, the TOC will list the parent page when viewing it there. Here's an example: http://smallwiki2.seasidehosting.st/seaside/pier/Smallwiki2-Blog/Embedding-Problems Thanks, John On Feb 7, 2012, at 6:27 PM, sergio_101 wrote: > hi all.. > > say i have a component.. call "stories" > > this has many children: > > "story 1" > "story 2" > "story 3" > > so, all i want to do is list all the stories in the component.. > > so, stories would have: > > +value:children+ > > everything works just fine.. > > so.. now, i'd like to embed this component in another page.. > > i end up with a page with this: > > some text.. blah blah .. here is my list of stories: > +stories+ > > the problem is, it wants to rembed value:children with respect to the > current structure (which, according to the docs, is what it should > do).. > > but i would rather have the the children render relative to the > containing structure.. > > i hope this all makes sense .. > > anyone have 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lenglish5 at cox.net Fri Feb 17 22:42:51 2012 From: lenglish5 at cox.net (Lawson English) Date: Fri, 17 Feb 2012 14:42:51 -0700 Subject: slideshows in seaside/pier Message-ID: <4F3EC9DB.2090005@cox.net> Are there any tools/components readily installable in seaside/pier that will do something like this? http://issuu.com/contextmagazine/docs/context_magazine_-_issue_one_v2?mode=window&backgroundColor=%23222222 Thanks, Lawson From nick.ager at gmail.com Sun Feb 19 10:30:32 2012 From: nick.ager at gmail.com (Nick Ager) Date: Sun, 19 Feb 2012 09:30:32 +0000 Subject: Magritte 3 Message-ID: Hi, I'm pleased to announce a new version of Magritte - Magritte 3. The rational for Magritte 3 is eloquently described by Lukas in his mail below. The work on Magritte 3 was started by Esteban and completed by myself. I've created a screen-cast which describes: - the rational for Magritte 3 - the refactorings available to ease the transition from Magritte 1 or 2 to Magritte 3 - A walk-through of updating a sample from Magritte 2 to Magritte 3. The screen-cast is on vimeo at: http://vimeo.com/37032840 The sample used in screen-cast can be downloaded as: Gofer it > url: 'http://ss3.gemstone.com/ss/MagritteMagic'; > package: 'ConfigurationOfMagritteMagic'; > load. > > (Smalltalk at: #ConfigurationOfMagritteMagic) load. The slides used in the screen-case can be viewed on slideshare at: http://www.slideshare.net/nickager/magritte3 Enjoy 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. I think that at some point Magritte should be improved in that regard. I wrote a proposal this summer for how to proceed, 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 renggli at gmail.com Sun Feb 19 10:43:23 2012 From: renggli at gmail.com (Lukas Renggli) Date: Sun, 19 Feb 2012 10:43:23 +0100 Subject: [Seaside] Magritte 3 In-Reply-To: References: Message-ID: Hi Nick, Exciting news! I believe the new architecture modernizes Magritte, and improves its usability and power by magnitudes. Keep the improvements rolling! Lukas On 19 February 2012 10:30, Nick Ager wrote: > Hi, > > I'm pleased to announce a new version of Magritte ?- Magritte 3. The > rational for Magritte 3 is eloquently described by Lukas in his mail below. > The work on Magritte 3 was started by Esteban and completed by myself. > > I've created a screen-cast which describes: > > ?the rational for Magritte 3 > ?the refactorings available to ease the transition from Magritte 1 or 2 to > Magritte 3 > ?A walk-through of updating a sample from Magritte 2 to Magritte 3. > > The screen-cast is on vimeo at: > http://vimeo.com/37032840 > > The sample used in screen-cast can be downloaded as: > >> Gofer it >> url: 'http://ss3.gemstone.com/ss/MagritteMagic'; >> package: 'ConfigurationOfMagritteMagic'; >> load. >> >> (Smalltalk at: #ConfigurationOfMagritteMagic) load. > > > The slides used in the screen-case can be viewed on slideshare at: > > http://www.slideshare.net/nickager/magritte3 > > Enjoy > > 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. I think that at some point Magritte should be improved > in that regard. I wrote a proposal this summer for how to proceed, > 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. > > _______________________________________________ > seaside mailing list > seaside at lists.squeakfoundation.org > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > -- Lukas Renggli www.lukas-renggli.ch From philippe.marschall at gmail.com Tue Feb 21 09:19:56 2012 From: philippe.marschall at gmail.com (Philippe Marschall) Date: Tue, 21 Feb 2012 09:19:56 +0100 Subject: [Seaside] Magritte 3 In-Reply-To: References: Message-ID: 2012/2/19 Nick Ager : > Hi, > > I'm pleased to announce a new version of Magritte ?- Magritte 3. The > rational for Magritte 3 is eloquently described by Lukas in his mail below. > The work on Magritte 3 was started by Esteban and completed by myself. > > I've created a screen-cast which describes: > > ?the rational for Magritte 3 > ?the refactorings available to ease the transition from Magritte 1 or 2 to > Magritte 3 > ?A walk-through of updating a sample from Magritte 2 to Magritte 3. > > The screen-cast is on vimeo at: > http://vimeo.com/37032840 > > The sample used in screen-cast can be downloaded as: > >> Gofer it >> url: 'http://ss3.gemstone.com/ss/MagritteMagic'; >> package: 'ConfigurationOfMagritteMagic'; >> load. >> >> (Smalltalk at: #ConfigurationOfMagritteMagic) load. > > > The slides used in the screen-case can be viewed on slideshare at: > > http://www.slideshare.net/nickager/magritte3 Great work, nice video. Very cool (and useful) to use the rewrite engine to help porting. Cheers Philippe From nick.ager at gmail.com Thu Feb 23 15:33:20 2012 From: nick.ager at gmail.com (Nick Ager) Date: Thu, 23 Feb 2012 14:33:20 +0000 Subject: Magritte 3 Gemstone port Message-ID: Hi, Magritte 3 is now available for Gemstone - with tests green. The configuration has been updated and I loaded Magritte 3 with: Gofer it squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfMagritte3'; load. MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [ ConfigurationOfMagritte3 project stableVersion load: #('Seaside Tests') ]. However the tests run extremely slowly - in the test suite I've measured 20x slowdown between Magritte 2 and Magritte 3 - making the tests a pain to execute. I've run a series of tests to characterise where the problem might be. The tests are as follows: ----- 1) Test-suite benchmark: | testSuite | testSuite := (OBClassCategoryNode on: 'Magritte-Tests-Model-Description') classes inject: TestSuite new into: [:suite :classNode | (classNode theClass inheritsFrom: TestCase) ifTrue: [suite addTests: classNode theClass suite tests]. suite]. Time millisecondsToRun: [ testSuite run ]. 2) Description benchmark: Magritte 2: Time millisecondsToRun: [100 timesRepeat: [ MABooleanDescription description ] ]. Magritte 3: Time millisecondsToRun: [100 timesRepeat: [ MABooleanDescription new magritteDescription ] ]. 3) Micro-benchmark Magritte 2: Time millisecondsToRun: [100 timesRepeat: [ MABooleanDescription class allSelectors select: [ :each | each isDescriptionSelector ] ] ]. Magritte 3: Time millisecondsToRun: [100 timesRepeat: [ Pragma allNamed: MAPragmaBuilder magritteDescriptionPragma from: MABooleanDescription to: Object ] ]. * The micro-benchmark is illustrative of the difference between Magritte 2 and Magritte 3 - Magritte 2 uses a naming convention to retrieve descriptions, whereas Magritte 3 uses Pragmas. ----- Results: Pharo Magritte 2: (1) 436 (2) 0 (3) 85 Pharo Magritte 3: (1) 743 (2) 58 (3) 12 Gemstone Magritte 2: (1) 988 (2) 30 (3) 2229 Gemstone Magritte 3: (1) 21663 (2) 1575 (3) 444 Cavet: Although Gemstone and Pharo are running on the same machine - Gemstone is running virtualised in a VMWare Linux installation, so the results are not directly comparable, although the 30x performance decrease between Pharo and Gemstone surprised me. First the good news: For Magritte the pragma description look-up is more performant than the named-based lookup (micro-benchmark (3)). Now the bad news: In Pharo Magritte 2 is faster then Magritte 3 when running a description lookup based test-suite containing 1416 tests. My feeling is that in the context of a real application performing a smaller number of lookups this is probably not significant. However in Gemstone the performance degradation is more noticeable and if nothing else makes running the tests painful. How to proceed: Magritte 2's performance advantage is gained from caching the descriptions. However I think the benefits of having dynamic (non-caching) descriptions outweigh the disadvantages and I'd be reluctant to add a generic layer of caching. In Pharo I don't think this is an issue. However in Gemstone I feel that these numbers need some further investigation. Any thoughts how to proceed? Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.ager at gmail.com Fri Feb 24 14:45:05 2012 From: nick.ager at gmail.com (Nick Ager) Date: Fri, 24 Feb 2012 13:45:05 +0000 Subject: Pier 3 for Gemstone Message-ID: Hi, I've completed an initial port of Pier 3 (Pier using Magritte 3 descriptions) to Gemstone. It can be loaded in Gemstone using: Gofer it > squeaksource: 'MetacelloRepository'; > package: 'ConfigurationOfPier3AddOns'; > load. > > MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [ > ConfigurationOfPier3AddOns load ]. By default this configuration will load Pier-Admin and the Pier add-ons necessary to make this work - (Pier-Admin is described in this screen-cast: http://vimeo.com/32749535) Let me know how you get on, Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From tudor at tudorgirba.com Fri Feb 24 23:48:31 2012 From: tudor at tudorgirba.com (Tudor Girba) Date: Fri, 24 Feb 2012 23:48:31 +0100 Subject: moose and magritte 3 Message-ID: <6A7566A5-2413-4A47-95B9-6A103F6753A9@tudorgirba.com> Hi, I just wanted to let you know that the Glamour and Metanool (transformation engine between Fame and Magritte) are now using Magritte 3. Consequently, in the latest Moose image you will find Magritte 3. Cheers, Doru -- www.tudorgirba.com Things happen when they happen, not when you talk about them happening. From nick.ager at gmail.com Sun Feb 26 11:38:58 2012 From: nick.ager at gmail.com (Nick Ager) Date: Sun, 26 Feb 2012 10:38:58 +0000 Subject: Pier 3 for Gemstone In-Reply-To: References: Message-ID: > > > I've completed an initial port of Pier 3 (Pier using Magritte 3 > descriptions) to Gemstone. > > Embarrassingly I announced the Gemstone Pier 3 port before all the tests were green. Now all tests are green. You can load Pier 3 with tests using: Gofer it squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfPier3AddOns'; load. ConfigurationOfPier3AddOns project stableVersion load: 'Tests'. -------------- next part -------------- An HTML attachment was scrubbed... URL: