HydraTools and minimal images

Igor Stasenko siguctua at gmail.com
Thu Feb 14 21:31:41 UTC 2008


On 14/02/2008, Klaus D. Witzel <klaus.witzel at cobss.com> wrote:
> On Thu, 14 Feb 2008 19:19:33 +0100, Igor Stasenko wrote:
>
>  ...
>
> > What can i say? Only that you are real guru in metaprogramming, and
>  > i'm lacking in expertise to deal with this task.
>
>
> Thank you, but that's too much for this grey-bearded OM :) Don't forget,
>  you made Hydra going :)
>
>
>  > I never got so deep under the hood to have need in creating a block
>  > contexts, or using #ifCurtailed: methods.
>
>
> #ifCurtailed: is only needed if you cannot do ([]ensure: []), etc, for
>  whatever reason, with HydraSMS. Will try to avoid them if (if!) possible.
>
>  ...
Yes, i read a comments in this method before, and it was exactly
that you just wrote: avoid at all costs :)
>
>
>  > Maybe it would be less confusing for me, from a start, if methods
>  > names would be #remotelyDo: , #locallyDo:..
>
>
> Now in Huston there's a problem: both #atHomeDo: and #atWorkDo: never
>  result in #locallyDo: ...
>
>
>  > I'm working at home, about a 2 years till now, so there is no real
>  > difference for me between #atHomeDo: and #atWorkDo: :)
>
>
> LOL :)
>
>
>  > In general, i finally understood your idea. But due to my lack of
>  > practice (and knowledge) in uber-metaprogramming i don't think i will
>  > be capable do that without help :)
>
>
> We can find a meeting point somewhere between us, I'm sure we can :) You
>  know why? it's Smalltalk :)

No problem, but it needs a time to learn everything (to be precise -
infinite time) :)

>
>
>  > What i can currently do, is provide an implementation of reliable
>  > bidirectional communication. The rest, i hope you can do yourself.
>
>
> If I had a wish free: when you begin with reliable bidirectional
>  communication please use, for the public part, the vocabulary which is
>  present in Socket's message categories #open, #queries, #receiving,
>  #sending and #waiting. Please.
>
channels don't having too much methods requiring that many category types.
As you may noticed they are very basic wrap around corresponding primitives.

>  See, SocketStream is a user of Socket, so G"oran would have a wonderful
>  SocketStream work-free weekend :-D
>
>
>  > Orr.. if you prototype most of meta-crunching stuff and point me out
>  > what places i should add to make it live.
>
>
> I will meet you there, could start by populating subclasses which extend
>  your Hydra channel classes, like
>
>   SocketLikeHydraReceivingChannel
>   SocketLikeHydraSendingChannel
>
>  and then we can see how far this gets us up to a meeting point :)
>

You can't have two kinds of 'SocketLike' channels.
If you talking about stream sockets, which is reliable kind of
communication - they are bidirectional by default. So, there can be
only a single class 'SocketLikeHydraChannel'.

If you talking about UDP, or raw sockets, then channels is already
providing comparable functionality (and a little on top).
But there are differencies, that why i chosen (maybe inconvenient)
names of methods.
The intent was to indicate that it's not a sockets (to not put you in
false direction that you can operate with channels as with sockets).
Also, note that is not really a final design, just a preview (message
names and even primitives can be changed, and it's a low-level layer,
so what the deal) :)
It will need some time to clean things a bit and make it look like a
real API for public use.

>
>  /Klaus
>
>
>  P.S. please now switch to offline email, unless you don't fear that we get
>  moderated :)
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list