Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 18 19:12
    IgorFedchenko commented #3998
  • Oct 18 18:29
    Aaronontheweb commented #3998
  • Oct 18 18:24
    Aaronontheweb opened #3998
  • Oct 18 18:19

    Aaronontheweb on fix-readme-logo

    (compare)

  • Oct 18 17:30
    Aaronontheweb milestoned #3973
  • Oct 18 16:38
    jaydeboer opened #3997
  • Oct 18 15:53
    Aaronontheweb synchronize #3973
  • Oct 18 15:52

    dependabot-preview[bot] on dev

    Bump Microsoft.NET.Test.Sdk fro… (compare)

  • Oct 18 15:52

    dependabot-preview[bot] on nuget

    (compare)

  • Oct 18 15:52
    dependabot-preview[bot] closed #3996
  • Oct 18 15:52
    Aaronontheweb commented #3996
  • Oct 18 14:53
    Aaronontheweb commented #3973
  • Oct 18 12:20
    IgorFedchenko commented #3973
  • Oct 18 12:17
    IgorFedchenko commented #3973
  • Oct 18 11:58
    IgorFedchenko synchronize #3973
  • Oct 18 11:33
    IgorFedchenko commented #3973
  • Oct 18 11:25
    IgorFedchenko synchronize #3973
  • Oct 18 07:04
    dependabot-preview[bot] labeled #3996
  • Oct 18 07:04
    dependabot-preview[bot] opened #3996
  • Oct 18 07:04

    dependabot-preview[bot] on nuget

    Bump Microsoft.NET.Test.Sdk fro… (compare)

jberzy
@jberzy
Sure. that would be fantastic!
Aaron Stannard
@Aaronontheweb
happy to do it - getting extra pairs of eyes on the clustering stuff is more than welcome
Bartosz Sypytkowski
@Horusiath
do we have meeting today?
Aaron Stannard
@Aaronontheweb
@Horusiath yessir
writing up the agenda for it
Bartosz Sypytkowski
@Horusiath
there is a little risk, that I won't have microphone and camera
Bartosz Sypytkowski
@Horusiath
I'm thinking about implementing stashing in F# actors in lazy manner, that means that stash would be intantiated only in case when actor logic will invoke functions which may need it
Tom Staijen
@tomstaijen
Hi. I've been looking for ways to create child actors using DI. The best i can come up with for now is injecting some factory with a method "ActorRef Create<TActor>(IActorContext)", that uses the dependencyresolver to create the props), although this has some chicken/egg issues (). In general, what I miss in akka is the ability to separate the definition of actor creation (whenever I ask for an actorOf<T>, do <this>), with creating a reference to such actor. This seems quite obvious. Am i completely looking over some feature? Maybe an actorsystem that knows about the dependencyresolver, and whener actorOf<T>() is invoked, it will resolve a Props<T> to create the corresponding props? Thanks in advance for any feedback!
jcwrequests
@jcwrequests
@tomstaijen If you use the IOC plugin then from within the Actor that has already been created use that access Props via the Context to create a child
That child will be using the IOC plugin.
I am responding from my phone so I apologize if I don't have a quick example.
Currently I am working on a patch for the current implementation which should be available soon.
jcwrequests
@jcwrequests
@tomstaijen That was not a very good explanation and I apologize. I am working on a Patch as I previously said for DI and within that I am adding some examples. So hopefully by tomorrow evening EST I should have something for you to look at.
Tom Staijen
@tomstaijen
@jcwrequests Thanks, it helped, found the resolver in de context's props. Eagerly waiting to see your patch. W.r.t. to lifetime, for now i'm working with singleton services and forced per-message lifetimescope (using Autofac's Func<Owned<T>>)
Roger Johansson
@rogeralsing
akkagraph.png
Aaron Stannard
@Aaronontheweb
@rogeralsing that's super cool! How'd you make that?
Roger Johansson
@rogeralsing
here is a better one
akkagraph.png
played around with a "Walk" system message, that notifies a callback of its existence, and then do the same for its own children.. then I rendered the result in GraphViz
but it could be solve with proper monitor support instead, that would be better. if we have a IMonitorLifecycle interface that gets called from the cell whenever a lifecycle event occurs, the one could plug that in there and get a realtime view :)
Roger Johansson
@rogeralsing
We should totally provide a debugger like this, like a vs debug extension. hover a system or actorref instance and get a full view of the system :)
Aaron Stannard
@Aaronontheweb
yeah, I think that's a really cool idea
I took a look at @jcwrequests post on monitoring via AOP the other day
that's an idea I think we should explore more closely after 1.0 ships
Bartosz Sypytkowski
@Horusiath
considering #722 - I've created a test case for app.config HOCON string loading... but it passes anyway, config is loaded correctly
Aaron Stannard
@Aaronontheweb
@/all for anyone interested in @jcwrequests's post about AOP for instrumenting monitoring in Akka.NET: http://www.message-flow.com/2015/01/monitoring-akkanet-based-systems.html
@Horusiath hmmm... can @jorgef replicate the issue?
because App.config loading is only automatic in /dev right now
Akka.NET v0.8 on NuGet doesn't do it
Bartosz Sypytkowski
@Horusiath
I'm testing explicit loading with F# Configuration.load() which is basically an alias for ConfigurationFactory.Load()
also, when @HCanber schedulers can be merged to dev branch?
Aaron Stannard
@Aaronontheweb
@Horusiath as soon as we figure out why @HCanber's pull request makes the system load performance counter throw an InvalidOperationException then I think we can move on
and merge it in
which is really weird, because his code doesn't even touch the performance counter definitions
at least in a way that's obvious
Bartosz Sypytkowski
@Horusiath
fu*k, I have to include JSON.NET converter for F# Expr but the problem is... Akka.FSharp has no direct dependency to JSON.NET :D
Roger Johansson
@rogeralsing
@Horusiath why do you need that? do you need to do some special handling with the F# expressions?
Bartosz Sypytkowski
@Horusiath
expression-based deciders i.e.
Roger Johansson
@rogeralsing
but isnt the akka serializer mechanics enough to deal with that? do you need to do actual json parsing/writing/annotations?
Bartosz Sypytkowski
@Horusiath
but this is so minor feature, I think I'll drop this idea untill there will be something more justifying reason to include Expr support for JSON.NET
NetwonSoftJsonSerializer will not know how to serialize F# quotation expressions
only FsPickler does
Roger Johansson
@rogeralsing
oh, and we removed fspickler?
Bartosz Sypytkowski
@Horusiath
no, but it used on top-level only, as attached akka serializer
expressions being properties of serialized objects won't work with it
Roger Johansson
@rogeralsing
ah, that should probably be possible to solve using the surrogate mechanism now. eg. FSExpressionDecider (containing expressions) -> FSExpressionDeciderSurrogate containing expressions pre serialized by fs pickler and stored as a string base64 or whatever in the surrogate., then the other way around, turn the base64 string into expressions and recreate the FSExpressionDecider
Bartosz Sypytkowski
@Horusiath
yes, but still it will work only for special case (Deciders), while leaving potential hole for other types of messages using expressions
jcwrequests
@jcwrequests
@rogeralsing That is and awesome way to do diagrams and map system flow and that is definitely more useful the any UML diagram.
jcwrequests
@jcwrequests
@Aaronontheweb @rogeralsing @Horusiath @HCanber @stefansedich The DI patch is working even with the AutoFac. Currently I am putting together some examples using the containers. Currently I have implement examples with HashPool and one with Child Actors for @tomstaijen. I want to add a few more examples and clean things up a bit before putting in a proper PR. @tomstaijen If you are interested or can't wait for the PR you can check out the latest here
Roger Johansson
@rogeralsing
/all are we really handling supervision correctly when it comes to restarting children? e.g. lets say we have the structure a -> b -> c where c is stashable. and actor c throws, b supervises but escallate to a.. A decides to restart b, b will now recreate c and thus we loose any stashing as it is no longer the same c.. is this the behavior in jvm akka too?