Discussion:
Diverse questions
Stéphane Ducasse
2006-01-25 07:49:41 UTC
Permalink
Hi

I'm currently evaluating if we should or not use Tweak for the dev of
an application to help kids to
learn reading. The project is a bit risky since this is the first one
of vincent and we have to have a success there.
I have a bunch of questions:

- Are there any large examples of applications developed in Tweak?
I know that lot of people are developing at impara using Tweak, are
these projects available so that we can learn
from the examples? Is there a squeaksource with tweak projects?

- Besides Sophie and impara are there people developing in Tweak? Is
it too early to try if we do not have a guru at end?

- do you work with the tweak tools? Since I found the navigation
missing for example in the users of...

- I read the code of CPainter and this is a pleasure to rid

- What blue means for the instance variables?

- I could not saved (fileout the code) only method but not class
category or class. Is it normal?


Some small feedback (tweak 1-2 update 590)

- the creation of window or some widgets seems slow, there are some
flashes, is it normal?

- sometimes I got slow redraws of part of the screen, is it normal?

- the paintool does not draw correctly its subcomponents

- I created a "sketmorph" and play with the menu and created a tile
for this object. But I could not destroy it (pressing the x halo morph
did not work)

- I downloaded the latest version and clicked on update: it udpated
but now I do not have the update
option anymore. Is is normal?

I was wondering

why we get
onLayoutChanged
| box |
<on: layoutChanged>
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.

and not

onLayoutChanged
<on: layoutChanged>

| box |
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.


Feedback on the bank account tutorial
============================
"and second, accessor methods (#balance and #balance:) have been
automatically generated."
the browser did not refresh correctly I was seeing them until I
reclicked on the class
Eric Fournier
2006-01-25 16:16:22 UTC
Permalink
Post by Stéphane Ducasse
Hi
I'm currently evaluating if we should or not use Tweak for the dev
of an application to help kids to
learn reading. The project is a bit risky since this is the first
one of vincent and we have to have a success there.
- Are there any large examples of applications developed in Tweak?
I know that lot of people are developing at impara using Tweak, are
these projects available so that we can learn
from the examples? Is there a squeaksource with tweak projects?
There is one now, look at Hermes. I can't claim it's model code ;)
but parts are cool. The basic code was written in about 1.5 months
late in '05 (2 people, one working on the C plugin), then refined
over another for the browser-deliver proof of concept.
Post by Stéphane Ducasse
- Besides Sophie and impara are there people developing in Tweak?
Is it too early to try if we do not have a guru at end?
I have found Bert and Andreas to be responsive to the big problems,
which are few but are significant.
They have written enough code to allow much harvesting (Hermes
liberally rips off the File Dialog code). I got pretty far without
understanding how everything works.
Post by Stéphane Ducasse
- do you work with the tweak tools? Since I found the navigation
missing for example in the users of...
I avoid them. I really, really tried to develop using the Tweak IDE
tools, but this is an unfinished area. The good news is that you
don't have to. All the Morphic tools have been patched to be Tweak-
compliant (so they could build the initial Tweak components, I
suppose)! I found developing in Morphic and running in Tweak to be a
perfectly viable solution. Even the Transcript talks across worlds.
The only real limitation I have found with that model is that what
you run in Tweak must be instantiated and live in the Tweak world.
Post by Stéphane Ducasse
- I read the code of CPainter and this is a pleasure to rid
- What blue means for the instance variables?
The color coding is free form, but it is suggested to color them to
reflect their 'type' (option-click over them to see choices).
Post by Stéphane Ducasse
- I could not saved (fileout the code) only method but not class
category or class. Is it normal?
You tried in Tweak right? Drop to Morphic, it works there (and works
fine on Tweak classes). For this reason (and others) I recommend
avoiding the 'Tweak Project' in favor of the 'Tweak Project Window'
since the latter gives you easy access to both worlds.
Post by Stéphane Ducasse
Some small feedback (tweak 1-2 update 590)
- the creation of window or some widgets seems slow, there are some
flashes, is it normal?
I'm convinced the Tools are double-instantiated. It seems the initial
in-hand copy gets lost, and a new one is instantiated upon drop, or
something else is happening to run the init code twice. I hate the
paradigm anyway...I'm always annoyed when something suddenly appears
glued to my mouse cursor that I didn't put there.
Post by Stéphane Ducasse
- sometimes I got slow redraws of part of the screen, is it normal?
With the Tweak IDE Tools, yes (but Morphic can be slow to redraw,
say, dependent panes in browsers remote to a changed items too). But
with your own application, no. We have found the interface to be
quite responsive. Hermes (IMAP email client) is almost as fast as my
desktop (Apple's Mail.app client). There is an issue with the event
loop scheduling being a little tight in 'Tweak Project' that causes
some os user process hogging (and Morphic events to be totally
suspended). Other than those things, it is pretty well behaved.
Post by Stéphane Ducasse
- the paintool does not draw correctly its subcomponents
- I created a "sketmorph" and play with the menu and created a tile
for this object. But I could not destroy it (pressing the x halo morph
did not work)
Halo destruction works for CPlayers but I seem to remember having
problems getting of of tiles too.
Post by Stéphane Ducasse
- I downloaded the latest version and clicked on update: it udpated
but now I do not have the update
option anymore. Is is normal?
No. The Menus should be invariant. I do remember a bug I saw awhile
back that dropped parts of the menu, but have not seen this lately.
Fix was to throw away the world, but I think there is a 'Restore
World Menu' that does the right thing.
Post by Stéphane Ducasse
I was wondering
why we get
onLayoutChanged
| box |
<on: layoutChanged>
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.
and not
onLayoutChanged
<on: layoutChanged>
| box |
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.
Feedback on the bank account tutorial
============================
"and second, accessor methods (#balance and #balance:) have been
automatically generated."
the browser did not refresh correctly I was seeing them until I
reclicked on the class
Again, You were looking at a Tweak browser? Try the same experiment
in a Morphic browser. To be fair, Morphic has some missed redraws as
well, just fewer of them.

With just a few months in Tweak (well, Squeak too) I'm far from an
expert. I don't have a history using Morphic (or MVC). Smalltalk was
a survey language that was interesting from my school days and some
later independent study. So, I'm a newby. Sort of.

But the first time I changed a value in an object buried deep in a
collection, and had the visual representation of that change show up
in the UI widget the right way, and quickly, and after I had done
absolutely nothing to make it so (other than integrate the widget
correctly), I was hooked.

Hope this helps.

Eric Fournier
Java and Web Services
University of Minnesota Office of Information Technology
190 Shepherd Labs

emf-***@public.gmane.org
Bob Courchaine
2006-01-25 16:36:38 UTC
Permalink
There is one now, look at Hermes. I can't claim it's model code ;) but
parts are cool. The basic code was written in about 1.5 months late in
'05 (2 people, one working on the C plugin), then refined over another
for the browser-deliver proof of concept.
Where can we find Hermes, Eric?

