> > This is a subclass of the Squeak to VisualWorks code exporter
> > (implemented by Avi) adapted to properly export all the Magritte and
> > Pier packages and to get the namespaces right. Running the exporter
> > makes it possible to load all the code into VisualWorks, but I never
> > had the time to make it actually run in there ... so that is what
> > requires the next steps ...
> >
> Lukas,
>
> Just wondering if I wanted to go down this path, where can I find this
> code exporter tool -- is
> it on the Squeak side or the Visual Works side? I'd like to give it a
> shot even though I'm somewhat
> green behind the ears!
First of all you need PackageInfo-Exporters from SqueakMap. Then you
need the package "Magritte-VisualWorks" from
<http://mc.lukas-renggli.ch/magritte>. Evaluating "MADistribution
fileOutForVisualWorks" should produce you a couple of files that can
be loaded into VisualWorks, however I never actually tried to do it
;-)
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
On IE 6.0 the "Run" button is hidden near the left-bottom corner of the light-blue field, but you see a hand appear (and the balloon-help) when you hoover over it with the cursor. (the invisible Save and Reset buttons are under the left-bottom corner of the logo-code view). Though hidden, the buttons work OK
Hans
-----Original Message-----
From: smallwiki-bounces(a)iam.unibe.ch [mailto:smallwiki-bounces@iam.unibe.ch] On Behalf Of Cees De Groot
Sent: woensdag 19 april 2006 11:04
To: SmallWiki, Magritte, Pier and Related Tools ...
Subject: Re: http://www.logowiki.net
Could be cool, but what browser does it need? It doesn't do a thing on my Firefox 1.0.7 nor on IE 6.0...
On 4/19/06, Stéphane Ducasse <stephane.ducasse(a)univ-savoie.fr> wrote:
> :)
> read the about :)
>
> _______________________________________________
> SmallWiki, Magritte, Pier and Related Tools ...
> https://www.iam.unibe.ch/mailman/listinfo/smallwiki
>
_______________________________________________
SmallWiki, Magritte, Pier and Related Tools ...
https://www.iam.unibe.ch/mailman/listinfo/smallwiki
Hi Frank,
> I've tryed to install pier from your squeakmap
> repository. First I take a fresh Seaside-image from
> Seaside-website and after this a load the packages
> Margrit and Pier with monticello. After restart the image
> I tryed to start Seaside-pier in the webbrowswer. There
> an error comes up with a message not understood of
> an class from Seaside. So I think it is an version-problem
> with seaside. What package versiion (mcz) you use for
> the actual version of pier?
just load the Pier package from SqueakMap into a fresh 3.8 image. It
will automatically load all required prerequisites such as Kom,
Seaside, Magritte, etc.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
> For security and web, I'm a little bit paranoid, especially at
> such powerful systems like Pier ;-) I've discussed security in
> Seaside/Pier with a friend, and from this I'm not sure today what I
> expect from such systems like seaside/pier. He says, security
> belongs only to buisness logic. I'm not so shure, also what to call
> buisness logic in Pier...... I will post a related question to the
> list later.
If your friend means "model" when talking about "business logic", he
is right: the security decoration is a pure model object, that works
exactly the same for all views, not just seaside one. Thanks to the
nature of visitors one can easily control how security concerns are
handled when performing operations.
> You could help me understand the code answering the following
> question: in your security package, every structure element
> (decorator or the decorated element) has an owner, and the the
> rights of that owner decide what is possible (that the UNIX way, I
> think). Is that right ?
Yes, the code modeling the unix permissions is quite simple to read,
of course you can tweak that behavior if you need to. I think it
comes quite close what unix does, but I no unix expert.
SUSecurity>>isAllowedCommand: aCommandClass in: aContext
(aContext user notNil and: [ aContext user isSuperuser ])
ifTrue: [ ^ true ].
(self owner = aContext user)
ifTrue: [ ^ self ownerCommands includes: aCommandClass ].
(self group notNil and: [ self group includes: aContext user ])
ifTrue: [ ^ self groupCommands includes: aCommandClass ].
^ self otherCommands includes: aCommandClass
> But what about the commandos: is the security given by existence
> (only the commandos in structure exist, which are executable) or by
> right for execution for every commando (as in UNIX file system) ?
> That I have not understand until now.
I am not quite sure if I understand your question, maybe you can
deduce the answer from the above code yourself?
Basically every security decoration knows a list of all allowed
commands for the owner, the group and all the others, like the unix
"rwx", but for all available commands in the system. The security
decoration does not care what it decorates, e.g, when giving the
permission to admin to remove the root page, he still won't be able
to do that simply because the remove-command does not work on the
root, something that is enforced by the command itself.
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Hi Hans,
> hope you have has a nice trip to Toronto :-)
yep, Canada is great! The Pier & Magritte presentation was a success.
> One Question: in the PRContext>>user, there will be set property
> user to nil if this property does not exist. Could that be
> dangorous ? Should there be set some default user with smallest
> rights ? (And should this user come from PRKernel as the smallest
> user in current kernel or come from PRUser class as the smallest
> thinkable user ?)
Yeah, this is not a nice design. Similar as the 'admin' user and
'admin' role, there should be an 'anonymous' user and an 'anonymous'
role. There are several checks for nil now, what makes it quite ugly
in the oo-world, however I don't think this imposes any security
risk ;-)
I will have a look at this as soon as possible.
Cheers,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
Hi, where is the code that pier uses to deep link into a site? I have a
few installations that seem to have lost the ability to deep link,
despite being the latest code, yet deep link just fine if I create a new
site. Thought I could save a little time if someone already had the
issue, or knows that bit of code.
> > Hi, where is the code that pier uses to deep link into a
> site? I have
> > a few installations that seem to have lost the ability to
> deep link,
> > despite being the latest code, yet deep link just fine if I
> create a
> > new site. Thought I could save a little time if someone
> already had
> > the issue, or knows that bit of code.
>
> Mhh, not much changed in this area for the past few months.
> The last big change was to make a difference between the
> title and the name of a page, but the lookup should work for
> name and title, check-out the mailing-list archive.
>
> Can you give some more hints what is not properly working?
> There are also tests that check all kinds of deep- and
> relative linking.
>
> Cheers,
> Lukas
I'll see if I can take a look at it tonight, at the moment, I only know
it's not working, but haven't fired up the debugger yet.
Hi :)
I try to use a MARelationDescription with an object that fetch its
description automatically from instances... and I have a problem...
To illustrate, let's take the Magritte tutorial example with 2 model
classes MAPersonModel and MAAdressModel.
In MAPersonModel we have an inst var homeAdress with the corresponding
description on the class side:
MAPersonModel class>>descriptionHomeAddress
^ (MAToOneRelationDescription auto: 'homeAddress' label: 'Home
Address' priority: 40)
componentClass: MAInternalEditorComponent;
classes: (Array with: MAAddressModel);
yourself.
and that is enough because MAAdressModel has its descriptions defined
(class side). But if descriptions were accessed from instance of
MAAdressModel like:
MAAdressModel>>descriptionGenerated
^MAPriorityDescription new add: (MAStringDescription auto:
'street' label: 'Street' priority: 10);
add:
(MAStringDescription auto: 'place' label: 'Place' priority: 30);
...
yourself.
Then I was thinking it was possible to create the previous description
in the following way (say there are no more desciption in the class side
of MAAdressModel):
MAPersonModel class>>descriptionHomeAddress
^ (MAToOneRelationDescription auto: 'homeAddress' label: 'Home
Address' priority: 40)
***reference: MAAdessModel new descriptionGenerated;***
componentClass: MAInternalEditorComponent;
classes: (Array with: MAAddressModel); *no more description in
the class side of MAAddressModel*
yourself.
I know in this exemple, the interest of doing that is not obvious but
this is because in my case, I have specific description for instances
(one part is general whereas the other is created with values affected
to the object).
Is it possible to do that way ?
what is the correct use of #reference: for a MARelationDescription ?
choosing a kind of container ?
Is there a built-in way to use different descriptions (filtered for
instance) than the one accessed from the classe that are in ToOne or
ToMany relation ?
Thank you
Cédrick