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
(sorry wrong thread)
Error: There is no free space in this set!
I got this error when attempting to add a page
any ideas?
Keith
___________________________________________________________
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,
at the moment I'm playing with magritte to test if it is
suitable for my web application which is done with seaside.
I created a model and I'm able to use it as a component with
seaside. I have a model where ClassA has a 1:m relationship
to ClassB. The exception here is that there is a fixed set
of possible instances for ClassB to choose for the reference
from ClassA.
So what I need on the html rendering side is a kind of a
pull-down and not an extra form for creating new instances of
ClassB.
I read the tutorial.pdf. There are three possibilities mentioned
to customize the views for the model. Unfortunately I didn't
figure out how this is working. The mentioned method defaultContainer
(which should be overridden) doesn't exist in the magritte version
I use. (I is the newest from Monticello)
I even tried to set a new componentClass in the descriptionFoo
class method.But with no effect. I'm not sure what I'm doing
wrong. Magritte seems to ignore every step I take to customize.
What would be the best way to customize on the class or even
better on description instance side?
Why is there an extra componentRenderer? As far as I figured
it out componentRenderer is container dependent. What is the
reason for having a additional method componentRenderer?
What are the best practices for wiring magritte components
together? The only way I found is to use onAnswer:.
thanks in advance,
Norbert
Score with Nanotechnology!
We called it! NSLT is up BIG on huge volume. We
hope you took a position early and are smiling right
now. If you didn't, not to worry. The big spike is
expected also on Wednesday, November 22nd. Get in now!
It is widely predicted that nanotechnology will be the
next booming industry for our economy. Our feature is
in the perfect place at the perfect time.
Company: Nano Superlattice Technology, Inc.
Symbol: NSLT
Price: $0.22(+37%)
Short-Term Target: $0.58
Long-Term Target: $5.50
With the increased miniaturization of personal
electronics devices current tools are reaching their
limits.
Nano Superlattice Technology Inc. is a nanotechnology
company engaged in the coating of tools and components
with nano structured PVD coatings for high-tech
industries.
NSLT uses Superlattice technology to apply multi-layers
of super-hard elemental coatings on an array of
precision products to achieve a variety of physical
properties.
An amazing revelation is set to come out of the Nano
laboratoryes which will have an enormous impact on the
manufacturing world.
Seize the day and get in before the news is out!
---
(CNN) -- Although Congress is unlikely to follow calls from a top Democrat to bring back the military draft, the United States does have a plan, if necessary, aimed at inducting millions of young men for service.
EGG HARBOR TOWNSHIP, New Jersey (AP) -- Autopsies were being conducted Tuesday on four women whose bodies were found in a seedy area just outside Atlantic City.
WASHINGTON (AP) -- NASA's best effort to find a missing Mars space probe failed Monday night, as scientists at the space agency began to lose hope for the 10-year-old planet-mapping workhorse
Hi,
I am real interested in seaside/magritte/pier and as a newbie (in squeak but
not in smalltalk) I would like to do a little Pier/seaside website. I
chose to run my squeak process in a linux server with a framebuffer X
server to administrate my image with VNC access (and not by the seaside
inspector available with halos). I did it with a special user (not root)
and my firewall connection configuration permits me to access externally
to my webserver on standard port 80.
But I am a bit unsecure with a deployment of a "classical" pier
configuration. If my machine crash, I lost all my data. So I need to do
backup. I can run a:
SmalltalkImage current snapshot: true andQuit: false.
but if a user does something on my website, it's rejected. So I read
somewhere (maybe thru this mailing-list archive) about a way to do
backup. Actually, I would like to save the image everytime it's
possible. I heard about the use of:
UnixProcess saveImageInBackgroundNicely but I don't know how to use it.
With forkHeadlessSqueakAndDoThenQuit message, it seems to be possible to
save my image in another until I do the permanent and tested weekly
backup. So if I crash or there is a glitch, my image or the periodically
save image can be broken but I can restore the most recent backup.
If someone can explain me how to do (or find how to do) this, I'll be
glad. I don't want to build a wiki/blog like site and lost in a crash
all the readers'comments/posts.
I also noticed some errors in the deployment of squeakfoundation.org. By
clicking on 'Edit' or 'Login', there's error. But instead of permitting
me to go back to the previous page with a short error message (and
advertising the webadmin) like on the other classic php/jsp website, I
go to debug message. It's really bad. I guess that when I click on
'Debug' I open a morph Debugger window on the squeak image. It's not
what I (and probably the squeakfoundation.org webmaster) want. I am sure
there is a way to shortcut the doesNotUnderstand message in seaside/pier
so that in a deployment mode, the user has just a friendly error message
and the webmaster received an email from squeak with the debug message
infos and the context.
So I need your help to try to develop a website with seaside/pier
because I believe in those kind of way to develop websites (I like
servlets too but it's ugly, heavy and I prefer smalltalk as I used
smalltalk or ObjectiveC during the most important part of my life as a
programmer). I thought that I just can develop component and toggle the
deployment preference tag to true, to have a ready-to-use website but
there are missing things. As I said before:
+ how to save in one or two temporary images without stopping the
working pier site? and without going (as I do now) in config page (the
only place when I said 'deployment' to false) to toggle halos and then
to have an inspector which permits me to manually save (I know Lukas did
so too but it's not a good way). There's database way too for
persistence and I will probably look at Magma/REServe and something like
that. I think there are smalltalk that can save multiimage (visualworks
can do this I guess) and it could be a good option that squeak do that
too.
+ how to build a beautiful debug messages to a secure and friendly
deployment? The example of the squeakfoundation.org website is a
horrible one. As with the 'Toggle Halos' button in the
oops-i-didnt-see-i-toogle-deployment-to-false case, it's dangerous and
every visitor can crash or browse in the image without getting the root
seaside admin (that could be nd5 encrypted too).
I hope you will have answers.
Very thanks for reading this a-bit-too-long mail,
--
Martial
Hi Christophe,
> I make my model and view package. But now I am lost…how I can run
> this… I see in your tutorial the line below to have seaside interface:
>
> result := self call: (aModel asComponent addValidatedForm; yourself).
>
> But I am block.
This code looks ok and should work fine.
The whole part within the brackets is Magritte, the rest is plain
Seaside. So depending on why you are blocked, you might want to check
out different resource:
- If it is the Magritte part, you can read my master thesis [1] and
or re-ask the question in the Pier, Magritte mailing list [2].
- If it is the Seaside part that poses the problem, you might want to
check out my Seaside tutorials [3] or re-ask the question in the
Seaside mailing list [4].
Cheers,
Lukas
[1] http://www.iam.unibe.ch/~scg/Archive/Diploma/Reng06a.pdf
[2] http://www.iam.unibe.ch/mailman/listinfo/smallwiki
[3] http://www.lukas-renggli.ch/smalltalk/seaside/tutorial
[4] http://lists.squeakfoundation.org/cgibin/mailman/listinfo/seaside
--
Lukas Renggli
http://www.lukas-renggli.ch
> Thanks, glad it's useful. As for beRequired, you got me there, no clue,
> maybe someone else will chime in with the answer.
The latest version of Magritte (Magritte-All-lr.179 or later) has
properties to set the error text for specific error, e.g.
#conflictErrorMessage:, #kindErrorMessage:, #multipleErrorsMessage:,
#requiredErrorMessage: and #rangeErrorMessage:.
The latest version of Pier also makes use of this new feature and now
displays much nicer error messages.
Note that you are required to load Seaside2.7 to use this version of Magritte.
Hope this helps,
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch
2006/11/11, florent trolat <trolat.florent(a)laposte.net>:
> Hi,
>
> I need, for my seaside application, security and authentification.
> I've seen PierSecurity and Spielverder. This 2 packages will be very
> usefull if I success tu use one without pier.
> What's your feeling about this?
> Do you think it's possible to reuse Spielverder without pier for example?
>
> maybe you know other security/authentification packages?
I'm not really sure how much can be reused besides the general ideas
behind it. I only know Spielverderber but I don't think the situation
is much different for Lukas' package.
The model makes the general assumption that we have commands that
operate on a structure.
There is a user class, a group class, some special group and user
classes that you probably don't want and a command group class.
Besides there is a list class, a list item class and some methods to
find an item in the list.
That was it, the rest is Pier specific.
Philippe
Anyone know if it's possible, to take descriptions from several objects and
display them on the screen all at once?
For example, say I have a Customer object with an addresses collection. But
one data entry screen, I want to flatten it so that the first address in the
collection shows up as fields on the customer form, but the model still
keeps them as separate objects and each field still writes to it's original
model. I looked through Lukas's thesis but didn't see anything.
I was thinking I could override description on the instance side, and add
All the subcomponents descriptors to the main description, but I don't see
how it'd get bound to the subcomponent as it's model.
Ramon Leon
http://onsmalltalk.com
Anyone know of any good resources for working with the validation system of
Magritte. Specifically I'm interested in what it takes to have fields that
depend on the value of each other. Say an end date that must be before a
start date, both of which have just been edited.
I was thinking something like this on the instance side...
description
^self class description collect: [:each |
each accessor selector = #eventEndDate
ifTrue: [each addCondition: [:value | value > self
eventStartDate]]
ifFalse: [each]]
But that doesn't work because I can't rely on eventStartDate having a value
yet, it may not have been set by its description, or it may be invalid for
some other reason. Are the any public sample apps that use Magritte heavily
one could look at?
Ramon Leon
http://onsmalltalk.com