Image setup question

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

Image setup question

Amos-15
Hi all,

Although I've been developing in (VisualWorks) Smalltalk for a number
of years, I'm an absolute newbie when it comes to Squeak. I downloaded
and played around with Squeak 3.9 recently (because I was curious
about Seaside) and was surprised to see how far Squeak has come since
I last had a look a few years ago.

Anyway, I've read a few helpfiles/wikis/tutorials/blogs/etc., saw
several images available for download with several different browsers
and tools loaded, and read about a few more that I haven't been able
to find/load (OmniBrowser, Cees' RefractoringBrowser, Ramon's
SentorsaBrowser). So I was wondering what you guys would recommend as
a base image and if you could point me to the right place for finding
out how best to go about loading tools. (I've downloaded a few
packages with the universe package browser, which was fairly
intuitive, but couldn't find several things I was after - should I use
that MonticelloBrowser instead? What's the difference?)

Playing around with a few things, I missed the option to "dive into"
an element from an Inspector and then "pop" back out to the previously
inspected object(s), so I modified the Inspector class to add those
options. Is something like that useful enough to submit the code
somewhere for others to load? Or am I re-inventing the wheel and
someone's already done that?

Any help or pointers where to read up on this stuff would be greatly
appreciated.

Cheers,

Amos

Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Herbert König
Hello Amos,


A> Anyway, I've read a few helpfiles/wikis/tutorials/blogs/etc., saw
A> several images available for download with several different browsers
A> and tools loaded, and read about a few more that I haven't been able
A> to find/load (OmniBrowser, Cees' RefractoringBrowser, Ramon's
A> SentorsaBrowser). So I was wondering what you guys would recommend as

For looking into Seaside I'd suggest Damien's Web image, for
development his dev images, see http://damien.cassou.free.fr/

Cees RB is a RB which only dispays the categories you select. It's my
preferred one but I guess omnibrowser can do that too. You'll find the
latter in the dev images. Drop me an email if you can't find it. I
think it hasn't been updated for some time.

A> a base image and if you could point me to the right place for finding
A> out how best to go about loading tools. (I've downloaded a few
A> packages with the universe package browser, which was fairly
A> intuitive, but couldn't find several things I was after - should I use
A> that MonticelloBrowser instead? What's the difference?)

SqueakMap is a place to browse, can't tell what's the current state
but downloading things via the Web and installing it via the FileList
is an option.

A> Playing around with a few things, I missed the option to "dive into"
A> an element from an Inspector and then "pop" back out to the previously
A> inspected object(s), so I modified the Inspector class to add those

Try the explorer instead of the inspector. Be careful, it doesn't auto
update while the inspector does.

A> options. Is something like that useful enough to submit the code
A> somewhere for others to load? Or am I re-inventing the wheel and
A> someone's already done that?

You can decide after trying the explorer (anyOldObject explore).

I myself am on 3.8 so take everything I said with a grain of salt.

Cheers

Herbert                            mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Herbert König
Hello Amos,


HK> Cees RB is a RB which only dispays the categories you select. It's my
HK> preferred one but I guess omnibrowser can do that too. You'll find the
HK> latter in the dev images. Drop me an email if you can't find it. I

"it" refers to Cees RB enhancement. Proof reading shouldn't be an option :-))

HK>
HK> ... so take everything I said with a grain of salt.
See, I said so :-))


Cheers,

Herbert                            mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Damien Cassou-3
In reply to this post by Amos-15
Hi Amos,

2007/12/13, Amos <[hidden email]>:

> Although I've been developing in (VisualWorks) Smalltalk for a number
> of years, I'm an absolute newbie when it comes to Squeak. I downloaded
> and played around with Squeak 3.9 recently (because I was curious
> about Seaside) and was surprised to see how far Squeak has come since
> I last had a look a few years ago.
>
> Anyway, I've read a few helpfiles/wikis/tutorials/blogs/etc., saw
> several images available for download with several different browsers
> and tools loaded, and read about a few more that I haven't been able
> to find/load (OmniBrowser, Cees' RefractoringBrowser, Ramon's
> SentorsaBrowser). So I was wondering what you guys would recommend as
> a base image


I would advise you to use a squeak-dev or squeak-web image. See
http://damien.cassou.free.fr/squeak-dev.html for more information.
Feel free to ask any question about these images.


> and if you could point me to the right place for finding
> out how best to go about loading tools. (I've downloaded a few
> packages with the universe package browser, which was fairly
> intuitive, but couldn't find several things I was after - should I use
> that MonticelloBrowser instead? What's the difference?)


I can see 4 ways of loading things in your image:

- Universe: it's a set of packages known to work together. Every
package you find in the universe browser should be loadable into the
image. If it's not the case, please report the bug.
- Monticello: it's a kind of Store. There, you will find latest
versions of tools, not always stable.
- SqueakMap: it contains all the packages that have been released for
Squeak since SqueakMap creation. Most of the packages won't load, but
you can find things that can't be found anywhere else.
- Drag&Drop: if you download a file (either .mcz, .st, .sar, .cs...),
you can always drag & drop it into the squeak desktop and Squeak will
ask you what to do (load, explore...).


> Playing around with a few things, I missed the option to "dive into"
> an element from an Inspector and then "pop" back out to the previously
> inspected object(s)


you can always press ALT+i (or CTRL+i) on an element to inspect it.
So, you can "dive into" a field by just pressing this shortcut or
right clicking and selecting "inspect it".


> , so I modified the Inspector class to add those
> options. Is something like that useful enough to submit the code
> somewhere for others to load? Or am I re-inventing the wheel and
> someone's already done that?


It can be useful. What have you done exactly?


> Any help or pointers where to read up on this stuff would be greatly
> appreciated.

Any feedback on your user experience would be greatly appreciated too :-).

--
Damien Cassou

Reply | Threaded
Open this post in threaded view
|

RE: Image setup question

Ramon Leon-5
In reply to this post by Amos-15
> more that I haven't been able to find/load (OmniBrowser,
> Cees' RefractoringBrowser, Ramon's SentorsaBrowser). So I was

No no, I don't have a browser, that's just a subclass of Cees' browser that
added some trivial Magritte code generation to create accessors.  I don't
use it anymore, I use OmniBrowser now.  You should start with Damien's dev
image and load it up to suit you, or my image which is his image loaded to
suit me.

Ramon Leon


Reply | Threaded
Open this post in threaded view
|

Who is creating short-lived Symbol? [was Re: Image setup question]

