[Ann] Beach-Seaside

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

[Ann] Beach-Seaside

keith1y
Ok so someone has already got "beach" on google code, so I grabbed
"beaches".

http://code.google.com/p/beaches/

So Beach or Beaches? What do you prefer?

In the following introduction(s) I will use "Beach".

cheers

Keith

==================================================

"Beach" - Frameworks, and components for putting seaside to commercial use.
"Beach" will eventually be showcased by an all new "Sushi Store"... (or
Surf Store)

http://code.google.com/p/beaches/
=====
Beach-Seaside
=====

Central to "Beach" is the idea of a Site, the "Beach-Site" if you like,
this is the main class for a Beach website. Let's give it a name:

BESiteSeaside subclass: #BEBondi

=====
Key Feature - Easy Installation
=====

BEBondi knows how to configure itself as a seaside application (or a
pier application), it knows how to initialize its databases if required.

[the manual way: add BESiteConfiguration to a seaside application]

=====
Key Feature - Upload and Go
=====

BEBondi, knows when it is deployed, by checking its IP address.
BEBondi, manages the preferences for the application, in code. (no need
for seaside/config). Combining the two e.g.

BEBondi-#prefSmtpHost

    ^ self isDeployed ifTrue: [ 'smtp.blahmail.com' ] ifFalse: [
'server.flat' ]

Upload your image to your server, and all the preferences can be set for
the deployed state in advance.

*seaside/config displays which settings are controlled by the "site"
instance BEBondi.
====
Anywhere in seaside, your per-session instance of BEBondi is available via:

self site

=====
Anywhere outside of a seaside session (i.e. in a workspace) a
per-session instance of BEBondi (with a seaside psuedo session) is
available via:

BEBondi current.

=====
Key Feature - Switchable Backends
=====

While your site is running in #live mode. You can hit the site with
db=mock in the url and have a private test session, running from an in
memory mock backend.

Standard backend modes are:

1) #live
2) #test
3) #backup
4) #mock

These can also be selected in seaside/config.

live/test/backup are expected to be the same db engine (or engines) but
with databases simply named with suffixes "-test" "-backup" e.g.
sushi_store, sushi_store-test, and sushi_store-backup

=====
Key Features - Plug In Backend/Frontend Components
=====

See next emails

=====
Key Features - Expose as much as possible to customization by subclassing
=====
The "site" is effectively a "factory" hub for everything. So you can
subclass it, and customise it to use whatever custom subclasses of
plugins/models/backends/components your prefer.

=====
Other Features - startUp hook
=====
Sites that are configured (i.e. serving), are sent #onStartUp.

=====
Other Features - Standard Caches
=====
Places to cache data are provided as standard, per-session and
per-application caches.
e.g.

self site sessionCacheAt: key ifAbsentPut: aBlock

=====
Other Features - Per-Session properties
=====
self session properties at: key ifAbsent: [ ]

=====
Other Features - Helpers
=====
1. keepAliveHelper - while the user has the browser open, his session
stays alive.
2. ShoreComponentsHelper - use shore components without needing a
specialized WASession class.
3. ToolbarHelper - enable/disable toolbar on the fly
4. CometHelper - use comet without needing a specialized WASession class.

(also available - MagmaHelper for using Magma without needing a
specialised WASession class)










_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
Has a project page with documentation etc been set up, or even
something to explain what all the packages are for, or should I just
grab the packages with likely-looking names and read the comments?

On Tue, Mar 31, 2009 at 7:06 AM, Keith Hodges <[hidden email]> wrote:

> Ok so someone has already got "beach" on google code, so I grabbed
> "beaches".
>
> http://code.google.com/p/beaches/
>
> So Beach or Beaches? What do you prefer?
>
> In the following introduction(s) I will use "Beach".
>
> cheers
>
> Keith
>
> ==================================================
>
> "Beach" - Frameworks, and components for putting seaside to commercial use.
> "Beach" will eventually be showcased by an all new "Sushi Store"... (or
> Surf Store)
>
> http://code.google.com/p/beaches/
> =====
> Beach-Seaside
> =====
>
> Central to "Beach" is the idea of a Site, the "Beach-Site" if you like,
> this is the main class for a Beach website. Let's give it a name:
>
> BESiteSeaside subclass: #BEBondi
>
> =====
> Key Feature - Easy Installation
> =====
>
> BEBondi knows how to configure itself as a seaside application (or a
> pier application), it knows how to initialize its databases if required.
>
> [the manual way: add BESiteConfiguration to a seaside application]
>
> =====
> Key Feature - Upload and Go
> =====
>
> BEBondi, knows when it is deployed, by checking its IP address.
> BEBondi, manages the preferences for the application, in code. (no need
> for seaside/config). Combining the two e.g.
>
> BEBondi-#prefSmtpHost
>
>    ^ self isDeployed ifTrue: [ 'smtp.blahmail.com' ] ifFalse: [
> 'server.flat' ]
>
> Upload your image to your server, and all the preferences can be set for
> the deployed state in advance.
>
> *seaside/config displays which settings are controlled by the "site"
> instance BEBondi.
> ====
> Anywhere in seaside, your per-session instance of BEBondi is available via:
>
> self site
>
> =====
> Anywhere outside of a seaside session (i.e. in a workspace) a
> per-session instance of BEBondi (with a seaside psuedo session) is
> available via:
>
> BEBondi current.
>
> =====
> Key Feature - Switchable Backends
> =====
>
> While your site is running in #live mode. You can hit the site with
> db=mock in the url and have a private test session, running from an in
> memory mock backend.
>
> Standard backend modes are:
>
> 1) #live
> 2) #test
> 3) #backup
> 4) #mock
>
> These can also be selected in seaside/config.
>
> live/test/backup are expected to be the same db engine (or engines) but
> with databases simply named with suffixes "-test" "-backup" e.g.
> sushi_store, sushi_store-test, and sushi_store-backup
>
> =====
> Key Features - Plug In Backend/Frontend Components
> =====
>
> See next emails
>
> =====
> Key Features - Expose as much as possible to customization by subclassing
> =====
> The "site" is effectively a "factory" hub for everything. So you can
> subclass it, and customise it to use whatever custom subclasses of
> plugins/models/backends/components your prefer.
>
> =====
> Other Features - startUp hook
> =====
> Sites that are configured (i.e. serving), are sent #onStartUp.
>
> =====
> Other Features - Standard Caches
> =====
> Places to cache data are provided as standard, per-session and
> per-application caches.
> e.g.
>
> self site sessionCacheAt: key ifAbsentPut: aBlock
>
> =====
> Other Features - Per-Session properties
> =====
> self session properties at: key ifAbsent: [ ]
>
> =====
> Other Features - Helpers
> =====
> 1. keepAliveHelper - while the user has the browser open, his session
> stays alive.
> 2. ShoreComponentsHelper - use shore components without needing a
> specialized WASession class.
> 3. ToolbarHelper - enable/disable toolbar on the fly
> 4. CometHelper - use comet without needing a specialized WASession class.
>
> (also available - MagmaHelper for using Magma without needing a
> specialised WASession class)
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
Marcin Tustin wrote:
> Has a project page with documentation etc been set up, or even
> something to explain what all the packages are for, or should I just
> grab the packages with likely-looking names and read the comments?
>
>  
Beach-Packages has some comments

I really need to do a preloaded image.

Keith
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
On that, I tried loading the code, but I keep getting warnings that
classes are missing, including MAModel and some BE-prefixed classes.
Is there an external dependency I should be aware of (other than
Magritte, of which I have the latest)?

On Tue, May 26, 2009 at 4:39 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> Has a project page with documentation etc been set up, or even
>> something to explain what all the packages are for, or should I just
>> grab the packages with likely-looking names and read the comments?
>>
>>
> Beach-Packages has some comments
>
> I really need to do a preloaded image.
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
Marcin Tustin wrote:
> On that, I tried loading the code, but I keep getting warnings that
> classes are missing, including MAModel and some BE-prefixed classes.
> Is there an external dependency I should be aware of (other than
> Magritte, of which I have the latest)?
>
>  
MAModel is from magritteaddons/Magritte-RDB I will add that dependency

Installer lukas project: 'magritteaddons'; install: 'Magritte-RDB'.

Keith
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
Which unfortunately has its own dependency problems. Ho hum.

On Tue, May 26, 2009 at 6:28 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> On that, I tried loading the code, but I keep getting warnings that
>> classes are missing, including MAModel and some BE-prefixed classes.
>> Is there an external dependency I should be aware of (other than
>> Magritte, of which I have the latest)?
>>
>>
> MAModel is from magritteaddons/Magritte-RDB I will add that dependency
>
> Installer lukas project: 'magritteaddons'; install: 'Magritte-RDB'.
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
Loading Beach-Seaside:
This package depends on the following classes:
  ProcessLocalVariable
  WASessionHelper

Loading Beach-Magritte:
This package depends on the following classes:
  BEModel
  BEComponent

