Newbie questions about Squeak and Seaside

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

Newbie questions about Squeak and Seaside

Warren Henning
Hi,

I'm teaching myself Smalltalk with a free book I found on Stephane
Ducasse's website and Stephane Ducasse's book on Squeak for beginning
programmers. I know how to program fairly well so the main issue is
learning about stuff unique to Squeak. Here are some questions I have
which are mostly just requests for reassurance that it's worth my time
to invest in learning Squeak.

1. I have an idea for a web application that involves a lot of custom
text processing logic. Is Squeak an acceptable environment for
implementing a real full-blown application? How is its performance for
common tasks compared to, say, Python, Ruby, and Common Lisp? Do I
need to shell out for VisualWorks or something in order to get
real-world work done?

2. Do you always just edit one method at a time? Isn't that annoying
to have to click around so much? Do you always edit new stuff by
working on one method at a time in the debugger/browser?

3. I was playing with the counter example in Seaside and it appears
that continuation expiration is 600 seconds by default. Is the only
way to have user sessions last longer to simply increase the
expiration time? How do you do this for a real-world application?

4. Do you people ever find forcing everything to be object-oriented to
be restrictive? I think sometimes it would be as annoying as not
having any OO functionality in the language at all. I also think
having tons of 7-line methods is weird and unwieldy.

5. Is Squeak good for building things where functional languages do
pretty well? Things like compilers and interpreters.

I think the debugging and browsing tools are totally amazing (they
blow away everything else I've used, including SLIME for Common
Lisp/Emacs) but the actual editing itself sucks: I miss my Emacs
keyboard shortcuts terribly . The reason I'm learning Squeak is
because of Seaside, not the goofy "it's for
children"/games/multimedia/mouse gunk.

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

RE: Newbie questions about Squeak and Seaside

Ramon Leon-5
> 2. Do you always just edit one method at a time? Isn't that
> annoying to have to click around so much? Do you always edit
> new stuff by working on one method at a time in the debugger/browser?

No, it's not annoying, it's awesome, and there are alternate browsers that
allow other styles of development.  An IDE that understands the structure of
the code beats the hell out of a text editor that doesn't.  New stuff is
often written with a browser and a workspace, you try stuff out in a
workspace, hack till it works, then pop it into your model in the browser.
Smalltalkers use a workspace like everyone else uses a REPL.

> 3. I was playing with the counter example in Seaside and it
> appears that continuation expiration is 600 seconds by
> default. Is the only way to have user sessions last longer to
> simply increase the expiration time? How do you do this for a
> real-world application?

Umm, seems you answered your own question.

> 4. Do you people ever find forcing everything to be
> object-oriented to be restrictive? I think sometimes it would
> be as annoying as not having any OO functionality in the
> language at all. I also think having tons of 7-line methods
> is weird and unwieldy.

Objects rock, objects all the way down rock even harder.  Smalltalkers
consider tons of 7 line methods well factored well written code, as do most
Lisper's by the way.  The browsers are designed the way they are to
encourage such factoring.  If you want to feel comfortable and be
productive, you have to drink the OO kool-aid.  If you work in Lisp, you
better learn to love functions, in Smalltalk, objects, you will be punished
by the environment for not doing so.

> 5. Is Squeak good for building things where functional
> languages do pretty well? Things like compilers and interpreters.

Squeak's compiler is written in Squeak, it's all there for the reading.

> I think the debugging and browsing tools are totally amazing
> (they blow away everything else I've used, including SLIME for Common

Now you're catching on.

> Lisp/Emacs) but the actual editing itself sucks: I miss my
> Emacs keyboard shortcuts terribly . The reason I'm learning

So load the Emac's key binding package off squeakmap.

> Squeak is because of Seaside, not the goofy "it's for
> children"/games/multimedia/mouse gunk.
>
> Warren

Welcome from a fellow Seasider!

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

Re: Newbie questions about Squeak and Seaside

timrowledge
In reply to this post by Warren Henning

On 24-Aug-06, at 8:55 AM, Warren Henning wrote:

>
> 1. I have an idea for a web application that involves a lot of custom
> text processing logic.
You will probably want to look into one or the other regular  
expression handling packages then; I wouldn't worry about it while  
you're still getting used to the basic system but just be aware that  
you can do regexp stuff