Bob
Eric Fournier
2006-01-25 16:54:14 UTC
Permalink
Look for Hermes in SqueakSource or SqueakMap.

--Eric
Post by Bob Courchaine
Post by Eric Fournier
There is one now, look at Hermes. I can't claim it's model
code ;) but
parts are cool. The basic code was written in about 1.5 months
late in
'05 (2 people, one working on the C plugin), then refined over another
for the browser-deliver proof of concept.
Where can we find Hermes, Eric?
Bob
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Stéphane Ducasse
2006-01-25 17:32:22 UTC
Permalink
Tx for the answers
Post by Eric Fournier
Post by Stéphane Ducasse
- do you work with the tweak tools? Since I found the navigation
missing for example in the users of...
I avoid them. I really, really tried to develop using the Tweak IDE
tools, but this is an unfinished area. The good news is that you
don't have to. All the Morphic tools have been patched to be Tweak-
compliant (so they could build the initial Tweak components, I
suppose)! I found developing in Morphic and running in Tweak to be
a perfectly viable solution. Even the Transcript talks across
worlds. The only real limitation I have found with that model is
that what you run in Tweak must be instantiated and live in the
Tweak world.
Ok I prefer that.
Post by Eric Fournier
Post by Stéphane Ducasse
- I read the code of CPainter and this is a pleasure to rid
- What blue means for the instance variables?
The color coding is free form, but it is suggested to color them to
reflect their 'type' (option-click over them to see choices).
I read the bank account but there is italic, bold, normal but not
blue hence my question
Post by Eric Fournier
Post by Stéphane Ducasse
- I could not saved (fileout the code) only method but not class
category or class. Is it normal?
You tried in Tweak right?
Sure :)
Post by Eric Fournier
Drop to Morphic, it works there (and works fine on Tweak classes).
For this reason (and others) I recommend avoiding the 'Tweak
Project' in favor of the 'Tweak Project Window' since the latter
gives you easy access to both worlds.
Post by Stéphane Ducasse
Some small feedback (tweak 1-2 update 590)
- the creation of window or some widgets seems slow, there are
some flashes, is it normal?
I'm convinced the Tools are double-instantiated. It seems the
initial in-hand copy gets lost, and a new one is instantiated upon
drop, or something else is happening to run the init code twice. I
hate the paradigm anyway...I'm always annoyed when something
suddenly appears glued to my mouse cursor that I didn't put there.
Post by Stéphane Ducasse
- sometimes I got slow redraws of part of the screen, is it normal?
With the Tweak IDE Tools, yes (but Morphic can be slow to redraw,
say, dependent panes in browsers remote to a changed items too).
But with your own application, no. We have found the interface to
be quite responsive. Hermes (IMAP email client) is almost as fast
as my desktop (Apple's Mail.app client). There is an issue with the
event loop scheduling being a little tight in 'Tweak Project' that
causes some os user process hogging (and Morphic events to be
totally suspended). Other than those things, it is pretty well
behaved.
OK
Post by Eric Fournier
Post by Stéphane Ducasse
- the paintool does not draw correctly its subcomponents
- I created a "sketmorph" and play with the menu and created a
tile for this object. But I could not destroy it (pressing the x
halo morph
did not work)
- I downloaded the latest version and clicked on update: it
udpated but now I do not have the update
option anymore. Is is normal?
No. The Menus should be invariant. I do remember a bug I saw awhile
back that dropped parts of the menu, but have not seen this lately.
Fix was to throw away the world, but I think there is a 'Restore
World Menu' that does the right thing.
?
Post by Eric Fournier
Post by Stéphane Ducasse
I was wondering
why we get
onLayoutChanged
| box |
<on: layoutChanged>
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.
and not
onLayoutChanged
<on: layoutChanged>
| box |
box := self localBounds insetBy: borderWidth.
board bounds: box.
palette topRight: box topRight.
Feedback on the bank account tutorial
============================
"and second, accessor methods (#balance and #balance:) have been
automatically generated."
the browser did not refresh correctly I was seeing them until I
reclicked on the class
Again, You were looking at a Tweak browser? Try the same experiment
in a Morphic browser. To be fair, Morphic has some missed redraws
as well, just fewer of them.
With just a few months in Tweak (well, Squeak too) I'm far from an
expert. I don't have a history using Morphic (or MVC). Smalltalk
was a survey language that was interesting from my school days and
some later independent study. So, I'm a newby. Sort of.
But the first time I changed a value in an object buried deep in a
collection, and had the visual representation of that change show
up in the UI widget the right way, and quickly, and after I had
done absolutely nothing to make it so (other than integrate the
widget correctly), I was hooked.
I know I like the idea of active value.
I just do not like the XML in the class def when we could have
smalltalk code but this is easily fixable.
Post by Eric Fournier
Hope this helps.
Thanks
Post by Eric Fournier
Eric Fournier
Java and Web Services
:)
Post by Eric Fournier
University of Minnesota Office of Information Technology
190 Shepherd Labs
Eric Fournier
2006-01-25 18:01:53 UTC
Permalink
Post by Stéphane Ducasse
Tx for the answers
np, mp.
Post by Stéphane Ducasse
Post by Eric Fournier
Post by Stéphane Ducasse
now I do not have the update
option anymore. Is is normal?
No. The Menus should be invariant. I do remember a bug I saw
awhile back that dropped parts of the menu, but have not seen this
lately. Fix was to throw away the world, but I think there is a
'Restore World Menu' that does the right thing.
?
Look at the Tweak Debug menu, select 'Restore World Menu'. That re-
initializes the menu bar and can recover lost menu items. I have not
had to use it for a long time. The menu registration scheme is
similar to Morphic.
Post by Stéphane Ducasse
I know I like the idea of active value.
I just do not like the XML in the class def when we could have
smalltalk code but this is easily fixable.
Sigh. A sign of the times ;)
Post by Stéphane Ducasse
Post by Eric Fournier
Java and Web Services
:)
Yeah, looks funny here.

Eric Fournier
University Technology Development Center
University of Minnesota Office of Information Technology
190 Shepherd Labs

emf-***@public.gmane.org

Bert Freudenberg
2006-01-25 17:38:54 UTC
Permalink
Post by Stéphane Ducasse
I know that lot of people are developing at impara using Tweak, are
these projects available so that we can learn from the examples?
The Etoys work is public, Sophie is going to be open-source. There
are some hacks at

http://source.impara.de/Stuff.html

You might check out the WorldNavigator there which is pretty handy.
Post by Stéphane Ducasse
Is there a squeaksource with tweak projects?
Not that I know of. There are some student projects with Tweak UI
from the University of Magdeburg, but they would have to announce
that themselves.
Post by Stéphane Ducasse
- do you work with the tweak tools? Since I found the navigation
missing for example in the users of...
We hadn't too many resources to spend on them after Marcus finished.
We hope ToolBuilder will come to the rescue here. Until then, we
develop with the Morphic tools.
Post by Stéphane Ducasse
- I read the code of CPainter and this is a pleasure to rid
Thanks :) IIRC that was one of the first things I did with TCAR.
Post by Stéphane Ducasse
Some small feedback (tweak 1-2 update 590)
- the creation of window or some widgets seems slow, there are some
flashes, is it normal?
That's a bug, related to how projects are drawn.
Post by Stéphane Ducasse
onLayoutChanged
| box |
<on: layoutChanged>
...
onLayoutChanged
<on: layoutChanged>
| box |
...
Property notation is just an extension of the original Smalltalk
primitive notation in angled brackets. I guess you would have to ask
Dan why it's this way around, I'd prefer the latter syntax, too :)

- Bert -
Loading...