Kyle Dawkins | 16 Jul 23:45

OSCON "contest"

Hey Seasiders

The RoR folks are running this at OSCON:

http://pdxfoscon.org/competition

Probably a good opportunity to show-off what Seaside can do.  I can't  
attend so I can't volunteer but presumably since they mention Seaside  
and Gemstone, there are some people already signed up in the Seaside  
camp?  Yes, yes, it's a silly contest (and proves very little), but  
could result in a few heads turned in our direction, no?

I'd love to watch this... hopefully someone will provide a screencast  
at some point?!

Cheers

Kyle
kyle <at> idealist.org
James Foster | 16 Jul 23:52

Re: OSCON "contest"

Yes, a couple of us at GemStone have asked to be included. As you  
mention, it is a bit of a narrow scope, with 30 minutes being allowed,  
but we'll try to represent the Seaside community as well as we can!

James Foster

On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:

> Hey Seasiders
>
> The RoR folks are running this at OSCON:
>
> http://pdxfoscon.org/competition
>
> Probably a good opportunity to show-off what Seaside can do.  I  
> can't attend so I can't volunteer but presumably since they mention  
> Seaside and Gemstone, there are some people already signed up in the  
> Seaside camp?  Yes, yes, it's a silly contest (and proves very  
> little), but could result in a few heads turned in our direction, no?
>
> I'd love to watch this... hopefully someone will provide a  
> screencast at some point?!
>
> Cheers
>
> Kyle
> kyle <at> idealist.org
>
> _______________________________________________
> seaside mailing list
(Continue reading)

Philippe Marschall | 17 Jul 06:42

Re: OSCON "contest"

Should be doable. You should of course have an html layout before you
go. And have done several test runs.

Cheers
Philippe

2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
> Yes, a couple of us at GemStone have asked to be included. As you mention,
> it is a bit of a narrow scope, with 30 minutes being allowed, but we'll try
> to represent the Seaside community as well as we can!
>
> James Foster
>
>
> On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:
>
>> Hey Seasiders
>>
>> The RoR folks are running this at OSCON:
>>
>> http://pdxfoscon.org/competition
>>
>> Probably a good opportunity to show-off what Seaside can do.  I can't
>> attend so I can't volunteer but presumably since they mention Seaside and
>> Gemstone, there are some people already signed up in the Seaside camp?  Yes,
>> yes, it's a silly contest (and proves very little), but could result in a
>> few heads turned in our direction, no?
>>
>> I'd love to watch this... hopefully someone will provide a screencast at
>> some point?!
(Continue reading)

James Foster | 22 Jul 20:34

Re: OSCON "contest"

You are invited to view a sample application (with a link for GS/S  
source code) at http://seaside.gemstone.com/seaside/recipes. Source  
code can also be viewed at http://seaside.gemstone.com/ss/FOSCON.html  
and you might be able to load my code into Squeak using the following:

	MCHttpRepository
		location: 'http://seaside.gemstone.com/ss/FOSCON'
		user: ''
		password: ''

Keep in mind that I consider myself more of a GemStone/S expert than a  
Seaside expert and I'd welcome constructive criticism. I'm not sure  
how much of the source code I can type in 10 or 15 minutes (we are  
allowed 20 minutes and there will be new requirements held till the  
start of the event). Any ideas of how I can make it smaller would be  
especially welcome.

James

On Jul 16, 2008, at 9:42 PM, Philippe Marschall wrote:

> Should be doable. You should of course have an html layout before you
> go. And have done several test runs.
>
> Cheers
> Philippe
>
> 2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
>> Yes, a couple of us at GemStone have asked to be included. As you  
>> mention,
(Continue reading)

Kyle Dawkins | 22 Jul 21:27

Re: OSCON "contest"

Hey James

Good work!  I have a few suggestions...

* RoR people are impressed by smoke & mirrors.  Try to make the entry/ 
edit forms work as lightboxes.  It's a feature of Seaside and should  
be easy to implement, though not sure how well it behaves with  
Magritte... anyone?

* One nice thing about RoR and Django is that their default styles are  
very nice.  Are you allowed to prepare some styles and have them  
ready?  It looks a bit "raw" without.  Simple stuff like setting the  
font to something nice and getting rid of ugly table borders.

20 minutes is not much time at all... I think they're going to find in  
practice that most people are unable to get anything too impressive  
going.  The django guys tried to show off how fast it is to develop an  
app at a recent Portland python UG meeting, and 45 minutes later they  
were still puzzling over some silly little thing and never got a  
working app going...

Good luck!  And post the results to the group after!  especially if  
there's video or screencasts.

Cheers

Kyle
kyle <at> idealist.org

On Jul 22, 2008, at 3:34 PM, James Foster wrote:
(Continue reading)

James Foster | 22 Jul 22:23

Re: OSCON "contest"


On Jul 22, 2008, at 12:27 PM, Kyle Dawkins wrote:

> Hey James
>
> Good work!  I have a few suggestions...
>
> * RoR people are impressed by smoke & mirrors.  Try to make the  
> entry/edit forms work as lightboxes.  It's a feature of Seaside and  
> should be easy to implement, though not sure how well it behaves  
> with Magritte... anyone?

I'm thinking that the Magritte stuff is overall helpful, but I already  
am extending it to get some missing features (JavaScript). I'm not  
sure what I'd do with lightboxes--mostly because I'm not that familiar  
with them.

> * One nice thing about RoR and Django is that their default styles  
> are very nice.  Are you allowed to prepare some styles and have them  
> ready?  It looks a bit "raw" without.  Simple stuff like setting the  
> font to something nice and getting rid of ugly table borders.

Yes, we'll spend some time beforehand looking into CSS (though other  
submissions are welcome!).

> 20 minutes is not much time at all... I think they're going to find  
> in practice that most people are unable to get anything too  
> impressive going.  The django guys tried to show off how fast it is  
> to develop an app at a recent Portland python UG meeting, and 45  
> minutes later they were still puzzling over some silly little thing  
(Continue reading)

Conrad Taylor | 22 Jul 23:34

Re: OSCON "contest"

Hi James, I would like to wish you the best of luck.  Using Gemstone/S will allow you to concentrate on other parts of the example because you don't have to deal with RDBMS.  Next, it seems that the competition caters more to Rails and REST if there's a firm requirement in regards to the URL.  Thus, is it really necessary to parse the URL?  For example, this is all the possible options for the search form:

option A:  no input text,  no  selection  Result:  all the items in the list

option B:  input text, no selection  Result:  subset of all the items in the list

option C:  no input text, a selection  Result:  subset of all the items in the list

option D:  input text, a selection  Result:  subset of all the items in the list

Next, here's my translation of the last three bullet points on the contest page:

/receipe/ID  equals the Show link
/recipes/titles/SUBSTRING or /recipes?titles=SUBSTRING  equals one of the options above (i.e. text input and selector)
/recipes/course/ID or /recipes?course=ID  equals one of the options above (i.e. text input and selector)

In short, I'm thinking that the URL parsing is irrelevant because you're, for the most part, interacting with the form.

Good luck,

-Conrad