> Is Squeak an acceptable environment for
> implementing a real full-blown application?
Depends a lot on what you mean by 'real'. Do you insist on 'host  
widgets and only host widgets'? If so, you may need to investigate  
wxSqueak or the Ariethfa Ffenestri package. If you are web-based then  
Seaside should definitely float your boat.

> How is its performance for
> common tasks compared to, say, Python, Ruby, and Common Lisp?
Similar; better for some, worse for others.

> Do I
> need to shell out for VisualWorks or something in order to get
> real-world work done?
Probably not but if you do VW is free for personal use anyway. And if  
you develop a product that is expected to make money there are  
assorted licensing deals that can be made. They seem to try quite  
hard to help.

>
> 2. Do you always just edit one method at a time? Isn't that annoying
> to have to click around so much? Do you always edit new stuff by
> working on one method at a time in the debugger/browser?
Well, it may be one method at a time in 'a' browser but you can have  
many browsers open.
I'll typically have a dozen or more in use - some open to methods/
classes that I need to refer to to check existing code, others where  
I'm part way through writing/extending a class, some senders-fo or  
implementors-of browsers and so on.
It's hugely more useful than a text editor. I may be biased of course  
since I've been doing it this way for 20 years.
>
>
> 4. Do you people ever find forcing everything to be object-oriented to
> be restrictive? I think sometimes it would be as annoying as not
> having any OO functionality in the language at all. I also think
> having tons of 7-line methods is weird and unwieldy.
Nah, I find objects everywhere to be totally natural. It may be that  
having grown up as an engineer I just naturally find OOP to match my  
mental models of the universe. Loads of small methods are the way to  
factor things nicely; lots of well written, concisely commented,  
useful little bits of work that can be strung together to get stuff  
done.

>
> 5. Is Squeak good for building things where functional languages do
> pretty well? Things like compilers and interpreters.
Well the Smalltalk compiler (and in fact several alternate ones under  
consideration) is written in Smalltalk, as is the Decompiler,  
debugger and all the other programming tools. Various AI interpretere/
compilers/inference engines/what have you have been written as well.  
So I imagine that makes a 'yes'.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: MC: Melt down Core


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

Re: Newbie questions about Squeak and Seaside

William Harford
In reply to this post by Warren Henning

On Aug 24, 2006, at 11:55 AM, Warren Henning wrote:

> Hi,
> 1. I have an idea for a web application that involves a lot of custom
> text processing logic. Is Squeak an acceptable environment for
> implementing a real full-blown application? How is its performance for
> common tasks compared to, say, Python, Ruby, and Common Lisp? Do I
> need to shell out for VisualWorks or something in order to get
> real-world work done?

Well yes , for us at least.

We use Squeak/Seaside in a commercial setting and the speed is  
adequate. At one point I did port my application to VisualWorks and  
the speed was much improved but the price we were quoted was  
unacceptable ($130,000/year).

  You will have to try it out for your situation and see how it  
performs. The biggest performance problem we have come across is the  
speed of WeakArrays. We ended up working around the problem but  
depending on your Seaside application you may not run into the  
problem at all.

>
> 2. Do you always just edit one method at a time? Isn't that annoying
> to have to click around so much? Do you always edit new stuff by
> working on one method at a time in the debugger/browser?
>

I , personally,  like the default Squeak browser but there are  
others. Have you looked at Whisker?
http://www.mindspring.com/~dway/smalltalk/whisker.html

The "one method at a time" approach makes it easier for me to find  
what I need with minimal effort.

> 3. I was playing with the counter example in Seaside and it appears
> that continuation expiration is 600 seconds by default. Is the only
> way to have user sessions last longer to simply increase the
> expiration time? How do you do this for a real-world application?

You session will expire after 600 sec of inactivity. Not simply after  
600 seconds. You are not this first person to have this  
misconception. Maybe that config field should have a more descriptive  
label ?


>
> 4. Do you people ever find forcing everything to be object-oriented to
> be restrictive? I think sometimes it would be as annoying as not
> having any OO functionality in the language at all. I also think
> having tons of 7-line methods is weird and unwieldy.
>

