More stuff

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

More stuff

Chris Uppal-3
Package Browser:
=============

Try this: decide to remove the sample packages (as I always do), click on
the "samples" folder, all the samples are now displayed and ready to remove
(this works well -- very convenient), select all of them (actually a no-op),
choose 'uninstall'.  Then there is a tedium of button clicking and screen
refreshes that feels as if it is never going to end (but was probably only a
couple of minutes, if that).

Suggestion: the full (not '$' relative) pathname of the single selected
package (if any) should be displayed in the status line.

Suggestion: (actually the current behaviour feels so wrong that I'm tempted
to call it a bug), when a folder is selected, then the file open dialog for
installing a new package should start in that folder.

Installing a package should either leave the current selected folder alone,
or change it to the folder where the new package lives; it should not reset
to the root of the tree.  Similarly for uninstalling.

Flippers (nice name):
===============
Not really a bug, but inspecting:
    DATE now
looks decidedly odd.  It's presumably by intent, but I can't interpret
what's happening.

Inspecting:
    DesktopView current
gives a walkback, apparently because DesktopView doesn't override #name back
to:
    ^ nil
(since it has no parent).

CHB and System Browser:
====================
Classes which are not in packages don't show up in the system browser.

The system browser and the various views of CHB still have the "generate
accessors" command in their menus, but #generateAccessors is not defined
(presumably made redundant by the new stuff).

Misc:
====
Is DolphinOAEdition intended to be part of the distro ?

About redist.txt.  I see the list of classes we may not redistribute.  No
problems there (though I'm a little surprised to see Walkback included);
does that list correspond to the contents of some specific set of packages ?

I've just exited D5, copied a backup version of the image files to the
default location, overwriting the existing files, then attempted to restart
D5.  I get the image-file-is-already-open dialog.  This seems to be because
an old version of D5 is still running but has no open windows.  I had some
problems with that instance (the STB version problem and the VC) so some
windows weren't created properly, and I assume that's why that Dolphin
didn't die when it said it would.  Not a major problem, I only mention it
because I don't remember seeing it happen with D4.

(I know this isn't really OA's patch) The list of "suspect" selectors in
BlockLintRule>>badSelectors is not tuned to Dolphin (most of 'em don't even
exist).  I _suggest_ the following list:

    #become: #oneWayBecome: #swappingBecome:
    #becomeA: #becomeAn:
    #isKindOf: #isMemberOf: #includesBehavior: #respondsTo:
    #allReferences
    #instVarAt: #instVarAt:put:
    #isString #isSymbol #isVariableBinding
    #halt

I've now been able to get at least some of my code into the new beta, so I
hope that future reports will be more substantive...

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: More stuff

Blair McGlashan
Chris

You wrote in message news:[hidden email]...
> Package Browser:
> =============
>
> Try this: decide to remove the sample packages (as I always do), click on
> the "samples" folder, all the samples are now displayed and ready to
remove
> (this works well -- very convenient), select all of them (actually a
no-op),
> choose 'uninstall'.  Then there is a tedium of button clicking and screen
> refreshes that feels as if it is never going to end (but was probably only
a
> couple of minutes, if that).

Yes, it is implemented in a very simple way (i.e. a loop around uninstalling
a single package), that could certainly be improved upon if there is time.
Defect #508.

> Suggestion: the full (not '$' relative) pathname of the single selected
> package (if any) should be displayed in the status line.

Good idea. #509

> Suggestion: (actually the current behaviour feels so wrong that I'm
tempted
> to call it a bug), when a folder is selected, then the file open dialog
for
> installing a new package should start in that folder.

I agree. #510.

> Installing a package should either leave the current selected folder
alone,
> or change it to the folder where the new package lives; it should not
reset
> to the root of the tree.  Similarly for uninstalling.

I have found that quite maddening as well. #511.

>
> Flippers (nice name):
> ===============
> Not really a bug, but inspecting:
>     DATE now
> looks decidedly odd.  It's presumably by intent, but I can't interpret
> what's happening.

I don't really follow. I think it would look better if we used an
alternative view for dates mind you, because the DateTimePicker control
seems to stretch its checkbox to fit, but nothing else. Unfortunately it is
probably the only specific (i.e. not just simple text) that can be
guaranteed to be available, since the other alternatives are OCXs.

> Inspecting:
>     DesktopView current
> gives a walkback, apparently because DesktopView doesn't override #name
back
> to:
>     ^ nil
> (since it has no parent).
>

We have already modified the inspector for the next release to suppress
errors accessing the values of aspects (be they published or instance
variables) in the same way that the old inspector used to. Without this
feature the inspector is less than useful for inspecting objects in an
indeterminate/invalid state, and during development in general. Nevertheless
you are right that #name (and #name:) should be overridden by DesktopView
(#511).

> CHB and System Browser:
> ====================
> Classes which are not in packages don't show up in the system browser.

True. It probably needs to show the '_Uncommitted' virtual package. Defect
#512.

> The system browser and the various views of CHB still have the "generate
> accessors" command in their menus, but #generateAccessors is not defined
> (presumably made redundant by the new stuff).

This command may still be required for when the refactoring browser is not
installed (e.g. in a lower-end edition of Dolphin). We'll check anyway,
#513.

> Misc:
> ====
> Is DolphinOAEdition intended to be part of the distro ?

No, thanks.

> About redist.txt.  I see the list of classes we may not redistribute.  No
> problems there (though I'm a little surprised to see Walkback included);
> does that list correspond to the contents of some specific set of packages
?

Not entirely. It is the contents of the 'Development' class category,
although this is mainly comprised of the contents of the various packages
under $/Object Arts/Dolphin/IDE.

WalkbackDialog is not used in a runtime application - it wouldn't have
thought it appropriate to display that sort of information to an end user.
Walkback details are written to the error log though.

Licensing remains the same as D4 in this respect, although there will be
differences in the context of redist.txt. If there are specific development
classes any one wishes to distribute we may give permission on request.

>
> I've just exited D5, copied a backup version of the image files to the
> default location, overwriting the existing files, then attempted to
restart
> D5.  I get the image-file-is-already-open dialog.  This seems to be
because
> an old version of D5 is still running but has no open windows.  I had some
> problems with that instance (the STB version problem and the VC) so some
> windows weren't created properly, and I assume that's why that Dolphin
> didn't die when it said it would.  Not a major problem, I only mention it
> because I don't remember seeing it happen with D4.

It could happen in either system, especially if the system failed to start
up properly (and didn't get as far as opening the main system folder).

>
> (I know this isn't really OA's patch) The list of "suspect" selectors in
> BlockLintRule>>badSelectors is not tuned to Dolphin (most of 'em don't
even
> exist).  I _suggest_ the following list:
>
>     #become: #oneWayBecome: #swappingBecome:
>     #becomeA: #becomeAn:
>     #isKindOf: #isMemberOf: #includesBehavior: #respondsTo:
>     #allReferences
>     #instVarAt: #instVarAt:put:
>     #isString #isSymbol #isVariableBinding
>     #halt

Thanks anyway, I'll modify them.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: More stuff

Chris Uppal-3
Blair,

> > Not really a bug, but inspecting:
> >     DATE now
> > looks decidedly odd.  It's presumably by intent, but I can't interpret
> > what's happening.
>
> I don't really follow. I think it would look better if we used an
> alternative view for dates mind you, because the DateTimePicker control
> seems to stretch its checkbox to fit, but nothing else. Unfortunately it
is
> probably the only specific (i.e. not just simple text) that can be
> guaranteed to be available, since the other alternatives are OCXs.

Oh, is that what it is ?  I hadn't realised, but now you mention it I can
see a painfully stretched button (or is it a drop list) for bringing up a
month calendar.

> > (I know this isn't really OA's patch) The list of "suspect" selectors in
> > BlockLintRule>>badSelectors is not tuned to Dolphin (most of 'em don't
> even
> > exist).  I _suggest_ the following list:
> >
> >     #become: #oneWayBecome: #swappingBecome:
> >     #becomeA: #becomeAn:
> >     #isKindOf: #isMemberOf: #includesBehavior: #respondsTo:
> >     #allReferences
> >     #instVarAt: #instVarAt:put:
> >     #isString #isSymbol #isVariableBinding
> >     #halt
>
> Thanks anyway, I'll modify them.

Just in case you hadn't noticed, I'd better admit that I allowed my dislike
of #isString, etc, to creep into the list -- you may (but I'd cheer you on
if you didn't) want to tone it down in that respect...

> Blair

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: More stuff

Blair McGlashan
"Chris Uppal" <[hidden email]> wrote in message
news:[hidden email]...
> ...
> > > (I know this isn't really OA's patch) The list of "suspect" selectors
in

> > > BlockLintRule>>badSelectors is not tuned to Dolphin (most of 'em don't
> > even
> > > exist).  I _suggest_ the following list:
> > >
> > >     #become: #oneWayBecome: #swappingBecome:
> > >     #becomeA: #becomeAn:
> > >     #isKindOf: #isMemberOf: #includesBehavior: #respondsTo:
> > >     #allReferences
> > >     #instVarAt: #instVarAt:put:
> > >     #isString #isSymbol #isVariableBinding
> > >     #halt
> >
> > Thanks anyway, I'll modify them.
>
> Just in case you hadn't noticed, I'd better admit that I allowed my
dislike
> of #isString, etc, to creep into the list -- you may (but I'd cheer you on
> if you didn't) want to tone it down in that respect...

I think Andy and I have made it pretty clear where we stand on that issue
before :-). I've been thinking about adding a Smalllint Rule that locates
all such "class" tests, but I haven't been able to think how to do it yet.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: More stuff

Bill Schwab-2
Blair,

> > Just in case you hadn't noticed, I'd better admit that I allowed my
> dislike
> > of #isString, etc, to creep into the list -- you may (but I'd cheer you
on
> > if you didn't) want to tone it down in that respect...
>
> I think Andy and I have made it pretty clear where we stand on that issue
> before :-). I've been thinking about adding a Smalllint Rule that locates
> all such "class" tests, but I haven't been able to think how to do it yet.

Good :)  Actually, I agree with you until forced to resort to #isKindOf::
etc., at which point "loose" methods make a lot more sense.  It's also been
noted that the new message allows multiple types to be recognized
independent of inheritance relations.  Such methods do not necessarily need
to be present in Object to be useful.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: More stuff

Blair McGlashan
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]...
> Blair,
>
> > > Just in case you hadn't noticed, I'd better admit that I allowed my
> > dislike
> > > of #isString, etc, to creep into the list -- you may (but I'd cheer
you
> on
> > > if you didn't) want to tone it down in that respect...
> >
> > I think Andy and I have made it pretty clear where we stand on that
issue
> > before :-). I've been thinking about adding a Smalllint Rule that
locates
> > all such "class" tests, but I haven't been able to think how to do it
yet.
>
> Good :)  Actually, I agree with you until forced to resort to #isKindOf::
> etc., at which point "loose" methods make a lot more sense.  It's also
been
> noted that the new message allows multiple types to be recognized
> independent of inheritance relations.  Such methods do not necessarily
need
> to be present in Object to be useful.

Yes, but if so those methods should be testing for an "interface" rather
than a class, and should be named accordingly. A good example is the
Smalltalk-80 method #understandsArithmetic. #isString is a bad example. Most
of the examples of #is<class name> that one sees are dubious at best -
Visual Smalltalk includes a lot that are worse even than #isString.

Although not supported by all Smalltalks at present (and not fully developed
in Dolphin), the general concept of interfaces/protocols is better used to
perform these type of tests. For example, within the command handling
framework of Dolphin we test potential command targets to see if they
implement the #commandTarget protocol (see e.g.
CommandPolicy>>appendPresenter:). IMHO it is a lot better to provide a
general mechansim for this than ever extending the number of messages
understood by every Object.

Dave Simmons has taken this one step further and in Smallscript
interfaces/protocols are classes. This unified approach allows one to revent
to using #isKindOf:, instead of having a separate #conformsToProtocol:
message, and would seem to be the best way to move the Smalltalk language
forward in this respect.

Regards

Blair