New updates: Reference Finder by Andres Valloud

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

Re: Direct interfaces and HyperCard (Was Re: Grow Button [WAS Re: New updates: Reference Finder..])

Juan Vuletich-4
On 12/31/2013 7:23 PM, Casey Ransberger wrote:

> If only Self was popular. Direct user interface construction is one of my favorite ideas. Sadly no one in the Smalltalk community seems to have thought all that hard about how to do it. Every time I bring up the Self object transporter, it seems like there's a rack of people saying "don't." It works in Self?
>
> I've been looking very seriously at Ted Kaehler's DynaBook Junior spec and thinking about doing an implementation in Cuis, which is at least a start. A HyperCard analogue.
>
> Of course there's a mostly unloved implementation sitting in Squeak thanks to Ted K. But it won't work in Cuis. We need a new implementation.
>
> It's just it seems like no one wants even that.
>
> Damned fools,
>
> --C

I would really like to have such a thing in Cuis. But I think we need to
do a few things before that. We need a good set of morphs, including
Beziers and other curves. We need zooming and rotating. I guess we also
need a way end users to specify behavior (stepping), or at least
constraints (and a constraints system).

And we need something Dan Ingalls talked about maybe fifteen years ago:
Some way to cross the bridge between morphs made with code and morphs
made with manual construction (menus, halos, etc). This would make
direct construction a useful way to build Smalltalk applications.
Something like WindowBuilder, but for general morphs.

We would also need the kind of dynamic state (properties) that Ken is
suggesting in this thread. But that's not a problem, we have Ken with us!

I think a good intermediate objective could be to build a DynaBook Jr.
for smalltalkers, meaning that it is ok to require some Smalltalk code
sometimes. And that environment (let's call it Cuis) could be a good
base to build an end user construction application.

Let's do it, one step at a time! Change will not happen instantly. So,
please keep discussing, and making it real with code.

Cheers,
Juan Vuletich

>> On Dec 31, 2013, at 2:08 PM, Ken Dickey<[hidden email]>  wrote:
>>
>> On Tue, 31 Dec 2013 08:40:54 -0800
>> Casey Ransberger<[hidden email]>  wrote:
>>
>>> #toggleFullBounds sounds great. Either that or #thanksKen.
>> Shorter than #youAreWelcomeCasey  ;^)
>>
>>> Interesting that your solution uses the properties mechanism. I've never
>>> touched that. I'd have probably given SystemWindow a couple of instance
>>> variables to cache location and extent.
>> My model is that Classes use messages/methods/iVars
>> but individual instances use events/handlers/properties.
>>
>> In particular, part of my list of past sins includes writing code in and for  MultiMedia authoring environments.  MM authoring -- particularly for media centric people who are not programmers -- tends to be more prototype based than class based.
>>
>> One starts with a bunch of media pallets and explorers, splats media on the stage, adds behaviors, ...  Authoring tends to me more graphical by nature. [See mTropolis UI examples below].
>>
>> One of the things I am thinking about is pushing Morphic toward a more direct/graphic style of authoring.
>>
>> One change to think about is making some tests more instance based.
>>
>> Why have an entire class of instances respond to some message when only a few instances need to?  An extra subclass with just a few methods.
>>
>> Simple (possibly useless) example.
>>
>> We could change some methods to look for properties.
>>
>> Say
>>
>> Morph>>allowsSubmorphDrag
>>   ^ self hasProperty: #allowsSubMorphDrag
>>
>> So a class can still short-circuit this by
>>
>> SomeSubclassOfMorph>>>>allowsSubmorphDrag
>>   ^true
>>
>> With no bad effects -- all the current code still works!  ;^)
>>
>> But now one can have various instances support dragging submorphs without having to create a special subclass just to do this.  Just dynamically add (or remove!) a property.
>>
>> Anyway, this is the kind of stuff I am playing with in the background.
>>
>> Cheers,
>> -KenD
>> <Logic+Extras-Palettes.png>
>> <Logic+Extras-Palettes.png>
>> <MouseMessage-When.png>
>> <Messenger-dialog.png>
>> <ImageEffect-dialog.png>
>> <Behavior-score3.png>
>> _______________________________________________
>> Cuis mailing list
>> [hidden email]
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
> _______________________________________________
> Cuis mailing list
> [hidden email]
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Direct interfaces and HyperCard (Was Re: Grow Button [WAS Re: New updates: Reference Finder..])

