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
Hi,
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
are welcome.
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).
Thanks
Paul
Hello,
I'd like to collect some snippets of documentation about Pier. Would
http://smallwiki.unibe.ch/smallwiki/pier/
be the right place to do so? I was not able to figure out a login to
that wiki :-(
Matthias
Hi,
I'm a user of seaside testing. SeasideTesting provides two
methods for accessing form elements. It's by index and by
element id. Requesting by index is too error prone as the
change of the order of form elements breaks the test.
Requesting by id is rendered impossible by using Magritte.
The ajaxId: stuff includes the hash of an object and is not
predictable when used inside a test.
I changed ajaxId: in MAComponent to use the following:
ajaxId: aSymbol
| accessor |
^ String streamContents: [
:stream|
accessor := self description accessor.
[ accessor respondsTo: #next ] whileTrue: [
stream nextPutAll: accessor accessor readSelector.
stream nextPut: $..
accessor := accessor next
].
stream nextPutAll: accessor readSelector.
].
This gives you the name of the selector as id and for nested
descriptions you get nestedObjectSelector.selector. Therefor
the ids per object are unique and are easily used in SeasideTesting.
But my colleague reminded me that this only works if I have a
single form on the page. He said the id has to be unique across
the whole page. So my approach is bit critical.
Is there anybody who uses SeasideTesting for testing magritte
components? And if yes how do you do that?
thanks,
Norbert
I have an existing seaside application that I would like to port into
the Pier framework, and need some pointers :)
1. I store some things on session; what is the Pier equivalent?
2. Do I have to move my renderContentOn: methods to renderWidgetOn:?
3. Should I subclass MAComponent or PRViewComponent or something
entirely different?
Thanks!
Brian
(I've looked on the pier Wiki and read the FAQ and have got a minimal
grasp of Magritte (and am using it in a non Pier context), but I
haven't found any developer getting started type documentation)
At some point I thought I saw a video demonstrating how to create
the birthday forms used in "Creating Custom Forms" video using the
web interface. The "Creating Custom Forms" video shows how to copy
one and modify it, but not how they got there in the first place. Is
that still around some where?
Thanks,
Brian
Hi,
OrderedCollection>>copyWithAll: does not work.
(OrderedCollection with: 1 with: 2) copyWithAll: {3 . 4 . 5 }
throws an error. It uses replaceFrom:to:with: which tries
to operate on non-existing indexes. copyWithAll: is just
used at two places
MADistribution>>addPostscript:
and
MADistribution>>addPreamble:
These make use of Collection>>copyWithAll: which works for
String objects. OrderedCollection>>copyWithAll: is never
used.
So it isn't that important and might be better removed
regards,
Norbert