[squeak-dev] New version BabyIDE + report

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

[squeak-dev] New version BabyIDE + report

Trygve
I just posted a new version of the BabyIDE report and Squeak image.
I post an image rather then a Montizello loadable file because it is just a demo.
I am working on a small application all done in BabyIDE.
I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is completed.

Enjoy
--Trygve

--
--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] New version BabyIDE + report

Karl Ramberg
Trygve Reenskaug wrote:
> I just posted a new version of the BabyIDE report and Squeak image.
> I post an image rather then a Montizello loadable file because it is
> just a demo.
> I am working on a small application all done in BabyIDE.
> I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is
> completed.

I looked at the IDE and tried to find out how the different shapes got
selected in a sequence, but I got lost.
Are the roles bound before the animation starts or how is it set up ?

Karl

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] New version BabyIDE + report

Trygve
Hi Karl,
Every role has a similarly named method in the context class. This method returns the object that shall be bound to the role. E.g.:

¤   Shapes4ArrowsCtx >>Shape1
¤       ^data anyShape

The different shapes (and arrows) are found in a runtime dictionary that that is filled when the context class is instantiated:

¤   Shapes4ArrowsCtx >>bindRolesToObjects
¤       | messName |
¤       self class roleNames
¤           do: [:rNam |
¤               messName := rNam asString asSymbol.
¤               roleMap
¤                   at: messName
¤                   put: (self
¤                           perform: messName
¤                           ifNotUnderstood: [])].
¤       ^ roleMap

 The idea is that a programmer need to understand this, but should not need to understand the details of how it is done. (To see the details, look at these methods:
    Shapes4Env>>startArrowAnimation
    Shapes4ArrowsCtx  class>>executeInContext:
    Shapes4ArrowsCtx >>on:env:
    Shapes4ArrowsCtx >>bindRolesToObjects

I hope it answers your question.

The above is the current implementation.  I believe there is much room for simplification that should emerge when I write a tutorial. (Much better to rewrite the code than to try its complexities).

Chers
--Trygve


On 14.09.2008 16:25, Karl Ramberg wrote:
Trygve Reenskaug wrote:
I just posted a new version of the BabyIDE report and Squeak image.
I post an image rather then a Montizello loadable file because it is just a demo.
I am working on a small application all done in BabyIDE.
I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is completed.

I looked at the IDE and tried to find out how the different shapes got selected in a sequence, but I got lost.
Are the roles bound before the animation starts or how is it set up ?

Karl



--
--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] New version BabyIDE + report

Karl Ramberg
I found much of what you describe after some deeper exploration. This
new way of writing and presenting takes a little time getting used to
:-)

I like the way you can add in and out super classes in the browser.

Karl


On 9/14/08, Trygve Reenskaug <[hidden email]> wrote:

> Hi Karl,
> Every role has a similarly named method in the context class. This
> method returns the object that shall be bound to the role. E.g.:
>
> ¤   Shapes4ArrowsCtx >>Shape1
> ¤       ^data anyShape
>
> The different shapes (and arrows) are found in a runtime dictionary that
> that is filled when the context class is instantiated:
>
> ¤   Shapes4ArrowsCtx >>bindRolesToObjects
> ¤       | messName |
> ¤       self class roleNames
> ¤           do: [:rNam |
> ¤               messName := rNam asString asSymbol.
> ¤               roleMap
> ¤                   at: messName
> ¤                   put: (self
> ¤                           perform: messName
> ¤                           ifNotUnderstood: [])].
> ¤       ^ roleMap
>
>  The idea is that a programmer need to understand this, but should not
> need to understand the details of how it is done. (To see the details,
> look at these methods:
>     Shapes4Env>>startArrowAnimation
>     Shapes4ArrowsCtx  class>>executeInContext:
>     Shapes4ArrowsCtx >>on:env:
>     Shapes4ArrowsCtx >>bindRolesToObjects
>
> I hope it answers your question.
>
> The above is the current implementation.  I believe there is much room
> for simplification that should emerge when I write a tutorial. (Much
> better to rewrite the code than to try its complexities).
>
> Chers
> --Trygve
>
>
> On 14.09.2008 16:25, Karl Ramberg wrote:
>> Trygve Reenskaug wrote:
>>> I just posted a new version of the BabyIDE report and Squeak image.
>>> I post an image rather then a Montizello loadable file because it is
>>> just a demo.
>>> I am working on a small application all done in BabyIDE.
>>> I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is
>>> completed.
>>
>> I looked at the IDE and tried to find out how the different shapes got
>> selected in a sequence, but I got lost.
>> Are the roles bound before the animation starts or how is it set up ?
>>
>> Karl
>>
>>
>
> --
>
> Trygve Reenskaug       mailto: [hidden email]
>
> Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver
>
> N-0378 Oslo               Tel: (+47) 22 49 57 27
>
> Norway
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] New version BabyIDE + report

Trygve
Karl,
Do you feel like a guinea pig? You should, if you are trying to read and even write programs in BabyIDE. The programmer's mental model of what is a DCI-compliant program is still evolving. It will be very useful if you continue informing me about potential stumbling blocks so that I can iron them out.

All the best
--Trygve

On 15.09.2008 22:52, karl ramberg wrote:
I found much of what you describe after some deeper exploration. This
new way of writing and presenting takes a little time getting used to
:-)

I like the way you can add in and out super classes in the browser.

Karl


On 9/14/08, Trygve Reenskaug [hidden email] wrote:
  
Hi Karl,
Every role has a similarly named method in the context class. This
method returns the object that shall be bound to the role. E.g.:

¤   Shapes4ArrowsCtx >>Shape1
¤       ^data anyShape

The different shapes (and arrows) are found in a runtime dictionary that
that is filled when the context class is instantiated:

¤   Shapes4ArrowsCtx >>bindRolesToObjects
¤       | messName |
¤       self class roleNames
¤           do: [:rNam |
¤               messName := rNam asString asSymbol.
¤               roleMap
¤                   at: messName
¤                   put: (self
¤                           perform: messName
¤                           ifNotUnderstood: [])].
¤       ^ roleMap

 The idea is that a programmer need to understand this, but should not
need to understand the details of how it is done. (To see the details,
look at these methods:
    Shapes4Env>>startArrowAnimation
    Shapes4ArrowsCtx  class>>executeInContext:
    Shapes4ArrowsCtx >>on:env:
    Shapes4ArrowsCtx >>bindRolesToObjects

I hope it answers your question.

The above is the current implementation.  I believe there is much room
for simplification that should emerge when I write a tutorial. (Much
better to rewrite the code than to try its complexities).

Chers
--Trygve


On 14.09.2008 16:25, Karl Ramberg wrote:
    
Trygve Reenskaug wrote:
      
I just posted a new version of the BabyIDE report and Squeak image.
I post an image rather then a Montizello loadable file because it is
just a demo.
I am working on a small application all done in BabyIDE.
I'll post a Monticello file (BabyIDE.alpha.0)as soon as this work is
completed.
        
I looked at the IDE and tried to find out how the different shapes got
selected in a sequence, but I got lost.
Are the roles bound before the animation starts or how is it set up ?

Karl


      
--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway


    


  

--
--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway