First (alpha!) release of Pier running with Magma Persistency.
Image available from ftp.seasidehosting.st
User: preloaded Password: squeak
Image Use Instructions
In pier configuration click on 'Magma Control Panel', which will inform
you that the repository does not exist. If you have placed this image on
seasidehosting then you will have to manually create the repository
directory. Given the list of options as to what repository to create,
click the 'create' button (and wait). The existing pier kernel should
appear in the list with a 'persist' button next to it, click 'persist'.
Then try it and see!
Detailed Log of Image Creation Steps (alternative title: "monticello
This image was prepared as follows:
Beginning with Squeak3.8-6555full
Initial start asks for updates: select "do not ask again" - this is
important should you wish to deploy. Headless servers (e.g.
seasidehosting) cannot handle user interaction and will stop at this point.
From "world menu > open.... > Monticello Browser"
Browser opens with (Monticello....)
Click the "+Repository Button", select "HTTP" as the repository type,
as the repository info (if you have a login on Squeaksource then you can
enter your initials
as the 'user' above.)
Add the following repository for Monticello.
Add the following repository for Magma.
and the following two repositories for Magritte and Pier
(to edit this information:
click the menu button in the right hand pane of the Monticello Browser)
Loading Latest Monticello.
More recent versions of Monticello provide better feedback as to which
packages are currently loaded.
Select the http://www.squeaksource.com/Monticello repository, click
"open", select the latest package (Monticello-avi.279) from the main
"Monticello" branch, and click "load".
Select the Monticello package on the left hand pane, and the
squeaksource/Monticello repository in the right hand pane. Click 'open'.
In the repository browser, click on the latest version
(Monticello-avi.279.mcz) and click 'Load'.
Select "world menu > open... SqueakMap"... and a dialog will ask if you
wish to upgrade SqueakMap. Which you do. Notice that SMBase, SMLoader
packages appeaer in the Monticello browser, since the upgrade is
performed by loading Monticello packages.
In SqueakMap, select the ever so convenient "Seaside Installer" which
should load in the whole of seaside with its dependencies in one go. To
do this select the left had pane menu button, "install". (Part way
through the install you will be prompted to enter an admin username
(seaside) and password (admin))
(if SqueakMap doesnt work it is being knobbled by a more recent
package-cache, remove it and try again)
Select the seaside repositoryClick the "open" and the repository browser
Select Seaside2.6b1 which is the current latest. In the right hand pane
are the releases. Releases may be made by anyone and they may be small
branches off from the main stream. Periodically an effort will be made
to ensure that all changes are merged. Click the history button in order
to browse the history of this package to get some idea of what is going
on. Look at the ancestors of a package to see if one version is being
sequentially built on the next, or whether any branching is occurring.
Seaside is fairly mature and changes infrequent, therefore it is likely
to be safe to grab the latest version.
To start Seaside doit:
WAKom startOn: 8080.
( Or use the "beach flags" SeasideMorph
available from: http://minnow.cc.gatech.edu/squeak/5862 )
To test if everything is running, check the following url in your normal
you should be prompted for you username and password (as given earlier).
Back to the Monticello Browser. Deselect the selected package by
clicking on it once. This should re-reveal all of the registered
(It is worth saving this. In the right hand side pane menu button there
is a menu item: "Save Repositories", which writes a simple configuration
script to the working directory.)
Select the http://www.squeaksource.com/MagmaTester repository, and click
Select MagmaServerLoader, and click "load". (it takes a while!)
loaded Ma client server-cmm.123
loaded Ma exception handling-cmm.22
loaded Ma time objects-cmm.37
Load Magma Seaside Integration Package
Select "Magma Seaside" (lhs) and the latest package and click "load",
loaded Magma Seaside-kph.18
Load Magma Seaside Sushi Store Demo fixes
Before using Magma may need to execute the following.
MagmaSession allInstances cleanUp.
Latest Pier-Magma code
Monticello Browser - "flush cached versions".
Release Preloaded Image as Sqk3.8f-smp.image
The all-new Yahoo! Mail goes wherever you go - free your email address from your Internet provider. http://uk.docs.yahoo.com/nowyoucan.html
I am a newbie to programming and especially Smalltalk/Seaside/Pier.
I've been fuddling around for a while trying to learn more in a
Smalltalk environment that is not exactly set up for *complete*
newbies like me. So with that in mind I thought I would start
collecting all the information I can into one place to help others
who may (foolishly! ;) ) follow me. This might be a bigger
undertaking than I realise just yet - but I'm game to give it a shot.
My sense is that there is a quiet group of people out there wishing
this was already available.
Here is the situation - I am not exactly sure the best way to start.
I have books (I've started with SQEAK - A Quick Trip To Objectland)
and more that I've downloaded from the web. But when it comes to Pier
and Seaside (I know this is a Pier list so we can focus on that
specifically) there is not a lot of help for people in my shoes - and
I've heard this cry elsewhere. For example, even though I'm committed
to learning Smalltalk, is Pier even ready for a non-programmer yet?
So I have set up a website @ http://www.BeatTheDrums.org where I
will start to place all the information I gather or create. I am
currently reading a lot of Lucas Renggli's writings and trying to
grok them :). With his kind permission I will be taking what I learn
from that and re-formating it (in a format that works for novices - I
want to be clear that I am showing no disrespect for his work) and
adding in everything else I discover from this list and elsewhere on
the web. The site itself is in extreme ALPHA right now as I try to
get my head around everything and find a starting point and a way to
structure my "journey".
So, on the advice of Lucas, I am announcing my intentions to the list
(sticking my head out!) and asking for your suggestions and advice.
Lucas did mention that most of you are programmers and not inclined
to document your experiences - so whatever pearls you throw my way
Perhaps I should start with a direct question - If you were a
complete novice how would you approach getting started on Pier, given
that you have no access to any professional Smalltalk education
(schools, classes or user groups).
I'd like to collect some snippets of documentation about Pier. Would
be the right place to do so? I was not able to figure out a login to
that wiki :-(
I am a bit lost since the PRComponentSettings vanished in Pier. Actually
I cannot export/import my old kernels because of an obsolete PRComponentSettings.
I think there is a way to remove the PRComponentSettings use in my
kernels but I don't know how to find/do this. Everytime a big change is
made, it could be nice to go thru the Instances of PRKernel to change
things (even if I know it's a lot of work).
I was previously workin in VisualWorks and now I have switched to
squeak.Finding it very difficult to adjust with the lack of adequate
tools and developing evironment in Squeak.Visualworks was much much
better.So could any one tell me if there is anything like a UIPainter in
squeak?I tried Tweak but it needs hell lot of unnessasary coding to even
open a spec or to add some widgets to it.pls give me your suggestions.
Thanks in Advance,
G R Thushar
> Having added a subclass of PRPage, I cant add one in pier due to a
> permissions error.
If you are logged in as administrator this should work.
> Now I understand that an existing page's permissions would not be
> aware of the new class. So I added a new PRPage first, then
> attempted to add the new page type to that. Still no go. So I set a
> halt in PUSecurity-validateCommand: to investigate further.
> It appears that the ownerPermissions set is being created with nils
> in the first couple of slots. This results in #includes: returning
> false before it finds the PUAddPermission that it is looking for in
> slot 4 (in this instance).
The permissions (Unix Security) of new pages inherit from their
parent. Since no structure knows about the 'add new xxx permission'
this won't give you that permission either. You have to explicitly
add this permission using the security commands to have it useable
from a non-admin user.
> The code in the above repository simply converts the sets to arrays
> before the #includes: test and all is fine.
I don't understand how this could help?
I'm using squeak-web-118.image by Damien Cassou. What I did:
1. Install the latest Magritte (Magritte-all-lr.224), then Pier (Pier-all-lr.207) from mc.lukas-renggli.ch.
2. Do WAKom startOn: 8080.
3. Browse to the Pier front page.
4. Click on the link "information page".
5. Click the back button.
6. Click on the "information page" link again.
7. I then get this error:
Error: Components not found while processing callbacks: an Array(a PRDefaultView)
WARender(Object)>>error:selfa WARendertempsaString'Components not found while processing callbacks: an Array(a PRDefaultView)'inst varsroota WAToolFramecontexta WARenderingContextrequesta WARequesturla WAUrl
The version of Pier and Magritte that came with squeak-web-118.image works fine, so something along the way must have broken the back button.
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
Ah, that was it!
Many thanks for the lightning quick response!
----- Original Message ----
From: Lukas Renggli <renggli(a)iam.unibe.ch>
To: "Magritte, Pier and Related Tools ..." <smallwiki(a)iam.unibe.ch>
Sent: Wednesday, May 30, 2007 1:28:59 PM
Subject: Re: Pier back button problem
The latest Pier only works with the latest Seaside 2.8, I don't know
if you have that loaded in squeak-web-118?
On 30 May 2007, at 22:16, Bill Sun wrote:
> I'm using squeak-web-118.image by Damien Cassou. What I did:
> 1. Install the latest Magritte (Magritte-all-lr.224), then Pier
> (Pier-all-lr.207) from mc.lukas-renggli.ch.
> 2. Do WAKom startOn: 8080.
> 3. Browse to the Pier front page.
> 4. Click on the link "information page".
> 5. Click the back button.
> 6. Click on the "information page" link again.
> 7. I then get this error:
> Error: Components not found while processing callbacks: an Array(a
> WARender(Object)>>error:selfa WARendertempsaString'Components not
> found while processing callbacks: an Array(a PRDefaultView)'inst
> varsroota WAToolFramecontexta WARenderingContextrequesta
> WARequesturla WAUrl
> The version of Pier and Magritte that came with squeak-
> web-118.image works fine, so something along the way must have
> broken the back button.
> Moody friends. Drama queens. Your life? Nope! - their life, your
> story. Play Sims Stories at Yahoo! Games.
> SmallWiki, Magritte, Pier and Related Tools ...
SmallWiki, Magritte, Pier and Related Tools ...
____________________________________________________________________________________Got a little couch potato?
Check out fun summer activities for kids.
Thanks for the responses. I did get this to work by using one session
for reading the nested object and registering the new object. One of
the situations where another session's objects would be nice to use
is that rarely changed nested objects could be cached in memory
rather than running another query. Glorp is efficient enough that I
should worry about such things, but old habits die hard :)
On May 30, 2007, at 6:31 AM, Alan Knight wrote:
> I don't quite know why this would be happening, partly because I
> don't know the MagritteGlorp package, so I'm not sure what some of
> these calls are doing. My guess is that it is because you're using
> two different sessions. In general, it's a very bad idea to mix
> objects between two different sessions. Glorp relies on knowing
> whether or not it read the object from the database in order to
> know whether to do an insert or an update. If you read objA in one
> session, then give it to another session as if it were a new
> object, it will probably try to insert it and cause an error. If
> you did this in the same session, I'd expect it to work. Certainly
> that sort of thing works fine in basic Glorp.
> At 01:02 AM 5/30/2007, Brian Murphy-Dye wrote:
>> I'm using Ramon Leon's MagritteGlorp package, which ties together the
>> extremely useful Magritte and Glorp packages, but must not be using
>> it quite correctly. When registering an object that has a reference
>> to an already stored object, it seems to attempt re-insert the
>> referenced object. For example:
>> objA := ADescriptorSystem getSession execute: (A find where [:ea | ea
>> name = 'hello']).
>> objB := B new.
>> objB a: objA.
>> session := B getSession.
>> session beginUnitOfWork.
>> objB register: objB.
>> session commitUnitOfWork.
>> raises a 'GlorpDatabaseWriteError: ERROR: duplicate key violates
>> unique constraint' error. I thought it might be because I am using
>> one session to load the object and another session to register, but
>> believe I've also tried doing everything in one session. If it is of
>> any help, the reference description is of type
>> MAToOneRelationDescription. On another project, I tried
>> MAMultipleOptionDescription with the same error. Any ideas on how to
>> make it recognize the object is already stored and hasn't changed?
>> Thanks, Brian.
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> Glorp-development mailing list
> Alan Knight [|], Cincom Smalltalk Development
> "The Static Typing Philosophy: Make it fast. Make it right. Make it
> run." - Niall Ross