These are chat archives for akkadotnet/akka.net

6th
Mar 2015
HÃ¥kan Canberger
@HCanber
Mar 06 2015 07:06
@raymens If you don't name an actor, the system will assign it a unique name. If you want the name to follow some kind of pattern, like in your example, you have to write it yourself.
Bartosz Sypytkowski
@Horusiath
Mar 06 2015 10:35
@Aaronontheweb do you have some kind of the documentation or tech. overview to Helios? I'd like to see, what else purposes could it serve.
Raymen Scholten
@raymens
Mar 06 2015 11:15
@HCanber allright, thank you
Raymen Scholten
@raymens
Mar 06 2015 13:03
Are questions better suited for StackOverflow or gitter?
Roger Johansson
@rogeralsing
Mar 06 2015 13:57
Id say gitter, most of us are here every day
Aaron Stannard
@Aaronontheweb
Mar 06 2015 16:42
@Horusiath very little, although I'm in the process of migrating it to its own organization and publishing docs around Helios 2.0
the only real docs I have for at it at the moment are its specs and samples
@stefansedich submitted a PR a couple of days ago which should enable Mono support in Helios
and should fix the Akka Remoting issues
turns out that TcpClient and UdpClient call Socket.Bind in their constructors on Mono, which makes it impossible to set socket options on them
Aaron Stannard
@Aaronontheweb
Mar 06 2015 16:48
@smalldave you might appreciate this, btw https://github.com/petabridge/lighthouse - took an old project I started on with Akka.Cluster a while back and I'm modernizing it now
basically it's a windows service that acts as a dedicated seed node for clusters that want to use roles
runs virtually no code other than what's in Akka.Cluster so it doesn't need to be updated
designed for PaaS environments like Elastic Beanstalk, AppHarbor, Azure Websites
I'm in the process of rewriting it to use Topshelf now
and an NLog adapter that lets it write to the windows event log
Topshelf itself is super neat - never used it until I saw some of our contributors mention it: http://topshelf-project.com/
David Smith
@smalldave
Mar 06 2015 16:54
+1 for Topshelf. Been using it for years. Microsoft should have adopted by now
lighthouse looks interesting
Aaron Stannard
@Aaronontheweb
Mar 06 2015 16:55
yeah, this is way better than the alternatives
can't believe I hadn't used it until now
the idea behind lighthouse is basically to have a 1-2 lighthouse instances sitting on dedicated IaaS boxes
it's meant to be a scriptable, configurable Akka.Cluster service that you will eventually just be able to deploy via a packaged binary
and some .config modifications
the idea is to just keep a couple of these around as a lightweight, do-it-yourself Akka.Cluster service discovery endpoint
they're not necessary in environments where you can use something like the EC2 SDK to query all of the IPs of other machines in your deployment group
David Smith
@smalldave
Mar 06 2015 16:58
think it's a good idea and good name!
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:00
awesome, glad you like it :)
the code's super simple - mostly just some configuration injection stuff
David Smith
@smalldave
Mar 06 2015 17:05
was @Horusiath talking about being able to deploy actors along with their code remotely in F#? makes a no frills cluster node interesting
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:05
yes he was
I think there's a way that can be done generically too
David Smith
@smalldave
Mar 06 2015 17:05
not sure how I feel about that. bit scary :)
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:06
I was drafting a proof of concept idea for a talk @skotzko and I are giving later this month on doing Streaming ETL with Akka.NET
had the notion of allowing end users to install a NuGet package and write a .NET assembly that implements a few interfaces for doing Extract / Transform
and distributing that across the cluster - having specific actors deployed who use that code internerally since it knows how to construct objects with that interface
realized that you could just bake that code into the actor definitions themselves
the part that would suck is how you deal with updating an assembly you've already deployed once
I guess you'd need to have a registry on each node that its able to perform a CAS operation to do an in-place update
and some sort of coordinator responsible for making sure that all nodes eventually end up using the same binary
but then how do you kill off all of the actors deployed using the old stuff?
David Smith
@smalldave
Mar 06 2015 17:11
you are making the f# approach sound less scary :)
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:11
HAHA
yeah, I think maybe it's something that's a lot easier to do in F# :smile:
but that is the nasty edge case though
@smalldave newbie Topshelf question for you - is there any specific convention I need to follow when setting up commandline arguments?
like /mycommand {commandvalue}
David Smith
@smalldave
Mar 06 2015 17:17
why do you want them for a service? when it's being installed?
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:17
for when it's being installed
basically someone can pass in the IP, port number, and a debug flag that the service will use when it runs
David Smith
@smalldave
Mar 06 2015 17:18
ok and you store it locally somewhere?
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:18
Ideally I'd like it to be passed in each time in the service runs
David Smith
@smalldave
Mar 06 2015 17:18
can't say I've done that before. usually just use config file
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:18
as part of the service's command line
David Smith
@smalldave
Mar 06 2015 17:18
ah. no idea if you can do that. I'm guessing not though
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:18
actually, I guess this is mostly just for debugging
because the way this stuff really gets set is via .config
using the usual HOCON configuration stuff
David Smith
@smalldave
Mar 06 2015 17:20
answer is I don't know. i guess topshelf will complain that it doesn't understand the parameters as it is trying to interpret them
should have read that properly. apparently doesn't work
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:23
eh, in that case I'll just strip the commandline arguments out
they're all optional anyway
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:51
anyone understand why the NLog logger wouldn't work with the following configuration?
<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <!--<target name="eventlog" xsi:type="EventLog" layout="${logger}: ${message}" source="Lighthouse" log="Application" />-->
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:MM\:ss} ${logger} ${message}"></target>
  </targets>

  <rules>
    <!--<logger name="*" minlevel="Warn" writeTo="eventlog" />-->
    <logger name="*" minlevel="Info" writeTo="console" />
  </rules>
</nlog>
commented out the eventlog stuff, but not seeing anything appear on the console
cc @mmisztal1980
David Smith
@smalldave
Mar 06 2015 17:52
is that in nlog.config
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:52
yes
David Smith
@smalldave
Mar 06 2015 17:52
i just spent a while cursing logging because I didn't have always copy set on nlog.config
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:53
welp, that fixed it
David Smith
@smalldave
Mar 06 2015 17:53
hope that saved you the time I wasted
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:53
I am hilariously inept at using third party logging tools
David Smith
@smalldave
Mar 06 2015 17:53
;)
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:55
it's one of those things where I went so long without having to set one up myself that I became too afraid to ask :worried:
Bartosz Sypytkowski
@Horusiath
Mar 06 2015 17:56
do you guys think that open plugins proposals with up for grabs labels have sense?
David Smith
@smalldave
Mar 06 2015 17:56
problem is that app.config web.config copy automatically. you forget that you have to opt in for other files
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:57
@Horusiath totally - I think it'd be really cool if someone decided to write some of the persistence plugins you proposed
David Smith
@smalldave
Mar 06 2015 17:57
agreed. can't do any harm
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:58
yeah, the worst that can happen is someone submits something that doesn't work and the pull request doesn't get accepted
Bartosz Sypytkowski
@Horusiath
Mar 06 2015 17:58
I'm thinking about blog post being tutorial of how to roll your own persistence plugin
Aaron Stannard
@Aaronontheweb
Mar 06 2015 17:58
I think thats a great idea too @Horusiath
Aaron Stannard
@Aaronontheweb
Mar 06 2015 18:15
that's something I'm personally interestedin
Andrew Skotzko
@skotzko
Mar 06 2015 18:15
that would be super cool
write away @Horusiath !