esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vassil Dichev <>
Subject Re: Offer my services
Date Tue, 07 Jul 2009 08:00:33 GMT
Hi Andy,

> What sort of JMX operations do you have in mind? Reset? Query stats?

Mostly querying stats, but I haven't spent time thinking about it. I
was mostly reflecting on the idea that text-based interfaces are
increasingly popular as a sort of command interface- take quicksilver,
ubiquity, twitter bots, wolphram alpha, to name but a few. So if ESME
revolves around text messages, it makes a lot of sense to me that we
can use messages as a command interface. I'm experimenting with
different ideas (not all are good, mind you).

> I went through the code base this weekend and so far I think I have a pretty
> good idea of how things are working. I am a little confused with one thing
> however.
> What exactly does the method do? What does it mean
> to "link" an actor to another? No books ( Programming in Scala, Beginning
> Scala, Definitive Guide to LIFT), scaladocs or blogs I have found give an
> explanation, but I see it peppered through the ESME and LIFT codebase.

I couldn't provide a better answer than Erik, who is deeply involved
with Scala actors.

There was a sort of boom of Scala books during last year, but
unfortunately the best way to learn about some of the tricky stuff in
detail is the source... For me, it was very instructive reading the
source especially of Lift and was the main source of information
before the excellent Lift book got out.

I suggest that you write down all questions you have and ask, this way
someone can document it, blog about it, etc. It will certainly be
useful to the next people coming to Scala.

> Also, the touch method on the Distributor, MessagePullActor and
> ScedulerActor is used to load the class like an empty init method, am I
> correct in this? After the touch method is called in Boot.scala the class is
> initialized which ends with a StartMeUp message sent to the loading Actor (
> loading users in the case of the Distributor ). Correct?

Even without calling the empty touch method the code will run, but in
this way initialization is triggered at ESME startup rather than when
the first message is sent. I think that's the only purpose "touch"
serves. Actually that's how David has done it with Distributor and
UserActor and I have followed this pattern for MessagePullActor and

> I just want to make sure I understand things correctly before I go coding
> wildly and blindly.

Good idea, but don't be too afraid to experiment, too- it's the best
way to learn. At first you will not be committing directly, so use the
fact that your code will be reviewed to your advantage.

> I should be able to start throwing some code together in the next few days.

Great to know you're having fun!


View raw message