Nicolas Cellier-3
In reply to this post by Herbert König
A propos, auto-updating inspector are not always working that well...
Try to inspect a WeakSet like:

        (Symbol classPool at: #SymbolTable) inspect.

Scroll a little, the inspector flashes once or more and you end up with
a debugger saying 'Error: subscript is out of bounds: 687'.
Well that is for sure a bug.

I'am pretty sure some Symbol are created on the fly then reclaimed, and
cause this error. But that makes me wonder why?
Is it really a good idea to create short lived Symbols?
Or is it another bug?
There are too many senders of asSymbol for me to understand...
Anyone has a clue?

Nicolas

Herbert König a écrit :

>
> A> Playing around with a few things, I missed the option to "dive into"
> A> an element from an Inspector and then "pop" back out to the previously
> A> inspected object(s), so I modified the Inspector class to add those
>
> Try the explorer instead of the inspector. Be careful, it doesn't auto
> update while the inspector does.
>
> A> options. Is something like that useful enough to submit the code
> A> somewhere for others to load? Or am I re-inventing the wheel and
> A> someone's already done that?
>
> You can decide after trying the explorer (anyOldObject explore).
>
> I myself am on 3.8 so take everything I said with a grain of salt.
>
> Cheers
>
> Herbert                            mailto:[hidden email]
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Who is creating short-lived Symbol? [was Re: Image setup question]

Nicolas Cellier-3
I traced creation of Symbol with
        Transcript cr; show: aStringOrSymbol storeString.
in Symbol class>>#intern:
and got:

'weakSetInspectorWindowColor'
'setInspectorWindowColor'
'inspectorWindowColor'
'weakSetInspectorWindowColor'
'setInspectorWindowColor'
'inspectorWindowColor'

Seems like the WeakSetInspector is killing itself...

Nicolas

nicolas cellier a écrit :

> A propos, auto-updating inspector are not always working that well...
> Try to inspect a WeakSet like:
>
>     (Symbol classPool at: #SymbolTable) inspect.
>
> Scroll a little, the inspector flashes once or more and you end up with
> a debugger saying 'Error: subscript is out of bounds: 687'.
> Well that is for sure a bug.
>
> I'am pretty sure some Symbol are created on the fly then reclaimed, and
> cause this error. But that makes me wonder why?
> Is it really a good idea to create short lived Symbols?
> Or is it another bug?
> There are too many senders of asSymbol for me to understand...
> Anyone has a clue?
>
> Nicolas
>
> Herbert König a écrit :
>>
>> A> Playing around with a few things, I missed the option to "dive into"
>> A> an element from an Inspector and then "pop" back out to the previously
>> A> inspected object(s), so I modified the Inspector class to add those
>>
>> Try the explorer instead of the inspector. Be careful, it doesn't auto
>> update while the inspector does.
>>
>> A> options. Is something like that useful enough to submit the code
>> A> somewhere for others to load? Or am I re-inventing the wheel and
>> A> someone's already done that?
>>
>> You can decide after trying the explorer (anyOldObject explore).
>>
>> I myself am on 3.8 so take everything I said with a grain of salt.
>>
>> Cheers
>>
>> Herbert                            mailto:[hidden email]
>>
>>
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Amos-15
In reply to this post by Amos-15
Hi Damien and everyone else,

>
> Hi Amos,
>
> I would advise you to use a squeak-dev or squeak-web image. See
> http://damien.cassou.free.fr/squeak-dev.html for more information.
> Feel free to ask any question about these images.
>
> I can see 4 ways of loading things in your image:
>
> - Universe: it's a set of packages known to work together. Every
> package you find in the universe browser should be loadable into the
> image. If it's not the case, please report the bug.
> - Monticello: it's a kind of Store. There, you will find latest
> versions of tools, not always stable.
> - SqueakMap: it contains all the packages that have been released for
> Squeak since SqueakMap creation. Most of the packages won't load, but
> you can find things that can't be found anywhere else.
> - Drag&Drop: if you download a file (either .mcz, .st, .sar, .cs...),
> you can always drag & drop it into the squeak desktop and Squeak will
> ask you what to do (load, explore...).
>

Thanks for the info, I'll be sure to have a closer look at those
images and the ways of loading stuff over the weekend. Thanks also to
Ramon for pointing out that your browser customisation has been
"decommissioned" (I'll see what the OmniBrowser is like and then
extend that if there's any additional functionality I want), and to
Herbert for pointing out the explore option (I'd seen it but hadn't
used it, I imagine it can be quite useful in some cases).

>
> > Playing around with a few things, I missed the option to "dive into"
> > an element from an Inspector and then "pop" back out to the previously
> > inspected object(s)
>
>
> you can always press ALT+i (or CTRL+i) on an element to inspect it.
> So, you can "dive into" a field by just pressing this shortcut or
> right clicking and selecting "inspect it".
>
>
> > , so I modified the Inspector class to add those
> > options. Is something like that useful enough to submit the code
> > somewhere for others to load? Or am I re-inventing the wheel and
> > someone's already done that?
>
>
> It can be useful. What have you done exactly?
>

What I've done is to add the ability, like in VW, to "dive into" an
attribute of an object being inspected without opening a new
inspector, i.e. in the same window. So for instance if you inspect
something like, say:

OrderedCollection with: 'abc' with: #(1 2 'def')

then click on the collection's second element, i.e. the Array,
right-click and "dive into" it, the inspector's object is updated to
be the Array instead of the OrderedCollection. You could then dive
further into the SmallIntegers or the ByteString, or "pop" back out to
the previously inspected object. The Inspector instance remembers its
own history, so any number of dives can be retraced to the initial
object. For convenience, the double-click action on a selected
attribute is defined to be "dive into", unless you double-click on
"self" in the inspector, in which case you "pop" back one step. I
haven't found a good way of updating the window title yet, so it's a
bit hacky for now (checking the inspector's dependents for a
SystemWindow doesn't seem very elegant), but otherwise it works great.
Just a convenient way of drilling down through various layers of
objects and being able to back up if need be, without having 16
inspectors cluttering up your screen when you're done ;-)

>
> > Any help or pointers where to read up on this stuff would be greatly
> > appreciated.
>
> Any feedback on your user experience would be greatly appreciated too :-).
>
> --
> Damien Cassou

Certainly looks like I've found the right place to ask questions -
everyone on this list seems very friendly and helpful - thanks again
guys =o)

I've also downloaded the Squeak By Example book and will work my way
through that as time allows to get a feel for all those
Squeak-specific things like Morphs and what-have-yous.

Cheers,

Amos

Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Damien Cassou-3
Hi Amos,

2007/12/15, Amos <[hidden email]>:
> Thanks for the info, I'll be sure to have a closer look at those
> images and the ways of loading stuff over the weekend. Thanks also to
> Ramon for pointing out that your browser customisation has been
> "decommissioned" (I'll see what the OmniBrowser is like and then
> extend that if there's any additional functionality I want),


I would really appreciate if you could share all the additional
functionalities you create. Once you get used to using Monticello, you
can commit them yourself to source.wiresong.ca/ob which is the
official repository for OmniBrowser; you don't need any
login/password.


> > > Playing around with a few things, I missed the option to "dive into"
> > > an element from an Inspector and then "pop" back out to the previously
> > > inspected object(s)
> >
> >
> > you can always press ALT+i (or CTRL+i) on an element to inspect it.
> > So, you can "dive into" a field by just pressing this shortcut or
> > right clicking and selecting "inspect it".
> >
> >
> > > , so I modified the Inspector class to add those
> > > options. Is something like that useful enough to submit the code
> > > somewhere for others to load? Or am I re-inventing the wheel and
> > > someone's already done that?
> >
> >
> > It can be useful. What have you done exactly?
> >
>
> What I've done is to add the ability, like in VW, to "dive into" an
> attribute of an object being inspected without opening a new
> inspector, i.e. in the same window. So for instance if you inspect
> something like, say:
>
> OrderedCollection with: 'abc' with: #(1 2 'def')
>
> then click on the collection's second element, i.e. the Array,
> right-click and "dive into" it, the inspector's object is updated to
> be the Array instead of the OrderedCollection. You could then dive
> further into the SmallIntegers or the ByteString, or "pop" back out to
> the previously inspected object. The Inspector instance remembers its
> own history, so any number of dives can be retraced to the initial
> object. For convenience, the double-click action on a selected
> attribute is defined to be "dive into", unless you double-click on
> "self" in the inspector, in which case you "pop" back one step. I
> haven't found a good way of updating the window title yet, so it's a
> bit hacky for now (checking the inspector's dependents for a
> SystemWindow doesn't seem very elegant), but otherwise it works great.
> Just a convenient way of drilling down through various layers of
> objects and being able to back up if need be, without having 16
> inspectors cluttering up your screen when you're done ;-)

Please open a bug report on bugs.squeak.org on the project Squeak,
assign it to me and attach your fix. I'll take care of integrating it
into the squeak images.

--
Damien Cassou

Reply | Threaded
Open this post in threaded view
|

Should WeakArray species = WeakArray? [was Who is creating short-lived Symbol?]

Nicolas Cellier-3
In reply to this post by Nicolas Cellier-3
WeakSetInspector bug has nothing to do with short-lived Symbols.
Short-lived Symbols are created in NewSymbols, which avoid coetly rehash
of SymbolTable. So creating short-lived Symbol is not a problem.

Problem is that WeakSetInspector collect: a WeakArray...
Since WeakArray species = WeakArray, slot indices are put in a WeakArray
which leads to vanishing fieldList.
See http://bugs.squeak.org/view.php?id=6812

That raise the question: should WeakArray species = WeakArray?
Some guru advice required please.

Nicolas

nicolas cellier a écrit :

> I traced creation of Symbol with
>     Transcript cr; show: aStringOrSymbol storeString.
> in Symbol class>>#intern:
> and got:
>
> 'weakSetInspectorWindowColor'
> 'setInspectorWindowColor'
> 'inspectorWindowColor'
> 'weakSetInspectorWindowColor'
> 'setInspectorWindowColor'
> 'inspectorWindowColor'
>
> Seems like the WeakSetInspector is killing itself...
>
> Nicolas
>
> nicolas cellier a écrit :
>> A propos, auto-updating inspector are not always working that well...
>> Try to inspect a WeakSet like:
>>
>>     (Symbol classPool at: #SymbolTable) inspect.
>>
>> Scroll a little, the inspector flashes once or more and you end up
>> with a debugger saying 'Error: subscript is out of bounds: 687'.
>> Well that is for sure a bug.
>>
>> I'am pretty sure some Symbol are created on the fly then reclaimed,
>> and cause this error. But that makes me wonder why?
>> Is it really a good idea to create short lived Symbols?
>> Or is it another bug?
>> There are too many senders of asSymbol for me to understand...
>> Anyone has a clue?
>>
>> Nicolas
>>
>> Herbert König a écrit :
>>>
>>> A> Playing around with a few things, I missed the option to "dive into"
>>> A> an element from an Inspector and then "pop" back out to the
>>> previously
>>> A> inspected object(s), so I modified the Inspector class to add those
>>>
>>> Try the explorer instead of the inspector. Be careful, it doesn't auto
>>> update while the inspector does.
>>>
>>> A> options. Is something like that useful enough to submit the code
>>> A> somewhere for others to load? Or am I re-inventing the wheel and
>>> A> someone's already done that?
>>>
>>> You can decide after trying the explorer (anyOldObject explore).
>>>
>>> I myself am on 3.8 so take everything I said with a grain of salt.
>>>
>>> Cheers
>>>
>>> Herbert                            mailto:[hidden email]
>>>
>>>
>>>
>>
>>
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Amos-15
In reply to this post by Damien Cassou-3
Hi Damien,

On 12/15/07, Damien Cassou <[hidden email]> wrote:
>
> I would really appreciate if you could share all the additional
> functionalities you create. Once you get used to using Monticello, you
> can commit them yourself to source.wiresong.ca/ob which is the
> official repository for OmniBrowser; you don't need any
> login/password.
>

Ok, will do (assuming I can think of something useful to add, of course...).

>
> Please open a bug report on bugs.squeak.org on the project Squeak,
> assign it to me and attach your fix. I'll take care of integrating it
> into the squeak images.
>
> --
> Damien Cassou
>
>

Sorry, gotta ask another newbie question: The mantis doc says the
attached fix/enhancement "should be a changeset that is gzipped" - how
do I do that? I simply added the methods to the unsuspecting Inspector
class in my image; I remember the changes I made, but how do I create
a changeset from them? Is that related to the changes file? A URI
where to read up on that would be great.

Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Damien Cassou-3
Hi Amos,

2007/12/16, Amos <[hidden email]>:
> Sorry, gotta ask another newbie question:


You have nothing to be sorry about :-)


> The mantis doc says the
> attached fix/enhancement "should be a changeset that is gzipped" - how
> do I do that? I simply added the methods to the unsuspecting Inspector
> class in my image; I remember the changes I made, but how do I create
> a changeset from them? Is that related to the changes file? A URI
> where to read up on that would be great.


Most of the time, the Squeak wiki contains your answer:
wiki.squeak.org. In your case, you want to have a look at
http://wiki.squeak.org/squeak/2145 and related links. If you can't
find anything useful, just post again on the list.

--
Damien Cassou

Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Amos-15
Hi Damien,

Thanks - I've now added the change to Mantis and uploaded the
changeset, but I don't think I've got permission as a mere "reporter"
to assign it to you... the ID is 6814.

Cheers,

Amos

> Please open a bug report on bugs.squeak.org on the project Squeak,
> assign it to me and attach your fix. I'll take care of integrating it
> into the squeak images.
>
> > The mantis doc says the
> > attached fix/enhancement "should be a changeset that is gzipped" - how
> > do I do that? I simply added the methods to the unsuspecting Inspector
> > class in my image; I remember the changes I made, but how do I create
> > a changeset from them? Is that related to the changes file? A URI
> > where to read up on that would be great.
>
>
> Most of the time, the Squeak wiki contains your answer:
> wiki.squeak.org. In your case, you want to have a look at
> http://wiki.squeak.org/squeak/2145 and related links. If you can't
> find anything useful, just post again on the list.
>
> --
> Damien Cassou
>

Reply | Threaded
Open this post in threaded view
|

Re: Image setup question

Damien Cassou-3
Thank you. It's now attached to me.

2007/12/16, Amos <[hidden email]>:

> Hi Damien,
>
> Thanks - I've now added the change to Mantis and uploaded the
> changeset, but I don't think I've got permission as a mere "reporter"
> to assign it to you... the ID is 6814.
>
> Cheers,
>
> Amos
>
> > Please open a bug report on bugs.squeak.org on the project Squeak,
> > assign it to me and attach your fix. I'll take care of integrating it
> > into the squeak images.
> >
> > > The mantis doc says the
> > > attached fix/enhancement "should be a changeset that is gzipped" - how
> > > do I do that? I simply added the methods to the unsuspecting Inspector
> > > class in my image; I remember the changes I made, but how do I create
> > > a changeset from them? Is that related to the changes file? A URI
> > > where to read up on that would be great.
> >
> >
> > Most of the time, the Squeak wiki contains your answer:
> > wiki.squeak.org. In your case, you want to have a look at
> > http://wiki.squeak.org/squeak/2145 and related links. If you can't
> > find anything useful, just post again on the list.
> >
> > --
> > Damien Cassou
> >
>
>


--
Damien Cassou