Camelia, the Perl 6 bug

IRC log for #cqrs-perl6, 2011-04-22

| Channels | #cqrs-perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
05:06 birdwindupbird joined #cqrs-perl6
06:46 masak joined #cqrs-perl6
06:49 birdwindupbird left #cqrs-perl6
07:09 birdwindupbird joined #cqrs-perl6
09:15 masak ok, jnthn and I have done some roleplaying as architect and client. :)
09:16 masak I must say that as a client, I feel very confident in the architecting skillz of jnthn.
09:17 masak we ended up with these concepts: Player, Game (has a Board, which has Cells).
09:17 masak seems to us that Game is an aggregate with Board entirely inside it. no two games ever share a board or anything funky like that.
09:17 jnthn Also, a board is meaningless alone. :)
09:18 masak and that :)
09:24 masak we're now going to model commands and events until we cover our use cases.
10:12 jnthn https://gist.github.com/936407 # commands
10:13 masak we're really happy about the design phase so far.
10:13 masak things feel... right.
10:27 birdwindupbird left #cqrs-perl6
10:29 masak we started modeling our events too, but now we're breaking for a quick lunch. :)
10:30 birdwindupbird joined #cqrs-perl6
11:48 tadzik is now known as wisdom_of_ack
11:48 wisdom_of_ack is now known as tadzik
11:53 masak we're overwhelmed by how nice this modeling of commands and events is.
11:55 masak we're quite far into modeling the whole system, and we haven't even started talking about *state* yet!
11:55 masak we're mostly discussing what the system will do; how the different parts will behave.
11:57 jnthn It's decidedly refreshing that the design is focusing on the operations we'll perform, not the state we'll need to keep around between them.
12:01 jnthn Our commands and events so far: https://gist.github.com/936407
12:18 masak we now have a repository: https://github.com/jnthn/hex
12:28 masak now writing something that can test things for us.
12:33 birdwindupbird left #cqrs-perl6
12:40 birdwindupbird joined #cqrs-perl6
12:46 masak we're experiencing unexpected cross-platform newline issues. :/
12:52 moritz patch rakudo!
12:56 masak this isn't a Rakudo issue.
12:56 masak I think it's jnthn's editor :)
12:57 masak but it's odd because it never misbehaved before...
12:57 JimmyZ joined #cqrs-perl6
12:57 colomon joined #cqrs-perl6
12:58 masak colomon: https://github.com/jnthn/hex
13:30 masak jnthn: https://github.com/gregoryyou​ng/m-r/tree/master/SimpleCQRS
13:58 masak here's our first test: https://github.com/jnthn/he​x/blob/master/t/gameplay.t
13:58 masak now we're going for a walk :)
14:23 JimmyZ left #cqrs-perl6
14:35 PerlJam hahaha  beer + bacon ....  I like your collective style  :)
14:37 masak actually, that was just jnthn++ :)
14:40 PerlJam I get the feeling right now having just skimmed through the various files that you could do something with roles and parameterized roles and abstract out the CQRS bits into a module that could be reused for other projects.
14:42 masak we think so too.
14:43 masak but we're optimizing on the YAGNI-ish side until we grok what we're doing ;)
14:43 PerlJam indeed
14:44 colomon Having skimmed over the log, I must admit I always get worried when examples start by telling me I don't *really* need constraints I thought I needed.  I'd rather just start with an example where that constraint isn't there.
14:45 colomon But I dunno, everything you've talked about seems very far away from the kind of programming I do.
14:46 colomon :)
14:49 PerlJam colomon: I don't know ... I think you do these things anyway, you just don't have a structure for design nor do you have the same names for things.  It's one of those things that you do because you've either been taught to do things a certain way or you've got a sense for how things should be done "naturally"
14:50 PerlJam (take database normalization for instance. ... when I was a college student, I did normalization because it just seemed right.  I didn't know it was called normalization or anything until I took the RDBMS course)
14:51 PerlJam I just did what seemed "natural" or "logical" to me.  It just so happens that some other people had come up with a more structured way to do that and given it a funny name.
14:52 colomon PerlJam: I've done about two days' worth of explicit database programming in my (post-college) 17 year programming career.
14:53 masak colomon: I also don't usually do this "kind of programming". but it seems to me it's very common.
14:53 masak colomon: basically, large business systems.
14:54 masak in this case, we're writing a smallish game site, and it's already very applicable.
14:55 PerlJam colomon: heh, the database thing was just an example.  Apply it to any kind of programming you do.  There are these things that you just do because it seems the right way to do it.  CQRS is those same things but within a structure and some names you can pin certain activities to.
14:57 PerlJam AT least that's how I see it right this second  :)
14:58 colomon Please understand, I wasn't trying to say these techniques are useless; rather that my opinion on them is perhaps less than completely trustworthy, because it is far from my realm of programming.
14:59 PerlJam aye.
15:01 PerlJam oddly, if I hadn't messed with Ruby and RSpec and Cucumber (which is where I decided some Ruby people have jumped the shark on testing) I wouldn't have a bridge to understanding how all the stuff that masak has been talking out would even be relevant to my day-to-day programming world.
15:02 PerlJam s/talking out/talking about/
15:09 masak I was also helped by looking at Cucumber. (and I also figured there were shark jumps involved.)
15:28 masak heh.
15:28 masak we're definitely in the thick of things now ;)
15:41 masak OH THIS IS SO SUBTLE AND BRILLIANT
15:42 masak --[Command]--> Bus -> CommandHandler -> Repository -> EventStore --[Event]--> Bus -> EventHandler(s)
15:45 moritz <insert joke about Bus number here>
16:00 masak yay! our first failing test! \o/
16:01 masak ladies and gentlemen, we have a CQRS testing framework.
16:01 jnthn Failing. It beats crashing. :)
16:01 masak given that we're new at this, we're making good progress.
16:01 jnthn when we try
16:01 jnthn then we do ok
16:01 masak :P
16:01 masak it's a given.
16:32 masak we're suffering a bit from the .NET <-> Perl 5 impedance mismatch right now.
16:35 birdwindupbird left #cqrs-perl6
16:43 jnthn Well, and partly because we're still coming to really grok the concepts we're trying to map :)
16:43 masak pizza &
19:20 birdwindupbird joined #cqrs-perl6
19:22 masak we passed our first test! \o/
19:22 colomon \o/
19:24 birdwindupbird \o/
19:41 moritz that took... quite some time
19:41 moritz :-)
19:46 colomon Good thing they're not using TDD, if it takes that long to get their first test working.  ;)
19:49 masak we *are* using TDD :)
19:49 masak but we're speeding along now.
19:50 masak what took time up until now was a bit of grokking that we hadn't been doing up until today.
20:11 masak we're really enjoying this.
20:12 masak we're doing ping-pong pair programming, taking turns making a test pass and then writing a test for the other one to pass.
20:12 masak the tests are wonderful. and the implementation is quite nice too, now that all the infrastructure is in place.
20:56 * moritz thinks that jnthn and masak are doing DDD: Design-Driven Design :-)
21:06 masak slander! :P
21:06 jnthn Yeah, we didn't design!
21:06 jnthn Hey, wait...
21:06 masak you meant to say that we aren't driven...
21:06 jnthn ping-pong pair programming is good fun :)
21:06 masak yeah!
21:06 jnthn masak: I'm sure not gonna be...the last bus was before now :P
21:07 masak :P
21:08 moritz how far do you live apart?
21:09 masak about an hour's walk.
21:09 jnthn Less than.
21:09 masak maybe a little less.
21:09 jnthn Only 50 minutes or so.
21:09 jnthn I make it in 40 on a good day.
21:09 masak today is a good day.
21:09 jnthn :)
21:10 masak I'm very inspired by today's hacking.
21:10 jnthn It took some work to understand how to write the initial bits, but with them in place it's been productive. :)
21:10 masak these techniques somehow tends to make you more hopeful about coding, not less.
21:11 masak it's like things are in very sensible compartments, and the more you code, the more they motivate their own existence.
21:11 masak it's interesting how state is like an afterthought in the whole system.
21:12 * moritz wonders if jnthn is now going to turn the lexicals handling in nqp into an event-sourced system
21:12 birdwindupbird left #cqrs-perl6
21:13 * moritz also wonders if bicycles are a viable means of transport in that corner of .se
21:14 jnthn They're very viable because it's flat and there's often cycle lanes
21:14 jnthn I don't own one yet, though.
21:14 masak 22 kB.
21:14 masak that's what we wrote today.
21:14 moritz which repo?
21:14 masak and for what it actually does... that's quite nice.
21:15 masak https://github.com/jnthn/hex
21:15 masak I especially encourage you to look in https://github.com/jnthn/he​x/blob/master/t/gameplay.t
21:15 jnthn Resources used: 3 cans of beer. 2 pizzas. 1 lasanga. 1 pack of chilli chocolate.
21:15 moritz I'll check it out tomorrow
21:15 moritz and go to sleep now
21:16 masak op for everyone! :)
21:16 jnthn whoz op?!
21:16 masak apart from the bot :P
21:16 jnthn hometime :)
21:27 masak left #cqrs-perl6

| Channels | #cqrs-perl6 index | Today | | Search | Google Search | Plain-Text | summary