On Tue, Jul 22, 2008 at 1:23 PM, James Foster <Smalltalk <at> jgfoster.net> wrote:

On Jul 22, 2008, at 12:27 PM, Kyle Dawkins wrote:

Hey James

Good work!  I have a few suggestions...

* RoR people are impressed by smoke & mirrors.  Try to make the entry/edit forms work as lightboxes.  It's a feature of Seaside and should be easy to implement, though not sure how well it behaves with Magritte... anyone?

I'm thinking that the Magritte stuff is overall helpful, but I already am extending it to get some missing features (JavaScript). I'm not sure what I'd do with lightboxes--mostly because I'm not that familiar with them.


* One nice thing about RoR and Django is that their default styles are very nice.  Are you allowed to prepare some styles and have them ready?  It looks a bit "raw" without.  Simple stuff like setting the font to something nice and getting rid of ugly table borders.

Yes, we'll spend some time beforehand looking into CSS (though other submissions are welcome!).


20 minutes is not much time at all... I think they're going to find in practice that most people are unable to get anything too impressive going.  The django guys tried to show off how fast it is to develop an app at a recent Portland python UG meeting, and 45 minutes later they were still puzzling over some silly little thing and never got a working app going...

We'll practice our script and hope to avoid that fate!


Good luck!  And post the results to the group after!  especially if there's video or screencasts.

Cheers

Kyle
kyle <at> idealist.org

On Jul 22, 2008, at 3:34 PM, James Foster wrote:

You are invited to view a sample application (with a link for GS/S source code) at http://seaside.gemstone.com/seaside/recipes. Source code can also be viewed at http://seaside.gemstone.com/ss/FOSCON.html and you might be able to load my code into Squeak using the following:

       MCHttpRepository
               location: 'http://seaside.gemstone.com/ss/FOSCON'
               user: ''
               password: ''

Keep in mind that I consider myself more of a GemStone/S expert than a Seaside expert and I'd welcome constructive criticism. I'm not sure how much of the source code I can type in 10 or 15 minutes (we are allowed 20 minutes and there will be new requirements held till the start of the event). Any ideas of how I can make it smaller would be especially welcome.

James


On Jul 16, 2008, at 9:42 PM, Philippe Marschall wrote:

Should be doable. You should of course have an html layout before you
go. And have done several test runs.

Cheers
Philippe

2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
Yes, a couple of us at GemStone have asked to be included. As you mention,
it is a bit of a narrow scope, with 30 minutes being allowed, but we'll try
to represent the Seaside community as well as we can!

James Foster


On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:

Hey Seasiders

The RoR folks are running this at OSCON:

http://pdxfoscon.org/competition

Probably a good opportunity to show-off what Seaside can do.  I can't
attend so I can't volunteer but presumably since they mention Seaside and
Gemstone, there are some people already signed up in the Seaside camp?  Yes,
yes, it's a silly contest (and proves very little), but could result in a
few heads turned in our direction, no?

I'd love to watch this... hopefully someone will provide a screencast at
some point?!

Cheers

Kyle
kyle <at> idealist.org

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Conrad Taylor | 22 Jul 23:49

Re: OSCON "contest"

Hi James, here's a very good article by Ramon Leon and it may be of some assistance to you:


Good luck,

-Conrad

ps:  If you're using a Mac or Mac Pro in the competition, I would recommend using an application like ScreenFlow from http://www.varasoftware.com for producing
      the screencast.

On Tue, Jul 22, 2008 at 2:34 PM, Conrad Taylor <conradwt <at> gmail.com> wrote:
Hi James, I would like to wish you the best of luck.  Using Gemstone/S will allow you to concentrate on other parts of the example because you don't have to deal with RDBMS.  Next, it seems that the competition caters more to Rails and REST if there's a firm requirement in regards to the URL.  Thus, is it really necessary to parse the URL?  For example, this is all the possible options for the search form:

option A:  no input text,  no  selection  Result:  all the items in the list

option B:  input text, no selection  Result:  subset of all the items in the list

option C:  no input text, a selection  Result:  subset of all the items in the list

option D:  input text, a selection  Result:  subset of all the items in the list

Next, here's my translation of the last three bullet points on the contest page:

/receipe/ID  equals the Show link
/recipes/titles/SUBSTRING or /recipes?titles=SUBSTRING  equals one of the options above (i.e. text input and selector)
/recipes/course/ID or /recipes?course=ID  equals one of the options above (i.e. text input and selector)

In short, I'm thinking that the URL parsing is irrelevant because you're, for the most part, interacting with the form.

Good luck,

-Conrad

On Tue, Jul 22, 2008 at 1:23 PM, James Foster <Smalltalk <at> jgfoster.net> wrote:

On Jul 22, 2008, at 12:27 PM, Kyle Dawkins wrote:

Hey James

Good work!  I have a few suggestions...

* RoR people are impressed by smoke & mirrors.  Try to make the entry/edit forms work as lightboxes.  It's a feature of Seaside and should be easy to implement, though not sure how well it behaves with Magritte... anyone?

I'm thinking that the Magritte stuff is overall helpful, but I already am extending it to get some missing features (JavaScript). I'm not sure what I'd do with lightboxes--mostly because I'm not that familiar with them.


* One nice thing about RoR and Django is that their default styles are very nice.  Are you allowed to prepare some styles and have them ready?  It looks a bit "raw" without.  Simple stuff like setting the font to something nice and getting rid of ugly table borders.

Yes, we'll spend some time beforehand looking into CSS (though other submissions are welcome!).


20 minutes is not much time at all... I think they're going to find in practice that most people are unable to get anything too impressive going.  The django guys tried to show off how fast it is to develop an app at a recent Portland python UG meeting, and 45 minutes later they were still puzzling over some silly little thing and never got a working app going...

We'll practice our script and hope to avoid that fate!


Good luck!  And post the results to the group after!  especially if there's video or screencasts.

Cheers

Kyle
kyle <at> idealist.org

On Jul 22, 2008, at 3:34 PM, James Foster wrote:

You are invited to view a sample application (with a link for GS/S source code) at http://seaside.gemstone.com/seaside/recipes. Source code can also be viewed at http://seaside.gemstone.com/ss/FOSCON.html and you might be able to load my code into Squeak using the following:

       MCHttpRepository
               location: 'http://seaside.gemstone.com/ss/FOSCON'
               user: ''
               password: ''

Keep in mind that I consider myself more of a GemStone/S expert than a Seaside expert and I'd welcome constructive criticism. I'm not sure how much of the source code I can type in 10 or 15 minutes (we are allowed 20 minutes and there will be new requirements held till the start of the event). Any ideas of how I can make it smaller would be especially welcome.

James


On Jul 16, 2008, at 9:42 PM, Philippe Marschall wrote:

Should be doable. You should of course have an html layout before you
go. And have done several test runs.

Cheers
Philippe

2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
Yes, a couple of us at GemStone have asked to be included. As you mention,
it is a bit of a narrow scope, with 30 minutes being allowed, but we'll try
to represent the Seaside community as well as we can!

James Foster


On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:

Hey Seasiders

The RoR folks are running this at OSCON:

http://pdxfoscon.org/competition

Probably a good opportunity to show-off what Seaside can do.  I can't
attend so I can't volunteer but presumably since they mention Seaside and
Gemstone, there are some people already signed up in the Seaside camp?  Yes,
yes, it's a silly contest (and proves very little), but could result in a
few heads turned in our direction, no?

I'd love to watch this... hopefully someone will provide a screencast at
some point?!

Cheers

Kyle
kyle <at> idealist.org

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Tomas Carini | 23 Jul 00:07

Re: OSCON "contest"

I've tried to write to the guys organizing the contest to propose to
record a screencast on every machine but dind't find a way to do it.
It would be nice that all these knowledge can be shared in this way.

I'm doing some RoR work right now, and it is several steps (miles?)
behind GLASS, but RoR guys have lot of things already available
(geocoding, facebook communication, etc etc) that serve as consolation
:(
James Foster | 23 Jul 00:46

Re: OSCON "contest"

Hi Conrad,

I agree that the competition is slanted toward Rails--but since it is being sponsored by the Portland Ruby Brigade that seems only fair. Given the expectations of the hosts and attendees, it seemed reasonable to try to bend Seaside into that sort of application. Some of Seaside's power is that we can do URL parsing if we need to do so. If nothing else, I'd like to avoid an argument about the relative merits of RESTful URLs vs URL rewiring--particularly in this crowd. In any case, I'll probably save those features for the end and if I run out of time I'll fail that part of the test.

James

On Jul 22, 2008, at 2:34 PM, Conrad Taylor wrote:

Hi James, I would like to wish you the best of luck.  Using Gemstone/S will allow you to concentrate on other parts of the example because you don't have to deal with RDBMS.  Next, it seems that the competition caters more to Rails and REST if there's a firm requirement in regards to the URL.  Thus, is it really necessary to parse the URL?  For example, this is all the possible options for the search form:

option A:  no input text,  no  selection  Result:  all the items in the list

option B:  input text, no selection  Result:  subset of all the items in the list

option C:  no input text, a selection  Result:  subset of all the items in the list

option D:  input text, a selection  Result:  subset of all the items in the list

Next, here's my translation of the last three bullet points on the contest page:

/receipe/ID  equals the Show link
/recipes/titles/SUBSTRING or /recipes?titles=SUBSTRING  equals one of the options above (i.e. text input and selector)
/recipes/course/ID or /recipes?course=ID  equals one of the options above (i.e. text input and selector)

In short, I'm thinking that the URL parsing is irrelevant because you're, for the most part, interacting with the form.

Good luck,

-Conrad
_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Conrad Taylor | 23 Jul 01:22

Re: OSCON "contest"

Hi James, being that Portland Ruby Brigade and Gemstone are located in the same state, Gemstone do a similar contest in the future where Gemstone hosts it.  However, this time we focus on the content within the browser instead of the content in the address field.  

Part One:  Each framework developing team will construct an Othello game.

Part Two:  The constructed Othello games from each framework team will compete against the others
                in NCAA Basketball style (i.e. win or loose).

Lastly, it would be very interesting to see all the web frameworks do battle.

-Conrad

On Tue, Jul 22, 2008 at 3:46 PM, James Foster <Smalltalk <at> jgfoster.net> wrote:
Hi Conrad,

I agree that the competition is slanted toward Rails--but since it is being sponsored by the Portland Ruby Brigade that seems only fair. Given the expectations of the hosts and attendees, it seemed reasonable to try to bend Seaside into that sort of application. Some of Seaside's power is that we can do URL parsing if we need to do so. If nothing else, I'd like to avoid an argument about the relative merits of RESTful URLs vs URL rewiring--particularly in this crowd. In any case, I'll probably save those features for the end and if I run out of time I'll fail that part of the test.

James

On Jul 22, 2008, at 2:34 PM, Conrad Taylor wrote:

Hi James, I would like to wish you the best of luck.  Using Gemstone/S will allow you to concentrate on other parts of the example because you don't have to deal with RDBMS.  Next, it seems that the competition caters more to Rails and REST if there's a firm requirement in regards to the URL.  Thus, is it really necessary to parse the URL?  For example, this is all the possible options for the search form:

option A:  no input text,  no  selection  Result:  all the items in the list

option B:  input text, no selection  Result:  subset of all the items in the list

option C:  no input text, a selection  Result:  subset of all the items in the list

option D:  input text, a selection  Result:  subset of all the items in the list

Next, here's my translation of the last three bullet points on the contest page:

/receipe/ID  equals the Show link
/recipes/titles/SUBSTRING or /recipes?titles=SUBSTRING  equals one of the options above (i.e. text input and selector)
/recipes/course/ID or /recipes?course=ID  equals one of the options above (i.e. text input and selector)

In short, I'm thinking that the URL parsing is irrelevant because you're, for the most part, interacting with the form.

Good luck,

-Conrad

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Avi Bryant | 23 Jul 02:11

Re: OSCON "contest"

On Tue, Jul 22, 2008 at 3:46 PM, James Foster <Smalltalk <at> jgfoster.net> wrote:
> Hi Conrad,
> I agree that the competition is slanted toward Rails--but since it is being
> sponsored by the Portland Ruby Brigade that seems only fair. Given the
> expectations of the hosts and attendees, it seemed reasonable to try to bend
> Seaside into that sort of application. Some of Seaside's power is that we
> can do URL parsing if we need to do so. If nothing else, I'd like to avoid
> an argument about the relative merits of RESTful URLs vs URL
> rewiring--particularly in this crowd. In any case, I'll probably save those
> features for the end and if I run out of time I'll fail that part of the
> test.

I think trying to emulate Rails is missing the point - this should be
an app that plays to the strengths of Seaside and GLASS.  If this
means it has somewhat different properties (like no RESTful URLs),
then that says something interesting about the two frameworks.  But
building something that looks precisely like a Rails app, only in
Seaside, just feels disappointing.

One way to play to those strengths would be to have a much richer data
model than would be natural in a RDB app.  For example, I can picture
a hierarchy like:

Ingredient
  VolumeIngredient
     LiquidIngredient
     PowderIngredient
  WeightIngredient
  UnitIngredient
     CanIngredient

You could get some neat behavior out of this (when doubling recipes,
for example), which would be difficult to emulate in Rails.

Another way might be to have a step by step "recipe runner" , that
takes you through each step of the recipe statefully ("Mix the eggs
into the batter.  Press [here] when done.").  This could be done as a
WATask pretty simply.

Of course, not having any idea what the specs are going to be, these
might not turn out to be appropriate... but if you do end up with
extra time, these seem like more interesting ways to spend it.

My $0.02,
Avi
Philippe Marschall | 22 Jul 21:53

Re: OSCON "contest"

- Thumbs up for Magritte and Pier parser
- Autoaccessors of magritte would probably a good idea but I don't
know if they work with Gemstone. If not use the Refactoring Browser to
generate them. I don't know how eager people are to write accessors.
- Speaking of RB, maybe you could introduce some problem an fix it with RB? ;-)
- Do you need MACommandColumnEx and MACommand? Could you get away
without them even if it makes the code less obvious (not everything
about Rails is obvious). Given that the code is not longer.

something like:

 (MACommandColumn new
			addCommand: [ :item | self view: item ] text: 'Show';
			yourself)

instead of:

(MACommand new
			callback: [:item | self view: item];
			with: 'Show';
			yourself)

- Are you prepared to make courses first class objects?
- Nice looking examples are important. Search a good, nonobstruvise
CSS. Ideally you can just wrap a decoration around your root component
that takes care of this. Doesn't need to be fancy. Something like YAML
or blue print CSS could work. Or steal the Rails CSS or something ;-)

URL handling (so messy it deserves its own section)
- that's probably the part I would drop first when running short on time
- your URL parsing looks a bit hairier than usual
- only if you have free time consider playing around with #updateRool:
and add to path
- storing the path from #initialRequest: in an instance variable is
not a good idea

Cheers
Philippe

2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:
> You are invited to view a sample application (with a link for GS/S source
> code) at http://seaside.gemstone.com/seaside/recipes. Source code can also
> be viewed at http://seaside.gemstone.com/ss/FOSCON.html and you might be
> able to load my code into Squeak using the following:
>
>        MCHttpRepository
>                location: 'http://seaside.gemstone.com/ss/FOSCON'
>                user: ''
>                password: ''
>
> Keep in mind that I consider myself more of a GemStone/S expert than a
> Seaside expert and I'd welcome constructive criticism. I'm not sure how much
> of the source code I can type in 10 or 15 minutes (we are allowed 20 minutes
> and there will be new requirements held till the start of the event). Any
> ideas of how I can make it smaller would be especially welcome.
>
> James
>
>
> On Jul 16, 2008, at 9:42 PM, Philippe Marschall wrote:
>
>> Should be doable. You should of course have an html layout before you
>> go. And have done several test runs.
>>
>> Cheers
>> Philippe
>>
>> 2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
>>>
>>> Yes, a couple of us at GemStone have asked to be included. As you
>>> mention,
>>> it is a bit of a narrow scope, with 30 minutes being allowed, but we'll
>>> try
>>> to represent the Seaside community as well as we can!
>>>
>>> James Foster
>>>
>>>
>>> On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:
>>>
>>>> Hey Seasiders
>>>>
>>>> The RoR folks are running this at OSCON:
>>>>
>>>> http://pdxfoscon.org/competition
>>>>
>>>> Probably a good opportunity to show-off what Seaside can do.  I can't
>>>> attend so I can't volunteer but presumably since they mention Seaside
>>>> and
>>>> Gemstone, there are some people already signed up in the Seaside camp?
>>>>  Yes,
>>>> yes, it's a silly contest (and proves very little), but could result in
>>>> a
>>>> few heads turned in our direction, no?
>>>>
>>>> I'd love to watch this... hopefully someone will provide a screencast at
>>>> some point?!
>>>>
>>>> Cheers
>>>>
>>>> Kyle
>>>> kyle <at> idealist.org
>>>>
>>>> _______________________________________________
>>>> seaside mailing list
>>>> seaside <at> lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>
>>>
>>> _______________________________________________
>>> seaside mailing list
>>> seaside <at> lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>> _______________________________________________
>> seaside mailing list
>> seaside <at> lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
James Foster | 22 Jul 22:16

Re: OSCON "contest"

Philippe,

Thanks for the thorough code review. I've embedded comments below...

James

On Jul 22, 2008, at 12:53 PM, Philippe Marschall wrote:

> - Thumbs up for Magritte and Pier parser
> - Autoaccessors of magritte would probably a good idea but I don't
> know if they work with Gemstone. If not use the Refactoring Browser to
> generate them. I don't know how eager people are to write accessors.

I'll be using an IDE that has a menu item that will generate accessors.

> - Speaking of RB, maybe you could introduce some problem an fix it  
> with RB? ;-)

The edit-and-fix is certainly something I'd like to demo. With luck I  
won't have to plan for a problem ;-)

> - Do you need MACommandColumnEx and MACommand? Could you get away
> without them even if it makes the code less obvious (not everything
> about Rails is obvious). Given that the code is not longer.
>
> something like:
>
> (MACommandColumn new
> 			addCommand: [ :item | self view: item ] text: 'Show';
> 			yourself)
>
> instead of:
>
> (MACommand new
> 			callback: [:item | self view: item];
> 			with: 'Show';
> 			yourself)

I think I need these extensions to get the "Are you sure?" JavaScript.  
I couldn't find a way to get a MACommandCollumn to add the #'onClick:'  
to the anchor. (In a similar way, I think I need the  
PRDocumentComponent to render the Wiki markup. It seems like this  
capability should have been available already but I couldn't find it.)

> - Are you prepared to make courses first class objects?

My first couple attempts did take that approach. On further  
reflection, it didn't look necessary from the requirements and it  
required more typing.

> - Nice looking examples are important. Search a good, nonobstruvise
> CSS. Ideally you can just wrap a decoration around your root component
> that takes care of this. Doesn't need to be fancy. Something like YAML
> or blue print CSS could work. Or steal the Rails CSS or something ;-)

Yes, we are spending some time today looking for images and styling.

> URL handling (so messy it deserves its own section)
> - that's probably the part I would drop first when running short on  
> time

I did think I'd put that off till toward the end and let it drop if I  
run out of time.

> - your URL parsing looks a bit hairier than usual

Suggestions are welcome! Are there any examples of clean URL parsing?  
is there a base class I'm not using?

> - only if you have free time consider playing around with #updateRool:
> and add to path
> - storing the path from #initialRequest: in an instance variable is
> not a good idea

Is there an easy way to get access to it in the render code? I saw it  
in the initialRequest: method, so took it. If I can defer it to the  
render code, then I'll move it there.

> Cheers
> Philippe
>
> 2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:
>> You are invited to view a sample application (with a link for GS/S  
>> source
>> code) at http://seaside.gemstone.com/seaside/recipes. Source code  
>> can also
>> be viewed at http://seaside.gemstone.com/ss/FOSCON.html and you  
>> might be
>> able to load my code into Squeak using the following:
>>
>>     MCHttpRepository
>>             location: 'http://seaside.gemstone.com/ss/FOSCON'
>>             user: ''
>>             password: ''
>>
>> Keep in mind that I consider myself more of a GemStone/S expert  
>> than a
>> Seaside expert and I'd welcome constructive criticism. I'm not sure  
>> how much
>> of the source code I can type in 10 or 15 minutes (we are allowed  
>> 20 minutes
>> and there will be new requirements held till the start of the  
>> event). Any
>> ideas of how I can make it smaller would be especially welcome.
>>
>> James
>>
>>
>> On Jul 16, 2008, at 9:42 PM, Philippe Marschall wrote:
>>
>>> Should be doable. You should of course have an html layout before  
>>> you
>>> go. And have done several test runs.
>>>
>>> Cheers
>>> Philippe
>>>
>>> 2008/7/16 James Foster <Smalltalk <at> jgfoster.net>:
>>>>
>>>> Yes, a couple of us at GemStone have asked to be included. As you
>>>> mention,
>>>> it is a bit of a narrow scope, with 30 minutes being allowed, but  
>>>> we'll
>>>> try
>>>> to represent the Seaside community as well as we can!
>>>>
>>>> James Foster
>>>>
>>>>
>>>> On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:
>>>>
>>>>> Hey Seasiders
>>>>>
>>>>> The RoR folks are running this at OSCON:
>>>>>
>>>>> http://pdxfoscon.org/competition
>>>>>
>>>>> Probably a good opportunity to show-off what Seaside can do.  I  
>>>>> can't
>>>>> attend so I can't volunteer but presumably since they mention  
>>>>> Seaside
>>>>> and
>>>>> Gemstone, there are some people already signed up in the Seaside  
>>>>> camp?
>>>>> Yes,
>>>>> yes, it's a silly contest (and proves very little), but could  
>>>>> result in
>>>>> a
>>>>> few heads turned in our direction, no?
>>>>>
>>>>> I'd love to watch this... hopefully someone will provide a  
>>>>> screencast at
>>>>> some point?!
>>>>>
>>>>> Cheers
>>>>>
>>>>> Kyle
>>>>> kyle <at> idealist.org
>>>>>
>>>>> _______________________________________________
>>>>> seaside mailing list
>>>>> seaside <at> lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>>
>>>>
>>>> _______________________________________________
>>>> seaside mailing list
>>>> seaside <at> lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>>
>>> _______________________________________________
>>> seaside mailing list
>>> seaside <at> lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside <at> lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
Philippe Marschall | 23 Jul 07:03

Re: OSCON "contest"

>> - Do you need MACommandColumnEx and MACommand? Could you get away
>> without them even if it makes the code less obvious (not everything
>> about Rails is obvious). Given that the code is not longer.
>> ....
> I think I need these extensions to get the "Are you sure?" JavaScript. I
> couldn't find a way to get a MACommandCollumn to add the #'onClick:' to the
> anchor. (In a similar way, I think I need the PRDocumentComponent to render
> the Wiki markup. It seems like this capability should have been available
> already but I couldn't find it.)

I see, I should have read more carefully. No, I'm not aware of such
functionality.

>> - Are you prepared to make courses first class objects?
>
> My first couple attempts did take that approach. On further reflection, it
> didn't look necessary from the requirements and it required more typing.

No, what I meant that they say some of the requirements will be
announced when the competition starts. This is for example something I
would do.

>...
>> - your URL parsing looks a bit hairier than usual
>
> Suggestions are welcome! Are there any examples of clean URL parsing? is
> there a base class I'm not using?

No, not yet :-( but:

aRequest accessPath copyFrom: 3 to: aRequest accessPath size

- I'm not ware of an #accessPath method in WARequest
- why do exclude the first 3 characters?

>> - only if you have free time consider playing around with #updateRool:
>> and add to path
>> - storing the path from #initialRequest: in an instance variable is
>> not a good idea
>
> Is there an easy way to get access to it in the render code?

self session currentRequest

> I saw it in the
> initialRequest: method, so took it. If I can defer it to the render code,
> then I'll move it there.

The problem is that #initialRequest: is sent only once, that the
beginning of the session.

Cheers
Philippe
James Foster | 23 Jul 07:59

Re: OSCON "contest"

I've edited the following to remove some issues that have been  
resolved...

On Jul 22, 2008, at 10:03 PM, Philippe Marschall wrote:

>>> - Are you prepared to make courses first class objects?
>>
>> My first couple attempts did take that approach. On further  
>> reflection, it
>> didn't look necessary from the requirements and it required more  
>> typing.
>
> No, what I meant that they say some of the requirements will be
> announced when the competition starts. This is for example something I
> would do.

I see. Yes, that does seem like an area where they might grow the  
requirements. Good point!

> aRequest accessPath copyFrom: 3 to: aRequest accessPath size
>
> - I'm not ware of an #accessPath method in WARequest
> - why do exclude the first 3 characters?

Actually, #accessPath is an array (the path string broken by $/), so  
this trims off the first two pieces, #('seaside' 'recipes').

>> Is there an easy way to get access to it [currentRequest] in the  
>> render code?
>
> self session currentRequest

That makes things much cleaner! Thanks.

>> I saw it in the
>> initialRequest: method, so took it. If I can defer it to the render  
>> code,
>> then I'll move it there.
>
> The problem is that #initialRequest: is sent only once, that the
> beginning of the session.

Good point, though it probably works okay here since I'm getting a new  
session when a RESTful URL is submitted (I think).

> Cheers
> Philippe

Thanks again,

James
Igor Stasenko | 24 Jul 17:51

Re: OSCON "contest"

2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:

>
> I think I need these extensions to get the "Are you sure?" JavaScript. I
> couldn't find a way to get a MACommandCollumn to add the #'onClick:' to the
> anchor. (In a similar way, I think I need the PRDocumentComponent to render
> the Wiki markup. It seems like this capability should have been available
> already but I couldn't find it.)
>

Here the simple class which draws a dialog using lightbox.

Just add a method , like this:

confirmDialog: aTitle with: aContentsBlock
	^ self lightbox: (TheDialogWindow confirmDialog: aTitle with: aContentsBlock)

and then you can use it like this:

html submitButton value: 'Delete this worthless stuff'; callback: [
    (self confirmDialog: 'Deleting worthless stuff' with: [:htm | htm
text: 'Do you really think this stuff is worthless?'] )
    ifTrue: [ self deleteStuff ]
].

Note, that you can put any html inside a dialog window.

Try it out :)

--

-- 
Best regards,
Igor Stasenko AKA sig.
Attachment (TheDialogWindow.st): application/octet-stream, 2332 bytes
_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
James Foster | 24 Jul 21:13

Re: OSCON "contest"


On Jul 24, 2008, at 8:51 AM, Igor Stasenko wrote:

> 2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:
>
>>
>> I think I need these extensions to get the "Are you sure?"  
>> JavaScript. I
>> couldn't find a way to get a MACommandCollumn to add the  
>> #'onClick:' to the
>> anchor. (In a similar way, I think I need the PRDocumentComponent  
>> to render
>> the Wiki markup. It seems like this capability should have been  
>> available
>> already but I couldn't find it.)
>>
>
> Here the simple class which draws a dialog using lightbox.
>
> Just add a method , like this:
>
> confirmDialog: aTitle with: aContentsBlock
> 	^ self lightbox: (TheDialogWindow confirmDialog: aTitle with:  
> aContentsBlock)
>
> and then you can use it like this:
>
> html submitButton value: 'Delete this worthless stuff'; callback: [
>    (self confirmDialog: 'Deleting worthless stuff' with: [:htm | htm
> text: 'Do you really think this stuff is worthless?'] )
>    ifTrue: [ self deleteStuff ]
> ].
>
> Note, that you can put any html inside a dialog window.
>
> Try it out :)
>
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> <TheDialogWindow.st>

That does look nice, though I believe it does require execution of  
server code to handle the dialog. What drove me to do the extension  
was the "requirement" to use JavaScript so that the server code only  
ran if the user confirmed based on code running only on the client.

James
Igor Stasenko | 25 Jul 00:41

Re: OSCON "contest"

2008/7/24 James Foster <Smalltalk <at> jgfoster.net>:
>
> On Jul 24, 2008, at 8:51 AM, Igor Stasenko wrote:
>
>> 2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:
>>
>>>
>>> I think I need these extensions to get the "Are you sure?" JavaScript. I
>>> couldn't find a way to get a MACommandCollumn to add the #'onClick:' to
>>> the
>>> anchor. (In a similar way, I think I need the PRDocumentComponent to
>>> render
>>> the Wiki markup. It seems like this capability should have been available
>>> already but I couldn't find it.)
>>>
>>
>> Here the simple class which draws a dialog using lightbox.
>>
>> Just add a method , like this:
>>
>> confirmDialog: aTitle with: aContentsBlock
>>        ^ self lightbox: (TheDialogWindow confirmDialog: aTitle with:
>> aContentsBlock)
>>
>> and then you can use it like this:
>>
>> html submitButton value: 'Delete this worthless stuff'; callback: [
>>   (self confirmDialog: 'Deleting worthless stuff' with: [:htm | htm
>> text: 'Do you really think this stuff is worthless?'] )
>>   ifTrue: [ self deleteStuff ]
>> ].
>>
>> Note, that you can put any html inside a dialog window.
>>
>> Try it out :)
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>> <TheDialogWindow.st>
>
> That does look nice, though I believe it does require execution of server
> code to handle the dialog. What drove me to do the extension was the
> "requirement" to use JavaScript so that the server code only ran if the user
> confirmed based on code running only on the client.
>

Well, i really don't think that validating forms using javascript is
good way. Because it is not secure, and often you need more additional
data to validate an input, which accessible only at server side and
hidden from client's eyes.

Oh, and btw: good user interface should not show any 'yes-no' dialogs :)
UI should be built on a principle which allows user do things first,
without asking 'yes-no' all the way around, and then allow to revert
things back (undo) at any the moment when he finds he made wrong
action(s).

> James
>
>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>

--

-- 
Best regards,
Igor Stasenko AKA sig.
James Foster | 25 Jul 01:49

Re: OSCON "contest"


On Jul 24, 2008, at 3:41 PM, Igor Stasenko wrote:

> 2008/7/24 James Foster <Smalltalk <at> jgfoster.net>:
>>
>> On Jul 24, 2008, at 8:51 AM, Igor Stasenko wrote:
>>
>>> 2008/7/22 James Foster <Smalltalk <at> jgfoster.net>:
>>>
>>>>
>>>> I think I need these extensions to get the "Are you sure?"  
>>>> JavaScript. I
>>>> couldn't find a way to get a MACommandCollumn to add the  
>>>> #'onClick:' to
>>>> the
>>>> anchor. (In a similar way, I think I need the PRDocumentComponent  
>>>> to
>>>> render
>>>> the Wiki markup. It seems like this capability should have been  
>>>> available
>>>> already but I couldn't find it.)
>>>>
>>>
>>> Here the simple class which draws a dialog using lightbox.
>>>
>>> Just add a method , like this:
>>>
>>> confirmDialog: aTitle with: aContentsBlock
>>>       ^ self lightbox: (TheDialogWindow confirmDialog: aTitle with:
>>> aContentsBlock)
>>>
>>> and then you can use it like this:
>>>
>>> html submitButton value: 'Delete this worthless stuff'; callback: [
>>>  (self confirmDialog: 'Deleting worthless stuff' with: [:htm | htm
>>> text: 'Do you really think this stuff is worthless?'] )
>>>  ifTrue: [ self deleteStuff ]
>>> ].
>>>
>>> Note, that you can put any html inside a dialog window.
>>>
>>> Try it out :)
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>> <TheDialogWindow.st>
>>
>> That does look nice, though I believe it does require execution of  
>> server
>> code to handle the dialog. What drove me to do the extension was the
>> "requirement" to use JavaScript so that the server code only ran if  
>> the user
>> confirmed based on code running only on the client.
>>
>
> Well, i really don't think that validating forms using javascript is
> good way. Because it is not secure, and often you need more additional
> data to validate an input, which accessible only at server side and
> hidden from client's eyes.
>
> Oh, and btw: good user interface should not show any 'yes-no'  
> dialogs :)
> UI should be built on a principle which allows user do things first,
> without asking 'yes-no' all the way around, and then allow to revert
> things back (undo) at any the moment when he finds he made wrong
> action(s).
> -- 
> Best regards,
> Igor Stasenko AKA sig.

And if you were invited to a Ruby event and asked whether Seaside/ 
Magritte could support JavaScript, would you tell them that they were  
wrong for asking?

James
Ramon Leon | 25 Jul 02:54

RE: OSCON "contest"

> 
> And if you were invited to a Ruby event and asked whether Seaside/ 
> Magritte could support JavaScript, would you tell them that 
> they were  
> wrong for asking?
> 
> James

Nope, but I wouldn't be showing them Magritte either, that's a mistake, I'd
be showing them Seaside and Scriptaculous.  Magritte is complex in the same
way Glorp is complex, building all those metadata descriptions is complex
and error prone and takes way too much time to use in a demo, especially a
time limited one.  Whipping up something in raw Seaside would be much faster
unless you've rigged up some code generators to write the mappings
automatically for you.  

Rails guys are accustomed to ActiveRecord and scaffolding which bootstraps
them up to a running system very quickly using code generation and a
generate and modify philosophy (this is also how they learn Rails).
Gemstone might eliminate the need for ActiveRecord, but Magritte is not at
all equivalent to scaffolding.  Scaffolding is much easier to hack and
customize because it's not a framework, it's just a bunch of generated form
template code.  To compete against Rails in a time limited demo, you'll need
something like a scaffolder, or a form builder you have a very deep
knowledge of so it can be highly customized on the fly.  To sell newbs, you
need the scaffolder, because scaffolding code is an excellent way to teach
them how to write Seaside code, they don't need yet another framework
(Magritte) to learn.

Ramon Leon
http://onsmalltalk.com
James Foster | 25 Jul 06:10

Re: OSCON "contest"

On Jul 24, 2008, at 5:54 PM, Ramon Leon wrote:

>>
>> And if you were invited to a Ruby event and asked whether Seaside/
>> Magritte could support JavaScript, would you tell them that
>> they were wrong for asking?
>>
>> James
>
> Nope, but I wouldn't be showing them Magritte either, that's a  
> mistake, I'd
> be showing them Seaside and Scriptaculous.  Magritte is complex in  
> the same
> way Glorp is complex, building all those metadata descriptions is  
> complex
> and error prone and takes way too much time to use in a demo,  
> especially a
> time limited one.  Whipping up something in raw Seaside would be  
> much faster
> unless you've rigged up some code generators to write the mappings
> automatically for you.

I did try it both ways and building the editor by hand seemed to be  
more lines of code and I thought I'd go for something that might seem  
more familiar for the domain definition. Also, since I was building  
one component by hand trying the other as meta data seemed like  
reasonable variety. On the other hand, since I don't consider the  
whole experience a great success I certainly won't insist that I made  
the right choice.