Casey Ransberger-2
In reply to this post by KenDickey
That last line was supposed to read:

Damned fools. :P

It comes off as a lot more negative than I meant it without the emoticon! (Especially since I was griping at the time.) I haven't met any *real* fools in the Smalltalk community. Sorry if this rant offended anyone.


On Tue, Dec 31, 2013 at 2:34 PM, Ken Dickey <[hidden email]> wrote:
On Tue, 31 Dec 2013 14:23:07 -0800
Casey Ransberger <[hidden email]> wrote:

> Damned fools,

Hey, I'm a damned fool myself.

But I only have to please myself.

And I have Cuis!  Heh, heh!  ;^)

-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Morph instance specific mouse and drag methods

KenDickey
In reply to this post by Juan Vuletich-4
Hi Juan,

Not sure you want this yet, but no ill effects and seems much simpler than the eToys handler code.

I am posting to the group in case anyone wants to experiment with instance specific behaviors (done with "handlers" in Squeak).

Try loading the change set then drag a morph from the World > New Morph.. menu

Open an inspector on the morph (Command-click menu: debug > inspect morph) and add a mouse click behavior:
"==================="
self setProperty: #handlesMouseDown: toValue: #true.
self setProperty: #mouseButton1Up:localPosition:
        toValue: [ :evt :posn | self color: self color negated ].
"==================="

Then click on the morph.

Another fun thing to try is opening a BorderedRectMorph and setting property #allowsSubmorphDrag.  Embed a submorph and drag it out.

Cheap tricks, but then everybody likes a bargan.  ;^)

Cheers,
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org

1911-CuisMediaAuthor-KenD-2013Dec31-14h23m-KenD.1.cs.st (8K) Download Attachment
MorphProps.png (232K) Download Attachment
-KenD
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

KenDickey
On Sun, 12 Jan 2014 21:33:21 -0800
Ken Dickey <[hidden email]> wrote:


> Cheap tricks, but then everybody likes a bargan.  ;^)

Sorry,  Should be *bargain*.

-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
-KenD
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

Juan Vuletich-4
In reply to this post by KenDickey
Hi Ken,

On 1/13/2014 2:33 AM, Ken Dickey wrote:

> Hi Juan,
>
> Not sure you want this yet, but no ill effects and seems much simpler than the eToys handler code.
>
> I am posting to the group in case anyone wants to experiment with instance specific behaviors (done with "handlers" in Squeak).
>
> Try loading the change set then drag a morph from the World>  New Morph.. menu
>
> Open an inspector on the morph (Command-click menu: debug>  inspect morph) and add a mouse click behavior:
> "==================="
> self setProperty: #handlesMouseDown: toValue: #true.
> self setProperty: #mouseButton1Up:localPosition:
> toValue: [ :evt :posn | self color: self color negated ].
> "==================="
>
> Then click on the morph.
>
> Another fun thing to try is opening a BorderedRectMorph and setting property #allowsSubmorphDrag.  Embed a submorph and drag it out.
>
> Cheap tricks, but then everybody likes a bargan.  ;^)
>
> Cheers,
> -KenD

It is wonderful to see that Cuis enables thinking about and doing these
kinds of things. Expanding the paradigm with clean and nice code!

I really like this kind of stuff. It would be great for Cuis to support
End User experiments, and Instance Specific Behavior and State.

Maybe a hierarchy like this?:

Object
     ActiveModel
         InstanceSpecificBehaviorObject (#findABetterName)
             Morph

This would enable the instance specific stuff to be usable not only by
morphs. It would also mean using the standard event system for Morphs.
Not sure of the consequences, but sonds reasonable.

Does it make sense to allow CompiledMethods and not only blocks?

I'm not sure how, but I think the event system (#when:send:to: and
friends) could be related to this. Maybe by using events we would avoid
the need to add a special method that queries and evaluates the property.

Please keep experimenting, and telling us about it!

Cheers,
Juan Vuletich

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

KenDickey
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
-KenD
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

garduino
Very interesting. At leat to me that I'm not a Morphic expert, to learn and understand more stuff about Morphic.

Thanks!


2014/1/15 Ken Dickey <[hidden email]>
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

nacho
German don't feel alone there...I would love to know a lot more about morphic but documentation is not easy to find. At least to me...
best
Nacho

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:01 PM, Germán Arduino <[hidden email]> wrote:
Very interesting. At leat to me that I'm not a Morphic expert, to learn and understand more stuff about Morphic.

