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,
Here is what I did:
- I downloaded the latest Seaside.app
- Started Pier in the browser
- Edit Design
- Save
This results in a page that shows the pages referenced in the
Environment as missing.
The problem seems to be that the relative links in the Environment are
now solved differently. Before, they were solved relative to the
Environment, but now they seem to be solved relative to the page from
where I invoke Edit Design.
I figured this out because if you sy Edit Design from the Environment
page, the links are resolved correctly :).
So, is this the intended behavior? If it is, it means that we have to
specify the Environment with absolute links.
Cheers,
Doru
--
www.tudorgirba.comwww.tudorgirba.com/blog
"Sometimes the best solution is not the best solution."
Hello--
Newbie here. :-)
I'm writing a Json visitor for a project and I'd like to stream
MAFileModel on it but I'm at a loss about how to proceed.
For most simple descriptions, streaming the value is just a matter of
rendering the value according to the description using the normal
visitor pattern. However, MAFileModel is a full-blown class and
doesn't have a corresponding description to guide the process.
What would be the most interesting path here: add the required
descriptions to the classes or just go ahead and stream the
attributes?
It seems to me that the second options make the Json visitor to
tightly coupled to the MAFileModel class. On the other hand, adding
the descriptions may not be that interesting because it would mean
changing a Magritte base class.
Any suggestions?
Thanks. :-)
--
Ronaldo Ferraz
http://log.reflectivesurface.com
Hi
The purpose or PRMeta is to add meta information to structure...
"additional fields to any structure (sort of a replacement of
Pier-Form)" .
Is it this kind of extension that could help resize picture for
instance (we add 2 Number that describe height and weight).
I don't see really well how to use them. Can you provide me a simple example ?
What is the way to use these meta variables in computation ?
Also, would PRMeta extensions to PRStructure could be added to MADescription ?
I want to make a description wich is basically a single option
description, except that I'd like to extend the description with a
symetric matrix that held comparison similarity numbers. For instance,
let's consider an attribute weatherCondition, it's options are:
(excellent, good, bad, extreme).
Let say, I have the following comparison matrix for the attribute
weatherCondition:
excellent good bad extreme
excellent 1 0.8 0.1 0
good 1 0.2 0
bad 1 0.7
extreme 1
so that: similarityBetween: 'good' and: 'bad' returns 0.2
I'd like to attach this matrix to the description, and was thinkink an
extension like meta could do it. It will allow me to edit the
similarity matrix too (sort of edit meta like in pier).
If you see any obvious alternative to do what I want, please tell me,
but I find this could be nicey done with Magritte.
Thanks
Cédrick
Hi,
When I look at the code of OrderedCollection>>removeAll from de Squeak-
Web image I see:
removeAll
"remove all elements quickly"
self become: OrderedCollection new
It seem to me that is not a fast way of removing all element of the
collection.
I would rather do:
removeAll
self setCollection: (Array new: self size)
I do not see the #removeAll method in other image and by looking at
the sender it seem that is aida who use it.
Mth
Hi
I'd like to be able to put condition on cells of my table. I want them
to be Number (float between 0 and 1 or integer between 0 and 100).
So I changed the method buildDescriptionTable in MATableComponent (a copy of it)
buildDescriptionTable
^ self dataTable collect: [ :row :col :each |
self description reference copy "(-> return a MAStringDescription)"
accessor: MANullAccessor new;
label: row asString , '/' , col asString;
propertyAt: #row put: row;
propertyAt: #column put: col;
yourself ]
becomes:
buildDescriptionTable
^ self dataTable collect: [ :row :col :each |
MANumberDescription new
accessor: (MABlockAccessor
read: [ :model | (model memento cache at: (self description) )
at: row at: col ]
write: [ :model :object | self halt. (model memento cache at:
(self description) )at: row at: col put: object]);
min: 0 max: 1;
label: row asString , '/' , col asString;
readonly: (col < row);
propertyAt: #row put: row;
propertyAt: #column put: col;
yourself ].
I think that instead of a NullAccessor and write:using: and readUsing:
which I removed, I can have a real accessor that can do the job. but
this doesn't really work :)
I'm sure I messed something with the memento (all table value are the
same now), so if you see something wrong in what I did, please tell
me.
Thanks,
Cédrick
Hi,
Still for my descriptor (attribute). I defined a similarity matrix in
the class side.
I've never used Magritte to edit class inst var, so out of curiosity,
what accessor would you use ?
I've use a Block Accessor.
(MABlockAccessor
read: [ :model | model class matrix]
write: [ :model :object | model class matrix: aMatrix]);
Is it ok to edit class side inst var ? What would you use ?
Also, I was doing a matrix description, but I saw MATableModel and
MATableComponent... it seems to be a "matrix", isnt'it ?
Thanks
Cédrick