Dolphin Questions

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

Dolphin Questions

Sean Malloy-2
1) What is the point of using Class categories? You can't search by them,
you can't filter using them. You can't use them, except to assign an object
to a category, or create a category. Is it just me, or is it useless?

2) It seems a lot of methods are just wrappers into the Windows API. Has
this been done for performance? For easier translation to other languages?

3) How can I get the class browser to save my preferences? What i mean is, I
have "Show inherited methods" and "Filter object methods" selected, but I
have to do it every time I open a browser... I guess this is up to me to
modify it right. Add that to the list of things to do....

4) Is Dolphin 6 going to get an update to the documentation. I know writing
documentation sucks, I understand, but still, its a development environment
with stuff such as the Refactoring options, etc not even mentioned (I know
its an old version of the docs on the newer version of the product....)

5) Is it still a requirement to modify the VM to get Seaside like
continuations to work? I notice in the (old) port of Seaside to Dolphin, it
requires a VM update. Did the recent VM update address this (I'm guessing
no - there was no mention of it in the change log)

6) Is it just me, or does the ServerSocket>>#connectedAccepted event not
fire when a connection is accepted? I'm still learning Dolphin, and wirintg
test code, so it may be an error on my part. Can anyone post some code
showing an example of a ServerSocket, and it firing that event?

I guess thats it for now. On the whole I'm really enjoying development in
Dolphin. Looking forward to 6.0!!!!


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Sean Malloy-2
> 2) It seems a lot of methods are just wrappers into the Windows API. Has
> this been done for performance? For easier translation to other languages?

Operating System Languages that is, localisation or whatever.

> 6) Is it just me, or does the ServerSocket>>#connectedAccepted event not
> fire when a connection is accepted? I'm still learning Dolphin, and
wirintg
> test code, so it may be an error on my part. Can anyone post some code
> showing an example of a ServerSocket, and it firing that event?

oops, #connectionAccepted.


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Chris Uppal-3
In reply to this post by Sean Malloy-2
Sean Malloy wrote:

> 1) What is the point of using Class categories? You can't search by them,
> you can't filter using them. You can't use them, except to assign an
> object to a category, or create a category. Is it just me, or is it
> useless?

Largely useless, yes.  OA feel (and I agree with them) that packages make a
more useful way of clustering and filtering classes.  The class categories are
only for compatibility with other Smalltalks that use them. (And, I suppose,
the convenience of any users who want to add IDE features that do use them.)

(Actually there are a couple of places where the IDE makes real use of the
class categories -- for instance the only LayoutManager subclasses that show up
as choices in the View Composer are those that are in class category:
'MVP-Layout Managers-General'.  But those uses seem rather anomalous to me,
probably just historical holdovers.)


> 2) It seems a lot of methods are just wrappers into the Windows API. Has
> this been done for performance? For easier translation to other languages?

You're probably looking at it the wrong way around ;-)  One of the points of
Dolphin is to allow you to use the Windows API (and other code written in
external DLLs).  Since there's lots of useful stuff in such DLLs, there are
lots of methods that allow you to use them.  We users also add interfaces to
external libraries -- it's one of the easier ways of getting access to complex
facilities ("don't re-invent the wheel" and all that).

There's also the point that Dolphin is based on Windows, but written mostly
*in* Dolphin, so part of what you are seeing is the underpinnings of the
implementation.  This may make more sense if you contrast it with other
Smalltalk implementations like VW where a lot of the Windows implementation (or
Unix or whatever) is "hidden" inside the VM.  Both are valid design approaches
depending on how much cross-platform consistency is important to the product.


> 3) How can I get the class browser to save my preferences?

 From the class browser, you can open the Tools=>Options=>Inspect menu item
which allows you to set some preferences (including both the ones you
mentioned).  The complete list of configurable options for all tools (that are
configurable from the GUI at all) is under the same menu option of the 'System
folder'.


> 4) Is Dolphin 6 going to get an update to the documentation.

No idea.  I hope so....


> 5) Is it still a requirement to modify the VM to get Seaside like
> continuations to work?

I don't know about Seaside, but the Continuation class>factorialExample: works
OK in my image, which has not been patched specifically for Continuations, so I
assume so.


> 6) Is it just me, or does the ServerSocket>>#connectedAccepted event not
> fire when a connection is accepted?

I think it's just you ;-)   The following works for me in a workspace:

    "set up a server socket"
    server := ServerSocket port: 8333.

    "hacky way to see if events are working"
    handler := [:sock | Transcript display: sock; cr. sock close].
    server when: #connectionAccepted: send: #value: to: handler.

    "wait for a connection in the background"
    [server accept] fork.

    "now connect to http://localhost:8333/ from a web browser.
    you should see something like
        a Socket(123)
    in the Transcript"

    "clean and tidy..."
    server close.

(But I would normally use the value returned from #accept rather than watching
events -- a matter of personal taste and the differing needs of different
applications, I suppose.)

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Bill Schwab-2
In reply to this post by Sean Malloy-2
Sean,

> 2) It seems a lot of methods are just wrappers into the Windows API. Has
> this been done for performance? For easier translation to other languages?

If you are referring to methods in ExternalLibrary subclasses, then it's
"just the way Dolphin works".  Some/most Smalltalks use the VM as an
abstraction layer; Dolphin sees the VM only as an execution environment, and
puts the host OS interfacing details in the image.

Have a good one,

Bill

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


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Sean Malloy-2
In reply to this post by Chris Uppal-3
> There's also the point that Dolphin is based on Windows, but written
mostly
> *in* Dolphin, so part of what you are seeing is the underpinnings of the
> implementation.  This may make more sense if you contrast it with other
> Smalltalk implementations like VW where a lot of the Windows
implementation (or
> Unix or whatever) is "hidden" inside the VM.  Both are valid design
approaches
> depending on how much cross-platform consistency is important to the
product.

Yeah its not a problem, I know its a lock-in to windows anyways.. I just
thought it was strange that things like String>>asUppercase were just
wrappers to Windows calls :)

>
> > 3) How can I get the class browser to save my preferences?
>
> From the class browser, you can open the Tools=>Options=>Inspect menu item
> which allows you to set some preferences (including both the ones you
> mentioned).  The complete list of configurable options for all tools (that
are
> configurable from the GUI at all) is under the same menu option of the
'System
> folder'.

Thank you!

> (But I would normally use the value returned from #accept rather than
watching
> events -- a matter of personal taste and the differing needs of different
> applications, I suppose.)

Thank you again. It finally worked!

Regards,

Sean


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Chris Uppal-3
In reply to this post by Sean Malloy-2
Sean Malloy wrote:

> oops, #connectionAccepted.

Actually, it's #connectionAccepted: (with a colon), which may be your
problem...

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Sean Malloy-2
> Actually, it's #connectionAccepted: (with a colon), which may be your
> problem...

And a big groan is let out.... DAMN! Yep, that's the problem.


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Chris Uppal-3
Sean Malloy wrote:

> > Actually, it's #connectionAccepted: (with a colon), which may be your
> > problem...
>
> And a big groan is let out.... DAMN! Yep, that's the problem.

Easy mistake to make.  I do it far too often :-(

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Questions

Andy Bower-3
In reply to this post by Sean Malloy-2
Sean,

Well thanks to Chris for answering most of your questions before I got
to it..

> Yeah its not a problem, I know its a lock-in to windows anyways.. I
> just thought it was strange that things like String>>asUppercase were
> just wrappers to Windows calls :)

Well that is done for performance. There are several places where we've
used C or Windows library call outs for perfomance reasons (where use
of Smalltalk would have been clearer).

> 4) Is Dolphin 6 going to get an update to the documentation.

Yes.

> 5) Is it still a requirement to modify the VM to get Seaside like
> continuations to work?

Well, Seaside may have moved on but we have been distributing the
modified VM that supports the continuations as part of the main product
for some time (since Dolphin 5.1 I think).

Best regards

Andy Bower
Dolphin Support
www.object-arts.com