Thanks!


2014/1/15 Ken Dickey <[hidden email]>
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Nacho Smalltalker apprentice. Buenos Aires, Argentina.
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

garduino
What is such "documentation" stuff? :)


2014/1/16 Ignacio Matías Sniechowski <[hidden email]>
German don't feel alone there...I would love to know a lot more about morphic but documentation is not easy to find. At least to me...
best
Nacho

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:01 PM, Germán Arduino <[hidden email]> wrote:
Very interesting. At leat to me that I'm not a Morphic expert, to learn and understand more stuff about Morphic.

Thanks!


2014/1/15 Ken Dickey <[hidden email]>
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org




--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

KenDickey
In reply to this post by nacho
On Thu, 16 Jan 2014 17:05:33 +0000
Ignacio Matías Sniechowski <[hidden email]> wrote:

> German don't feel alone there...I would love to know a lot more about
> morphic but documentation is not easy to find. At least to me...

Here is a small place to start from:

  http://wiki.squeak.org/squeak/30

-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
-KenD
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

nacho
In reply to this post by garduino

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:09 PM, Germán Arduino <[hidden email]> wrote:
What is such "documentation" stuff? :)


2014/1/16 Ignacio Matías Sniechowski <[hidden email]>
German don't feel alone there...I would love to know a lot more about morphic but documentation is not easy to find. At least to me...
best
Nacho

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:01 PM, Germán Arduino <[hidden email]> wrote:
Very interesting. At leat to me that I'm not a Morphic expert, to learn and understand more stuff about Morphic.

Thanks!


2014/1/15 Ken Dickey <[hidden email]>
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org




--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Nacho Smalltalker apprentice. Buenos Aires, Argentina.
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

garduino
hehe I know.....only joking in the sense that most of documentation seems to be outdated.


2014/1/16 Ignacio Matías Sniechowski <[hidden email]>

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:09 PM, Germán Arduino <[hidden email]> wrote:
What is such "documentation" stuff? :)


2014/1/16 Ignacio Matías Sniechowski <[hidden email]>
German don't feel alone there...I would love to know a lot more about morphic but documentation is not easy to find. At least to me...
best
Nacho

Lic. Ignacio Sniechowski, MBA







On Thu, Jan 16, 2014 at 5:01 PM, Germán Arduino <[hidden email]> wrote:
Very interesting. At leat to me that I'm not a Morphic expert, to learn and understand more stuff about Morphic.

Thanks!


2014/1/15 Ken Dickey <[hidden email]>
Some reasons for using properties for instance specific behavior:
  - Morphs already have properties (no new classes)
  - UI operations can be a bit slow but are fast relative to humans
  - No change to VM dispatch mechanics
  - Current usage does not change hardware event -> message dispatch mechanics

Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.

One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.

More playtime as I get a chance..
-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org




--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org




--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

garduino
In reply to this post by KenDickey
Thanks Ken. Re-reading such page I remembered Prefab, that I saw long time ago...unfortunately the link don't work now.


2014/1/16 Ken Dickey <[hidden email]>
On Thu, 16 Jan 2014 17:05:33 +0000
Ignacio Matías Sniechowski <[hidden email]> wrote:

> German don't feel alone there...I would love to know a lot more about
> morphic but documentation is not easy to find. At least to me...

Here is a small place to start from:

  http://wiki.squeak.org/squeak/30

-KenD

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Morph instance specific mouse and drag methods

Juan Vuletich-4
In reply to this post by KenDickey
All great reasons!

Keep us posted!

Cheers,
Juan Vuletich

On 1/15/2014 9:44 PM, Ken Dickey wrote:

> Some reasons for using properties for instance specific behavior:
>    - Morphs already have properties (no new classes)
>    - UI operations can be a bit slow but are fast relative to humans
>    - No change to VM dispatch mechanics
>    - Current usage does not change hardware event ->  message dispatch mechanics
>
> Much of what I am interested in relates to direct authoring via drag-n-drop pallets and fill-in-the-blank or simple method extensions.  I am not sure where I would use instance specific behavior outside of the UI.
>
> One thing to think about is that common patterns can use "threaded code" which is very efficient.  For a specialized common cases the Scratch solution is very attractive alternative to/as a mini-language.
>
> More playtime as I get a chance..
> -KenD
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
12