Again I like it. It was one of the big draws for me. Breaking things  
into least common denominator bits allows for maxim reuse and in the  
long term you will end up doing less work and not reimplementing the  
same ting over and over.

If you need something that feels more like a function you can use the  
class side of the appropriate class (click on Class in the object.  
Then you can ...

     result := SomeObject doSomethingWith: anotherSometing

Although in most cases you would most likely be better off doing

        result := anotherSometing withSomething: SomeObject.

In either case I would suggest you give the OO nature of Smalltalk a  
chance.

> 5. Is Squeak good for building things where functional languages do
> pretty well? Things like compilers and interpreters.

I have not experience with building compilers and interpreters in  
Smalltalk so someone else might be better suited to answer this  
questions but I will give it a shot.

I am not sure you would want to build a compiler in Smalltalk/Squeak  
unless you were targeting the Squeak VM. As far as interpreters go I  
would see no reason why Squeak would do a fine job.

>
> I think the debugging and browsing tools are totally amazing (they
> blow away everything else I've used, including SLIME for Common
> Lisp/Emacs) but the actual editing itself sucks: I miss my Emacs
> keyboard shortcuts terribly . The reason I'm learning Squeak is
> because of Seaside, not the goofy "it's for
> children"/games/multimedia/mouse gunk.

I personally feel the games/multimedia/mouse "gunk" works to Squeak  
detriment in the business world. I know the immediate visceral  
reaction to Squeak by my colleges has been "you can't do anything  
serious with that" and while I think I have proven them wrong the  
initial hurtle took some time to overcome.

I think Seaside it Squeak's chance to make it into the mainstream but  
the interface could be a little more professional looking.

Will

>
> Warren
> _______________________________________________
> 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: Newbie questions about Squeak and Seaside

Chris Cunnington-5
In reply to this post by Warren Henning
Hi Warren,

I'm probably not the best person to answer the bulk of your questions
because I'm not a developer. I can address one of them about keyboard
shortcuts. I think I need to say something about your tone, as well. Don¹t
get upset about that, because I understand how you feel.

First of all, there are lots of keyboard shorts for Squeak. Tonnes. If you
want to see a few of them then I refer you to my (now 60,000 word! Yeah!)
blog, which has screenshots and an index. Look up Squeak, and you'll see
screenshots and blog entries that can take you to shortcuts.

http://www.brokentomb.com

About your tone. You are saying two things in your message that are not
exactly obvious. One: you care a lot about the answers. Two: You expect
others to justify why Squeak is different. Nobody cares if you don't like
Squeak. Don't act so defensive. Do you miss the Emacs shortcuts or are you
afraid you're falling for the unpopular girl a the party?

I felt the way you do now three months ago. Go to my blog index and look up
the word "anger".

Chris Cunnington
Toronto

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

Re: Newbie questions about Squeak and Seaside

stephane ducasse
In reply to this post by William Harford
>> Hi,
>> 1. I have an idea for a web application that involves a lot of custom
>> text processing logic. Is Squeak an acceptable environment for
>> implementing a real full-blown application? How is its performance  
>> for
>> common tasks compared to, say, Python, Ruby, and Common Lisp? Do I
>> need to shell out for VisualWorks or something in order to get
>> real-world work done?
>
> Well yes , for us at least.
>
> We use Squeak/Seaside in a commercial setting and the speed is  
> adequate.

Can you tell us more?
Is the application visible on the web?

> At one point I did port my application to VisualWorks and the speed  
> was much improved but the price we were quoted was unacceptable  
> ($130,000/year).

Indeed you were making money apparently or the sales were doing  
something wrong.
you have also dolphin smalltalk :)