On Tue, May 26, 2009 at 10:57 PM, Marcin Tustin <[hidden email]> wrote:

> Which unfortunately has its own dependency problems. Ho hum.
>
> On Tue, May 26, 2009 at 6:28 PM, Keith Hodges <[hidden email]> wrote:
>> Marcin Tustin wrote:
>>> On that, I tried loading the code, but I keep getting warnings that
>>> classes are missing, including MAModel and some BE-prefixed classes.
>>> Is there an external dependency I should be aware of (other than
>>> Magritte, of which I have the latest)?
>>>
>>>
>> MAModel is from magritteaddons/Magritte-RDB I will add that dependency
>>
>> Installer lukas project: 'magritteaddons'; install: 'Magritte-RDB'.
>>
>> Keith
>> _______________________________________________
>> seaside mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
Marcin Tustin wrote:

> Loading Beach-Seaside:
> This package depends on the following classes:
>   ProcessLocalVariable
>   WASessionHelper
>
> Loading Beach-Magritte:
> This package depends on the following classes:
>   BEModel
>   BEComponent
>
>  

Installer install: 'Packages'.

then see Beach-Packages for dependencies

Keith
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
I'm sorry, I'm not sure what the Installer class is - it complains
about search paths. Beach-Packages also had unsatisfied dependencies.

On Tue, May 26, 2009 at 11:39 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> Loading Beach-Seaside:
>> This package depends on the following classes:
>>   ProcessLocalVariable
>>   WASessionHelper
>>
>> Loading Beach-Magritte:
>> This package depends on the following classes:
>>   BEModel
>>   BEComponent
>>
>>
>
> Installer install: 'Packages'.
>
> then see Beach-Packages for dependencies
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
You need the latest Installer

Installer squeaksource project: 'Installer' install: 'Installer-Core'.
Installer upgrade.

Then Installer install: 'Packages' should work.

For docs/info check out

http://installer.pbwiki.com/Installer

and/or

http://installer.pbwiki.com/LevelPlayingField

Keith



_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
In reply to this post by keith1y
Of course, Magritte-RDB complains about needing MAFlatteningVisitor,
but that's an issue for lukas.

On Tue, May 26, 2009 at 6:28 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> On that, I tried loading the code, but I keep getting warnings that
>> classes are missing, including MAModel and some BE-prefixed classes.
>> Is there an external dependency I should be aware of (other than
>> Magritte, of which I have the latest)?
>>
>>
> MAModel is from magritteaddons/Magritte-RDB I will add that dependency
>
> Installer lukas project: 'magritteaddons'; install: 'Magritte-RDB'.
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
In reply to this post by keith1y
This works, in that I now have a Beach-Packages package with a class
that has methods telling me what the dependencies are. Is there a way
to use this to just install the packages? Is the idea that I use this
data to drive Installer myself? It is not clear.

On Tue, May 26, 2009 at 11:39 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> Loading Beach-Seaside:
>> This package depends on the following classes:
>>   ProcessLocalVariable
>>   WASessionHelper
>>
>> Loading Beach-Magritte:
>> This package depends on the following classes:
>>   BEModel
>>   BEComponent
>>
>>
>
> Installer install: 'Packages'.
>
> then see Beach-Packages for dependencies
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
In reply to this post by Marcin Tustin
Marcin Tustin wrote:
> Of course, Magritte-RDB complains about needing MAFlatteningVisitor,
> but that's an issue for lukas.
>
>  
No its not... now where did I put it

Keith
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

Marcin Tustin
Installer squeaksource project: 'Beach'; install: 'Beach-Seaside'.  ->
This package depends on the following classes:
  ProcessLocalVariable

I have Jetsam-Helpers and Beach-Kernel-Extensions.

On Wed, May 27, 2009 at 11:10 PM, Keith Hodges <[hidden email]> wrote:

> Marcin Tustin wrote:
>> Of course, Magritte-RDB complains about needing MAFlatteningVisitor,
>> but that's an issue for lukas.
>>
>>
> No its not... now where did I put it
>
> Keith
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: [Ann] Beach-Seaside

keith1y
Marcin Tustin wrote:
> Installer squeaksource project: 'Beach'; install: 'Beach-Seaside'.  ->
> This package depends on the following classes:
>   ProcessLocalVariable
>
>  
Installer install: 'Logging'.

As you found out you will also need.

Installer mantis ensureFix: '6426: ifNotNil: dont accept monadic blocks'.

Which is included in LevelPlayingField.

Installer install: 'LPF'.

regards

Keith
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside