First (alpha!) release of Pier running with Magma Persistency.
Image available from ftp.seasidehosting.st
User: preloaded Password: squeak
enjoy
Keith
------
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
tutorial")
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,
and enter
MCHttpRepository
location: 'http://www.squeaksource.com/Seaside'
user: ''
password: ''
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.
MCHttpRepository
location: 'http://www.squeaksource.com/Monticello'
user: ''
password: ''
Add the following repository for Magma.
MCHttpRepository
location: 'http://www.squeaksource.com/MagmaTester'
user: ''
password: ''
and the following two repositories for Magritte and Pier
MCHttpRepository
location: 'http://mc.lukas-renggli.ch/magritte'
user: ''
password: ''
MCHttpRepository
location: 'http://mc.lukas-renggli.ch/pier'
user: ''
password: ''
also:
MCHttpRepository
location: 'http://www.squeaksource.com/OmniBrowser'
user: ''
password: ''
(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'.
----
Loading Seaside
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
will open.
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.
Loaded Seaside2.6b1-mb.79
Loaded Scriptaculous-lr.137
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
web browser.
http://localhost:8080/seaside/config
you should be prompted for you username and password (as given earlier).
----
Loading Magma
Back to the Monticello Browser. Deselect the selected package by
clicking on it once. This should re-reveal all of the registered
repositories.
(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
"open".
Select MagmaServerLoader, and click "load". (it takes a while!)
loaded MagmaServerLoader-cmm.21
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
loaded Seaside-Examples-Store-Magma.kph-11
----
Before using Magma may need to execute the following.
MagmaSession initialize.
MagmaRepositoryController initialize.
useful snippets
MagmaSession allInstances cleanUp.
MagmaSession disconnectAndCloseAllConnectedSessions.
----
Load Magritte
loaded Magritte-All-lr.171
Load Pier
loaded Pier-All-lr.109
Load OmniBrowser
loaded OmniBrowser-avi.258
loaded Pier-OmniBrowser-lr.19
----
Latest Pier-Magma code
loaded Pier-Model-kph.80
loaded Pier-Seaside-kph.80
loaded Pier-Magma-kph.1
----
Pre-upload actions:
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 was wondering if it might be worth dispatching the calls
visitBrokenInternalLink: visitEmbeddedInternalLink: etc back to the Link
instance...
So that the types of link can render themselves appropriately.
Keith
Hi list, im working with Pier on VisualWorks and I have to add a user.
So I do this:
((PRKernel instanceNamed:'Pier') propertyAt: #users) add: self user.
But when a look a users report the new one doesn´t appear. And in the
Pier Kernel its replicated. Its something Im doing wrong? Exist another
way to add a user?
Greetings in advance,
Sebastián
Dear All,
Pier (or any other seaside application) no longer needs a specialized
root component in order to use ShoreComponents. The Seaside28Jetsam
package now includes a ShoreHelperHelper which can be enabled in your
pier app configuration.
The "Helper" portion of Jetsam is entirely self contained, so could be
distributed separately.
The goal of the helpers concept is to avoid having to use specialized
root classes for generic additions which results in combinatorial
problems for multiple such additions.
Helpers are Decorations which are automatically added to the root
component of any application subject to configuration options. They work
similarly to other Plugins in Seaside 2.8, as in, you can provide
additional Helpers by subclassing WAHelper.
So far, in addition to the "Shore Components Helper", Jetsam implements
a "Keep Alive Helper" for keeping the session alive while the users
browser is open. I find the later totally indispensable.
Next I am looking to see how a similar mechanism can be used to avoid
needing to subclass WASession. I aim to support Magma as a helper so
that all of the different options for shared or pooled magma sessions
can be orthogonal to the choice of seaside session class. If Comet could
be added as a helper as well then that would also be great.
best regards
Keith
Some folks may find this useful
Keith
-=-=-
Name: Pier-Commands-RemoveChildren-kph.1
Author: kph
Time: 26 October 2007, 6:26:35 pm
UUID: 9a0279a6-83e8-11dc-a340-000a95edb42a
Ancestors:
Original Author: Damien Cassou <damien.cassou(a)gmail.com>
Remove Children, presents a list of the current structures children for
you to select those you wish to remove.
This command is particularly useful for removing components whose
display becomes broken during development.
- update of what was Pier-UsefullComands for the latest Pier (circa
Pier-Model-lr.175)
Hi Lukas,
I am struggling to see how components can register sub-components as
children.
One of my components has a header/footer fields which are rendered using
wiki format.
Unfortunately embedding components in this format does not work and I am
trying to find a way to fix it.
any thoughts?
Keith
I have a traditional "gather information over 10 pages" app in Perl that I'm
rewriting using Seaside and Magritte. The current app stashes everything in a
giant Perl hash (saving and loading from hidden vars) at each step.
Sometimes, the presence or absence of (or even repetitions of) a field depends
on previous questions answered on previous pages. When I started to model
this with Magaritte, I quickly hit some roadblocks trying to implement the
dynamic "descriptionFoo" since these are (a) cached and (b) have no access to
"self" since they are class-side. So I've managed to come up with something
that sorta works instance-side, but I'm not very happy with it, as I wonder
for example how many times "myModel description" will be called during a
render, and whether I should try to cache that. I also am ending up with a
series of subclasses of a parent class that holds the entire collected values,
but has only the items of interest. None of this seems very clean, and it
seems like I'm reinventing some wheels.
Does anyone have some examples of how to do things like a basic "gather info
from a multipage query, some of which depends on earlier answers" task would
work and look like?
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn(a)stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
I found this fix in my code which is another intended to preserve the
command-context integrity
Keith
---
PRCommand-context: aContext
context: aContext
(self isValidIn: aContext)
ifFalse: [ self error: self name , ' is not useable in the given
context.' ].
^ (aContext command: self new) command