>  You will have to try it out for your situation and see how it  
> performs. The biggest performance problem we have come across is  
> the speed of WeakArrays. We ended up working around the problem but  
> depending on your Seaside application you may not run into the  
> problem at all.
>
>>
>> 2. Do you always just edit one method at a time? Isn't that annoying
>> to have to click around so much? Do you always edit new stuff by
>> working on one method at a time in the debugger/browser?
>>
>
> I , personally,  like the default Squeak browser but there are  
> others. Have you looked at Whisker?
> http://www.mindspring.com/~dway/smalltalk/whisker.html
>
> The "one method at a time" approach makes it easier for me to find  
> what I need with minimal effort.
>
>> 3. I was playing with the counter example in Seaside and it appears
>> that continuation expiration is 600 seconds by default. Is the only
>> way to have user sessions last longer to simply increase the
>> expiration time? How do you do this for a real-world application?
>
> You session will expire after 600 sec of inactivity. Not simply  
> after 600 seconds. You are not this first person to have this  
> misconception. Maybe that config field should have a more  
> descriptive label ?
>
>
>>
>> 4. Do you people ever find forcing everything to be object-
>> oriented to
>> be restrictive? I think sometimes it would be as annoying as not
>> having any OO functionality in the language at all. I also think
>> having tons of 7-line methods is weird and unwieldy.
>>
>
> Again I like it. It was one of the big draws for me. Breaking  
> things into least common denominator bits allows for maxim reuse  
> and in the long term you will end up doing less work and not  
> reimplementing the same ting over and over.
>
> If you need something that feels more like a function you can use  
> the class side of the appropriate class (click on Class in the  
> object. Then you can ...
>
>     result := SomeObject doSomethingWith: anotherSometing
>
> Although in most cases you would most likely be better off doing
>
> result := anotherSometing withSomething: SomeObject.
>
> In either case I would suggest you give the OO nature of Smalltalk  
> a chance.
>
>> 5. Is Squeak good for building things where functional languages do
>> pretty well? Things like compilers and interpreters.
>
> I have not experience with building compilers and interpreters in  
> Smalltalk so someone else might be better suited to answer this  
> questions but I will give it a shot.
>
> I am not sure you would want to build a compiler in Smalltalk/
> Squeak unless you were targeting the Squeak VM. As far as  
> interpreters go I would see no reason why Squeak would do a fine job.
>
>>
>> I think the debugging and browsing tools are totally amazing (they
>> blow away everything else I've used, including SLIME for Common
>> Lisp/Emacs) but the actual editing itself sucks: I miss my Emacs
>> keyboard shortcuts terribly . The reason I'm learning Squeak is
>> because of Seaside, not the goofy "it's for
>> children"/games/multimedia/mouse gunk.
>
> I personally feel the games/multimedia/mouse "gunk" works to Squeak  
> detriment in the business world. I know the immediate visceral  
> reaction to Squeak by my colleges has been "you can't do anything  
> serious with that" and while I think I have proven them wrong the  
> initial hurtle took some time to overcome.
>
> I think Seaside it Squeak's chance to make it into the mainstream  
> but the interface could be a little more professional looking.
>
> Will
>
>>
>> Warren
>> _______________________________________________
>> 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
>

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

Re: Newbie questions about Squeak and Seaside

stephane ducasse
In reply to this post by Warren Henning
> 1. I have an idea for a web application that involves a lot of custom
> text processing logic. Is Squeak an acceptable environment for
> implementing a real full-blown application? How is its performance for
> common tasks compared to, say, Python, Ruby, and Common Lisp? Do I
> need to shell out for VisualWorks or something in order to get
> real-world work done?

Other people can reply but I know several companies making money with  
squeak and
been happy :)

> 2. Do you always just edit one method at a time? Isn't that annoying
> to have to click around so much? Do you always edit new stuff by
> working on one method at a time in the debugger/browser?

you can also use a texteditor. Or try some other browser
this is true that what is boring is that we cannot edit a method do  
not accept it, jump to another oe edit and come ack to the first one.  
You can use what romain robbes did as extension of omnibrowser  
because you can do that with his cool changes.


> 3. I was playing with the counter example in Seaside and it appears
> that continuation expiration is 600 seconds by default. Is the only
> way to have user sessions last longer to simply increase the
> expiration time? How do you do this for a real-world application?
>
> 4. Do you people ever find forcing everything to be object-oriented to
> be restrictive? I think sometimes it would be as annoying as not
> having any OO functionality in the language at all. I also think
> having tons of 7-line methods is weird and unwieldy.