> Rails guys are accustomed to ActiveRecord and scaffolding which  
> bootstraps
> them up to a running system very quickly using code generation and a
> generate and modify philosophy (this is also how they learn Rails).
> Gemstone might eliminate the need for ActiveRecord, but Magritte is  
> not at
> all equivalent to scaffolding.  Scaffolding is much easier to hack and
> customize because it's not a framework, it's just a bunch of  
> generated form
> template code.  To compete against Rails in a time limited demo,  
> you'll need
> something like a scaffolder, or a form builder you have a very deep
> knowledge of so it can be highly customized on the fly.  To sell  
> newbs, you
> need the scaffolder, because scaffolding code is an excellent way to  
> teach
> them how to write Seaside code, they don't need yet another framework
> (Magritte) to learn.

Agreed. Maybe next time I'll channel the better-known "James" and try  
a demo of Web Velocity!

> Ramon Leon
> http://onsmalltalk.com

James Foster
Chris Dawson | 25 Jul 07:10

Re: OSCON "contest"

I do want to add that I was sitting in the audience and there was a lot of interest and discussion about what is happening with Maglev and the benefits that come with tools such as GemStone/S.  I think people were not exactly sure of the process for building a solution using Seaside; this was, of course, a poor format for learning Seaside because there was no time for James to explain and type at the same time and stop for questions.  Also, it is a very different set of tools and development process.  But, when I started telling them that persistence just "is" and you don't have to do what I did earlier that day in my day job, that is, trying to marshall complex ruby objects into SQL, then their ears perked up.  With commentary from Randal a nd comments from Monty, I think people learned a bunch.  There were definitely some people that left with a whole new way of looking at the world. 

James, I thought you did a great job, and I was really honored that you would be a part of the competition.  I hope you were able to have fun and enjoy it, or at least can be relieved it is now over.

Next year perhaps we'll do what you've all suggested:  we can ask people to come with a completed application and then say "Now you have twenty minutes to make these five changes" and really let people see the power of Seaside that comes when you refactor an existing application.  I say that as a impartial observer and not as an official organizer of the event of course!

Chris

On Thu, Jul 24, 2008 at 9:10 PM, James Foster <Smalltalk <at> jgfoster.net> wrote:
On Jul 24, 2008, at 5:54 PM, Ramon Leon wrote:


And if you were invited to a Ruby event and asked whether Seaside/
Magritte could support JavaScript, would you tell them that
they were wrong for asking?

James

Nope, but I wouldn't be showing them Magritte either, that's a mistake, I'd
be showing them Seaside and Scriptaculous.  Magritte is complex in the same
way Glorp is complex, building all those metadata descriptions is complex
and error prone and takes way too much time to use in a demo, especially a
time limited one.  Whipping up something in raw Seaside would be much faster
unless you've rigged up some code generators to write the mappings
automatically for you.

I did try it both ways and building the editor by hand seemed to be more lines of code and I thought I'd go for something that might seem more familiar for the domain definition. Also, since I was building one component by hand trying the other as meta data seemed like reasonable variety. On the other hand, since I don't consider the whole experience a great success I certainly won't insist that I made the right choice.


Rails guys are accustomed to ActiveRecord and scaffolding which bootstraps
them up to a running system very quickly using code generation and a
generate and modify philosophy (this is also how they learn Rails).
Gemstone might eliminate the need for ActiveRecord, but Magritte is not at
all equivalent to scaffolding.  Scaffolding is much easier to hack and
customize because it's not a framework, it's just a bunch of generated form
template code.  To compete against Rails in a time limited demo, you'll need
something like a scaffolder, or a form builder you have a very deep
knowledge of so it can be highly customized on the fly.  To sell newbs, you
need the scaffolder, because scaffolding code is an excellent way to teach
them how to write Seaside code, they don't need yet another framework
(Magritte) to learn.

Agreed. Maybe next time I'll channel the better-known "James" and try a demo of Web Velocity! James Foster


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
cdrick | 25 Jul 10:29

Re: OSCON "contest"

Are there Pragma in Gemstone ? If yes I'll suggest looking at
SSFormand SSFormTest in Ramon image
(http://onsmalltalk.com/downloads/DevImage.zip)...

Otherwise, I think one could publish in a repository a small table
component that add/edit/remove collection entries (based on
conventions on object accessors) having a simple validate function
;)... There's a need anyway for such a component. It could even be a
project in itself to expose several variations of tables... without
any apriori relation to the oscon app :)

My 2 cents

Cédrick

>> On Jul 24, 2008, at 5:54 PM, Ramon Leon wrote:
>>
>>>>
>>>> And if you were invited to a Ruby event and asked whether Seaside/
>>>> Magritte could support JavaScript, would you tell them that
>>>> they were wrong for asking?
>>>>
>>>> James
>>>
>>> Nope, but I wouldn't be showing them Magritte either, that's a mistake,
>>> I'd
>>> be showing them Seaside and Scriptaculous.  Magritte is complex in the
>>> same
>>> way Glorp is complex, building all those metadata descriptions is complex
>>> and error prone and takes way too much time to use in a demo, especially
>>> a
>>> time limited one.  Whipping up something in raw Seaside would be much
>>> faster
>>> unless you've rigged up some code generators to write the mappings
>>> automatically for you.
>>
>> I did try it both ways and building the editor by hand seemed to be more
>> lines of code and I thought I'd go for something that might seem more
>> familiar for the domain definition. Also, since I was building one component
>> by hand trying the other as meta data seemed like reasonable variety. On the
>> other hand, since I don't consider the whole experience a great success I
>> certainly won't insist that I made the right choice.
>>
>>> Rails guys are accustomed to ActiveRecord and scaffolding which
>>> bootstraps
>>> them up to a running system very quickly using code generation and a
>>> generate and modify philosophy (this is also how they learn Rails).
>>> Gemstone might eliminate the need for ActiveRecord, but Magritte is not
>>> at
>>> all equivalent to scaffolding.  Scaffolding is much easier to hack and
>>> customize because it's not a framework, it's just a bunch of generated
>>> form
>>> template code.  To compete against Rails in a time limited demo, you'll
>>> need
>>> something like a scaffolder, or a form builder you have a very deep
>>> knowledge of so it can be highly customized on the fly.  To sell newbs,
>>> you
>>> need the scaffolder, because scaffolding code is an excellent way to
>>> teach
>>> them how to write Seaside code, they don't need yet another framework
>>> (Magritte) to learn.
>>
_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
stephane ducasse | 25 Jul 19:37

Re: OSCON "contest"

Agreed!
Stef

On Jul 25, 2008, at 2:54 AM, Ramon Leon wrote:

>>
>> And if you were invited to a Ruby event and asked whether Seaside/
>> Magritte could support JavaScript, would you tell them that
>> they were
>> wrong for asking?
>>
>> James
>
> Nope, but I wouldn't be showing them Magritte either, that's a  
> mistake, I'd
> be showing them Seaside and Scriptaculous.  Magritte is complex in  
> the same
> way Glorp is complex, building all those metadata descriptions is  
> complex
> and error prone and takes way too much time to use in a demo,  
> especially a
> time limited one.  Whipping up something in raw Seaside would be  
> much faster
> unless you've rigged up some code generators to write the mappings
> automatically for you.
>
> Rails guys are accustomed to ActiveRecord and scaffolding which  
> bootstraps
> them up to a running system very quickly using code generation and a
> generate and modify philosophy (this is also how they learn Rails).
> Gemstone might eliminate the need for ActiveRecord, but Magritte is  
> not at
> all equivalent to scaffolding.  Scaffolding is much easier to hack and
> customize because it's not a framework, it's just a bunch of  
> generated form
> template code.  To compete against Rails in a time limited demo,  
> you'll need
> something like a scaffolder, or a form builder you have a very deep
> knowledge of so it can be highly customized on the fly.  To sell  
> newbs, you
> need the scaffolder, because scaffolding code is an excellent way to  
> teach
> them how to write Seaside code, they don't need yet another framework
> (Magritte) to learn.
>
> Ramon Leon
> http://onsmalltalk.com
>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
Gerhard Obermann | 23 Jul 11:24

Re: OSCON "contest"

Hi James!

I have downloaded your example app and improved the CCS a little bit!
See attachment!

If you like i could upload it to your monticello repository.

Changes
- New CSS
- CSS is now optimized for Firefox and Safari
- Use lightbox for view action
- Patched MASingleOptionDescription to allow sorting ( isSortable ^ true), I am not sure why this is not allowed atm)
- Refactored some rendering methods

There is an exception if you are using e.g. 'aaa' for the instVar "servings".
Seems to be a magritte issue!

br
Gerhard


_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
James Foster | 23 Jul 16:02

Re: OSCON "contest"

Hi Gerhard,

I've added you as a developer in the Monticello repository. If you  
could upload your changes that would be great! I do like your CSS very  
much.

Maybe we could solve the 'aaa' for "servings" with some JavaScript  
that validates the text as containing only digits?

Thanks very much,

James

On Jul 23, 2008, at 2:24 AM, Gerhard Obermann wrote:

> Hi James!
>
> I have downloaded your example app and improved the CCS a little bit!
> See attachment!
>
> If you like i could upload it to your monticello repository.
>
> Changes
> - New CSS
> - CSS is now optimized for Firefox and Safari
> - Use lightbox for view action
> - Patched MASingleOptionDescription to allow sorting ( isSortable ^  
> true), I am not sure why this is not allowed atm)
> - Refactored some rendering methods
>
> There is an exception if you are using e.g. 'aaa' for the instVar  
> "servings".
> Seems to be a magritte issue!
>
> br
> Gerhard
>
>
> <foscon.jpg>_______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Gerhard Obermann | 23 Jul 16:16

Re: OSCON "contest"


I've added you as a developer in the Monticello repository. If you could upload your changes that would be great! I do like your CSS very much.


DONE!
_______________________________________________
seaside mailing list
seaside <at> lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
James Foster | 24 Jul 16:38

Re: OSCON "contest"

I'd like to thank all of you for your interest and support as we  
prepared for this competition. Now for the report...

Overall I'm disappointed with my performance. 20 minutes is just too  
short a time for building even a trivial application using GLASS. The  
analogy that comes to mind is this competition (race) was a sprint and  
we are much better suited to competing in a marathon. There was a  
point a  couple days ago when I told people that we'd do better if we  
got a beta copy of Cincom's Web Velocity from James Robertson and used  
it for the competition. I think they (Cincom) are doing an excellent  
job at aiming at this sort of audience.

James Foster

On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:

> Hey Seasiders
>
> The RoR folks are running this at OSCON:
>
> http://pdxfoscon.org/competition
>
> Probably a good opportunity to show-off what Seaside can do.  I  
> can't attend so I can't volunteer but presumably since they mention  
> Seaside and Gemstone, there are some people already signed up in the  
> Seaside camp?  Yes, yes, it's a silly contest (and proves very  
> little), but could result in a few heads turned in our direction, no?
>
> I'd love to watch this... hopefully someone will provide a  
> screencast at some point?!
>
> Cheers
>
> Kyle
> kyle <at> idealist.org
>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
James Robertson | 24 Jul 16:47

Re: OSCON "contest"

Yes, Web Velocity would have been well suited for that.  And Randal  
has a copy :)

James Robertson
Cincom Smalltalk Product Evangelist
http://www.cincomsmalltalk.com/blog/blogView
Talk Small and Carry a Big Class Library

On Jul 24, 2008, at 10:38 AM, James Foster wrote:

> I'd like to thank all of you for your interest and support as we  
> prepared for this competition. Now for the report...
>
> Overall I'm disappointed with my performance. 20 minutes is just too  
> short a time for building even a trivial application using GLASS.  
> The analogy that comes to mind is this competition (race) was a  
> sprint and we are much better suited to competing in a marathon.  
> There was a point a  couple days ago when I told people that we'd do  
> better if we got a beta copy of Cincom's Web Velocity from James  
> Robertson and used it for the competition. I think they (Cincom) are  
> doing an excellent job at aiming at this sort of audience.
>
> James Foster
>
> On Jul 16, 2008, at 2:46 PM, Kyle Dawkins wrote:
>
>> Hey Seasiders
>>
>> The RoR folks are running this at OSCON:
>>
>> http://pdxfoscon.org/competition
>>
>> Probably a good opportunity to show-off what Seaside can do.  I  
>> can't attend so I can't volunteer but presumably since they mention  
>> Seaside and Gemstone, there are some people already signed up in  
>> the Seaside camp?  Yes, yes, it's a silly contest (and proves very  
>> little), but could result in a few heads turned in our direction, no?
>>
>> I'd love to watch this... hopefully someone will provide a  
>> screencast at some point?!
>>
>> Cheers
>>
>> Kyle
>> kyle <at> idealist.org
>>
>> _______________________________________________
>> seaside mailing list
>> seaside <at> lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>
> _______________________________________________
> seaside mailing list
> seaside <at> lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
Randal L. Schwartz | 24 Jul 17:29

Re: OSCON "contest"

>>>>> "James" == James Robertson <jrobertson <at> cincom.com> writes:

James> Yes, Web Velocity would have been well suited for that.  And Randal has
James> a copy :)

I was thinking it would be funny if I pulled out my laptop and started
from scratch with WV while the GS team was competing. :)

The real problem seemed to be that there's a lot of code to type to describe
the meta data (Magritte)... but once that code is typed, lots of things are
available in very flexible ways.  The other frameworks essentially intermix
metadata and uses of that data, and would spend a lot longer to *change* the
result once built.  And we all know, the majority cost of software is not
initial development, but *maintenance* in reaction to changing minds^Wgoals
of the customer.

For example, had the contest been to start with your already built application
and then simply *add* the rating, the GS team would have been done in 3
minutes, while the other teams (I suspect) would have taken longer, especially
to figure how how to migrate their persistent schemas.

Also, James Foster - you gotta learn to use a code browser that has
ecompletion.  I just started using one, and it's amazingly cool.  It would
have cut your typing time in half, likely.

--

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn <at> stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See