This is fun because I'm teaching the inverse.
A method is a unit of reuse: I can call it and I can extend it.
Look at hook method. If you do not have a hook method and hardcoded  
everything
then you will have to copy and paste in your subclasses sometimes  
just to get a slight modification.
So while at first little methods are annoying to browse in fact  
having small method is a sign of
good quality from a reuse and extension point of view. I hope you get  
it else just ask again.

> 5. Is Squeak good for building things where functional languages do
> pretty well? Things like compilers and interpreters.

Sure. The JIT technology of java was invented for smalltalk. You get  
one interpreter (or the same)
in any texteditor which allow you to do "do it" :)
>
> I think the debugging and browsing tools are totally amazing (they
> blow away everything else I've used, including SLIME for Common
> Lisp/Emacs) but the actual editing itself sucks: I miss my Emacs
> keyboard shortcuts terribly .

there are packages to extend and cusotmize the system (emacs binding  
amd keybinding)
and again everything is there waiting for your customization :)

> The reason I'm learning Squeak is
> because of Seaside, not the goofy "it's for
> children"/games/multimedia/mouse gunk.

Welcome. This is the right list and for squeak 3.9 we focused on  
making Squeak a good
system to develop software (and of course developing games/kids and  
gunky stuff).
We did not go as far as expected but this is the way to go and help  
is welcomed :)


Stef

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

Re: Newbie questions about Squeak and Seaside

timrowledge

On 24-Aug-06, at 10:13 AM, stephane ducasse wrote:


> this is true that what is boring is that we cannot edit a method do  
> not accept it, jump to another oe edit and come ack to the first one.
Err, that's what multiple browsers are for. It costs nothing to have  
plenty of them open or indeed to open another one.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"Bother" said Pooh, and deleted his message base


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

Re: Newbie questions about Squeak and Seaside

stephane ducasse
Screen re not big enough... at least mine.
And having too much browser does not help since after a while I'm  
lost and close them all.

>> this is true that what is boring is that we cannot edit a method  
>> do not accept it, jump to another oe edit and come ack to the  
>> first one.
> Err, that's what multiple browsers are for. It costs nothing to  
> have plenty of them open or indeed to open another one.

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

Re: Newbie questions about Squeak and Seaside

William Harford
In reply to this post by stephane ducasse

On Aug 24, 2006, at 1:05 PM, stephane ducasse wrote:

>>
>> We use Squeak/Seaside in a commercial setting and the speed is  
>> adequate.
>
> Can you tell us more?

Sure.

The page loads are around one second. My goal is to half that by the  
end of the year but there are a lot of hurtles to overcome before I  
can do that.

The slowest part of the application is data access. I currently use a  
OR mapping library that was written in a hurry (by me) and  
unfortunately it suffers from poor design and kludgy code. You are  
welcome to take a look at it but I ask that you don't hold it against  
me :-) http://squeaksource.com/IOSPersistent.html .

I have written another OR library, called REServe, that takes some of  
the concepts I liked from IOSPersistent and implements them in a  
much, much, much nicer fashion. Giving the developer better control  
over how things are stored, cleaner code, the database is abstracted,  
Smalltalk enumeration of the database,  PostgreSQL is supported, and  
much more. I am convinced that the new library has a future and will  
be releasing it to the public in the next couple weeks.

If you are interested in having a look at REServe let me know. The  
main reason for not releasing it yet it incomplete documentation and  
tests.

The current MySQL drivers for Squeak do not use Unix domain sockets.  
I have not looked into Squeak support for Unix sockets on squeak but  
if the MySQL drivers could be modified to access the server via Unix  
sockets that would give our application a speed boost. Any  
volunteers :-)

WeakArray ; What can I say that has not already been said. I fear  
that the implementation details of WeakReferences are currently over  
my head and I would need a bit of education before I attempted making  
finalization faster. I would really like to see this improved because  
I currently have to work around the problem.

I changed SeasidePlatformSupport #weakDictionaryOfSize: to read

    ^ IdentityDictionary new: aNumber

This means that our sessions grow until they are ended. It's not  
ideal but it works.

Instead of triggering the cleanup of expired sessions every n new  
session/requests (I can't remember which) I run a reaper process that  
checks every so often and cleans things up.

We run a document management application and as such we create a lot  
of WADocumentHandlers for thumbnails. WADocumentHandlers where not  
getting cleaned up until we cleared all Seaside caches and for our  
situation that was not reasonable. I changed WADocumentHandler so be  
a sub instance of WAExpiringHandler and have it expire after a couple  
hours (except for css files) and that seamed to keep our image size  
down.

Our image will get up to about 300MB. It runs on a server with 4G of  
ram so for us thats acceptable.

Our usage might not be typical. During the day we have 3-12 people  
working in the application doing data entry as fast as the  
application will go. Touching all parts of the application.

Another thing we did that greatly improved speed pair down some of  
the component creation.
Because components are not cleared after they are no longer  
referenced because of the above changes creating > 12 components on  
each page view was to much. To work around it I ask each model  
#canRender. If #canRender answers true I send the model  
#renderContentOn: html caller: parentComponet. The model can then  
render it's self with out registering a component. While this is not  
ideal it gets the job done.

There are other things but thats all I can remember for now.


> Is the application visible on the web?

The application is not public. If you are in the Toronto, ON or  
Orlando, FL area I will be more than happy to demo the application  
for you.

>
>> At one point I did port my application to VisualWorks and the  
>> speed was much improved but the price we were quoted was  
>> unacceptable ($130,000/year).
>
> Indeed you were making money apparently or the sales were doing  
> something wrong.
> you have also dolphin smalltalk :)

We run on Linux and it's essential to our operations. I don't see  
that changing anytime soon so unfortunately Dolphin is out of the  
question.

The VW sales person quoted me on number of expected users. She offer  
no other quote even after I pressed for it. In fact she seemed almost  
uninterested in our business. The price was 135 and that was that.

Personally I would like to see Squeak become an industrial strength  
platform. There is a lot of work to be done but there is also a  
growing interest. I might be biased but the future looks bright for  
Squeak to me.

Enough of my rambling.
Will

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

Re: Newbie questions about Squeak and Seaside

Philippe Marschall
> I changed SeasidePlatformSupport #weakDictionaryOfSize: to read
>
>     ^ IdentityDictionary new: aNumber

This is recommended for anything but toy examples. We have that on all
our productive applications without any addional reaper process and it
works fine. I don't know why this is not standard. For the small
examples where WeakArrays work it doesn't really matter if some more
memory is used.

The WeakArray implementation simply does not scale and I doubt it will
ever be fixed. Hell I'm even willing to bet money.

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

Re: Newbie questions about Squeak and Seaside

William Harford
In reply to this post by William Harford
I looked at it. And there are a couple things that did not work for me.

It does not support MySQL. Thats a show stopper for me.

It's centered around the idea that the Database comes first where  
REServe uses the approach that the objects come first.

REServe will also do some other things like storing any sub instance  
of REServe in a ivar.

I am not trying to fill in the space the GLORP already fills. I am  
making a different compromise between the object model and the  
relational one and trying to make a relational database as much like  
an Object Oriented database as possible while still keeping some of  
the advantages of a relational database.

Will

On Aug 24, 2006, at 2:48 PM, Todd Blanchard wrote:

> Rather than writing new OR mappers, you might look into GLORP.  The  
> community has been unusually active lately and lots of good  
> improvements have been made.
>
> On Thursday, August 24, 2006, at 11:30AM, William Harford  
> <[hidden email]> wrote:
>
>>
>> On Aug 24, 2006, at 1:05 PM, stephane ducasse wrote:
>>
>>>>
>>>> We use Squeak/Seaside in a commercial setting and the speed is
>>>> adequate.
>>>
>>> Can you tell us more?
>>
>> Sure.
>>
>> The page loads are around one second. My goal is to half that by the
>> end of the year but there are a lot of hurtles to overcome before I
>> can do that.
>>
>> The slowest part of the application is data access. I currently use a
>> OR mapping library that was written in a hurry (by me) and
>> unfortunately it suffers from poor design and kludgy code. You are
>> welcome to take a look at it but I ask that you don't hold it against
>> me :-) http://squeaksource.com/IOSPersistent.html .
>>
>> I have written another OR library, called REServe, that takes some of
>> the concepts I liked from IOSPersistent and implements them in a
>> much, much, much nicer fashion. Giving the developer better control
>> over how things are stored, cleaner code, the database is abstracted,
>> Smalltalk enumeration of the database,  PostgreSQL is supported, and
>> much more. I am convinced that the new library has a future and will
>> be releasing it to the public in the next couple weeks.
>>
>> If you are interested in having a look at REServe let me know. The
>> main reason for not releasing it yet it incomplete documentation and
>> tests.
>>
>> The current MySQL drivers for Squeak do not use Unix domain sockets.
>> I have not looked into Squeak support for Unix sockets on squeak but
>> if the MySQL drivers could be modified to access the server via Unix
>> sockets that would give our application a speed boost. Any
>> volunteers :-)
>>
>> WeakArray ; What can I say that has not already been said. I fear
>> that the implementation details of WeakReferences are currently over
>> my head and I would need a bit of education before I attempted making
>> finalization faster. I would really like to see this improved because
>> I currently have to work around the problem.
>>
>> I changed SeasidePlatformSupport #weakDictionaryOfSize: to read
>>
>>    ^ IdentityDictionary new: aNumber
>>
>> This means that our sessions grow until they are ended. It's not
>> ideal but it works.
>>
>> Instead of triggering the cleanup of expired sessions every n new
>> session/requests (I can't remember which) I run a reaper process that
>> checks every so often and cleans things up.
>>
>> We run a document management application and as such we create a lot
>> of WADocumentHandlers for thumbnails. WADocumentHandlers where not
>> getting cleaned up until we cleared all Seaside caches and for our
>> situation that was not reasonable. I changed WADocumentHandler so be
>> a sub instance of WAExpiringHandler and have it expire after a couple
>> hours (except for css files) and that seamed to keep our image size
>> down.
>>
>> Our image will get up to about 300MB. It runs on a server with 4G of
>> ram so for us thats acceptable.
>>
>> Our usage might not be typical. During the day we have 3-12 people
>> working in the application doing data entry as fast as the
>> application will go. Touching all parts of the application.
>>
>> Another thing we did that greatly improved speed pair down some of
>> the component creation.
>> Because components are not cleared after they are no longer
>> referenced because of the above changes creating > 12 components on
>> each page view was to much. To work around it I ask each model
>> #canRender. If #canRender answers true I send the model
>> #renderContentOn: html caller: parentComponet. The model can then
>> render it's self with out registering a component. While this is not
>> ideal it gets the job done.
>>
>> There are other things but thats all I can remember for now.
>>
>>
>>> Is the application visible on the web?
>>
>> The application is not public. If you are in the Toronto, ON or
>> Orlando, FL area I will be more than happy to demo the application
>> for you.
>>
>>>
>>>> At one point I did port my application to VisualWorks and the
>>>> speed was much improved but the price we were quoted was
>>>> unacceptable ($130,000/year).
>>>
>>> Indeed you were making money apparently or the sales were doing
>>> something wrong.
>>> you have also dolphin smalltalk :)
>>
>> We run on Linux and it's essential to our operations. I don't see
>> that changing anytime soon so unfortunately Dolphin is out of the
>> question.
>>
>> The VW sales person quoted me on number of expected users. She offer
>> no other quote even after I pressed for it. In fact she seemed almost
>> uninterested in our business. The price was 135 and that was that.
>>
>> Personally I would like to see Squeak become an industrial strength
>> platform. There is a lot of work to be done but there is also a
>> growing interest. I might be biased but the future looks bright for
>> Squeak to me.
>>
>> Enough of my rambling.
>> Will
>>
>> _______________________________________________
>> 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: Newbie questions about Squeak and Seaside

Griff-2
In reply to this post by timrowledge
> Is Squeak an acceptable environment for
> implementing a real full-blown application?

At at conference, I asked Avi Bryant how he deploys Seaside
applications (for his clients). He deploys them in Squeak.
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Newbie questions about Squeak and Seaside

Griff-2
In reply to this post by timrowledge
> On 24-Aug-06, at 8:55 AM, Warren Henning wrote:

> 2. Do you always just edit one method at a time? Isn't that annoying
> to have to click around so much? Do you always edit new stuff by
> working on one method at a time in the debugger/browser?

Have you ever tried reading some piece of literature and just found that
it "didn't make sense". I mean, you can read it, but, you just get any
value out of it? This happened for me the first time I tried reading
Plato's book Republic. My brain wasn't ready. I need to more experience
with life before reading it again. Smalltalk is the same way (for me,
at least).

You need experience with lots of different languages and also you need
a good amount of real world experience on billable work.

The first time I looked at Smalltalk I thought the syntax was "crazy",
and didn't look much further. Now, years later, I look back and laugh
at myself.

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

Re: Newbie questions about Squeak and Seaside

William Harford
In reply to this post by Philippe Marschall

On Aug 24, 2006, at 2:51 PM, Philippe Marschall wrote:

>> I changed SeasidePlatformSupport #weakDictionaryOfSize: to read
>>
>>     ^ IdentityDictionary new: aNumber
>
> This is recommended for anything but toy examples. We have that on all
> our productive applications without any addional reaper process and it
> works fine. I don't know why this is not standard. For the small
> examples where WeakArrays work it doesn't really matter if some more
> memory is used.

It's not ideal particularly for our situation where we have up to a  
dozen simultaneous, very active long running, (4 hour) sessions.
Maybe the problem could be worked around by some sort of timed  
incremental weak array finalization.

>
> The WeakArray implementation simply does not scale and I doubt it will
> ever be fixed. Hell I'm even willing to bet money.

I'll take that bet :-)

Will


>
> Philippe
> _______________________________________________
> 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: Newbie questions about Squeak and Seaside

stephane ducasse
In reply to this post by William Harford
And cincom wanted to charge you that much :)
May be there was a misunderstanding :)

> Our usage might not be typical. During the day we have 3-12 people  
> working in the application doing data entry as fast as the  
> application will go. Touching all parts of the application.

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

Re: Newbie questions about Squeak and Seaside

stephane ducasse
In reply to this post by William Harford

On 24 août 06, at 20:30, William Harford wrote:

> Personally I would like to see Squeak become an industrial strength  
> platform. There is a lot of work to be done but there is also a  
> growing interest. I might be biased but the future looks bright for  
> Squeak to me.

Me too.
Now I think that the seasiders are a cool force and they can  
influence positively (they already did it in the past).
But imagine that we would gather some money to hire a good guy ready  
to improve squeak for a not so high rate (difficult but who knows),  
then the seaside community could really identify packages/drivers/
infrastructural aspects that could help in the medium run.

I tried to set up that via the SqF and failed. But this does not mean  
that you (with me if needed) cannot try again. :)

Stef

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

Re: Newbie questions about Squeak and Seaside

Philippe Marschall
In reply to this post by William Harford
> > The WeakArray implementation simply does not scale and I doubt it will
> > ever be fixed. Hell I'm even willing to bet money.
>
> I'll take that bet :-)

Cool, either we get fixed WeakArrays or I win the bet. I can not lose :-)

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

Re: Newbie questions about Squeak and Seaside

stephane ducasse
In reply to this post by Griff-2
>
> Have you ever tried reading some piece of literature and just found  
> that
> it "didn't make sense". I mean, you can read it, but, you just get any
> value out of it? This happened for me the first time I tried  
> reading Plato's book Republic. My brain wasn't ready. I need to  
> more experience with life before reading it again. Smalltalk is the  
> same way (for me, at least).

100% true
>
> You need experience with lots of different languages and also you  
> need a good amount of real world experience on billable work.
>
> The first time I looked at Smalltalk I thought the syntax was  
> "crazy", and didn't look much further. Now, years later, I look  
> back and laugh at myself.

:) This is great quote....


> _______________________________________________
> 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: Newbie questions about Squeak and Seaside

William Harford
In reply to this post by stephane ducasse

On Aug 24, 2006, at 4:43 PM, stephane ducasse wrote:

> And cincom wanted to charge you that much :)
> May be there was a misunderstanding :)

Other people use the application but there impact is minimal . I  
believe the quote was for up to 1000 users.

>
>> Our usage might not be typical. During the day we have 3-12 people  
>> working in the application doing data entry as fast as the  
>> application will go. Touching all parts of the application.
>
> _______________________________________________
> 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
12