kleech has quit [Remote host closed the connection]
kleech has joined #rom-rb
knowtheory has quit [Quit: Computer has gone to sleep]
knowtheory has joined #rom-rb
knowtheory has quit [Quit: Computer has gone to sleep]
knowtheory has joined #rom-rb
mbj has joined #rom-rb
<solnic>
mbj, snusnu: rom-mapper runs rake ci on travis now…and passes :)
<mbj>
solnic: woohoo!
<mbj>
solnic: well done!
<snusnu>
solnic: sweet!
<solnic>
yet again I could simplify the code and improve tests thanks to mutant
<solnic>
I cannot express how awesome this is
<mbj>
solnic: nice
kleech has quit [Remote host closed the connection]
<solnic>
mbj: just talked to dkubb about that class-freezing
<solnic>
he said if you could send a PR…he would accept it
<solnic>
he’s super busy with work this week
<solnic>
…just like you O_o
<solnic>
I guess we could work this out during eurucamp
<solnic>
snusnu ^^
<mbj>
solnic: I'll *TRY* to send a PR.
<mbj>
Need to get this fixed also, get bit by it too often.
<mbj>
And thx for pinging him.
<mbj>
I also have access to the gem, so I can do a release, IMHO.
<mbj>
This is a good change and makes ice_nine a better citizen :D
<solnic>
mbj: what I just wrote in the comment
<mbj>
solnic: agree, I'll not start this now.
<mbj>
solnic: Maybe later.
<mbj>
solnic: I like the theory of monkeypatching away dangerous features of ruby. After loading my lib fully.
<snusnu>
mbj, solnic: i commented on GH too
<solnic>
snusnu: yeah dkubb agreed we should skip freezing classes
<solnic>
just waiting for a PR now :)
<snusnu>
well, imo the problem is a "conceptually bigger", we should make sure that our tools can limit their impact to exactly the parts of the graph, that we want to .. not step outside of those boundaries
<solnic>
yes I raised this concern last year
<snusnu>
i dunno if skipping freezing classes is a solution for that
<solnic>
when axiom adapter was freezing parts of DO drivers :)
<snusnu>
there's equalizer for example
<snusnu>
i see no reason why it would deep freeze the values it equalizes on
<snusnu>
right
<snusnu>
include Adamantium MUST ONLY be used when we know that we own the complete graph
<snusnu>
and everything else, MUST NOT deep freeze anything
<solnic>
yes I totally agree
<solnic>
I’ve no idea what dkubb thinks about it though
<snusnu>
well, tbh, read my point about what we're actually doing (my last comment on GH)
<snusnu>
i dunno, maybe i got it wrong, but imo it's hard to argue with that point
<solnic>
snusnu: did you see my reply re axiom’s equalizer?
<snusnu>
solnic: yeah, just saw it, i agree
<snusnu>
solnic: but yeah, imo we're not much better than what we complain about (well, currently, until it's fixed)
<solnic>
I’m pretty sure dkubb did this just to quickly upgrade to equalizer but he needed adamantium inclusion too so he did the trick with inheriting equalizer and plugging adamantium in automatically
<solnic>
so, this code is in a transition mode right now
<snusnu>
of course
<solnic>
yes I agree
<solnic>
it’s very aggressive and I never ever liked that
<solnic>
to the point where dkubb and mbj thought I hate adamantium which wasn’t the point
<solnic>
I hated the fact it freezes stuff it doesn’t own, I mean the way we use(d) it
<snusnu>
yeah me too, it's too invasive, hah, yeah, i remember related sentiments :p
<solnic>
yup :)
<solnic>
let’s bitch about this in Berlin ;D
<snusnu>
it's totally cool to deep freeze what we own, a great way of ensuring immutability, but yeah, once we step out our boundaries, we're essentially doing core extensions
<snusnu>
hah yeah!
<snusnu>
well, not core extensions, but worse, core modifications
<solnic>
yes
<snusnu>
the fun thing is, that we modify, in order to not be able to modify anymore
<snusnu>
lol
<solnic>
yes that’s very abstract lol
<snusnu>
hehe
<solnic>
I will modify it so you won’t be able to modify it further :D
<snusnu>
!
cored has quit [Ping timeout: 248 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
cored has quit [Ping timeout: 264 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
mbj has quit [Quit: leaving]
snusnu has quit [Quit: Leaving.]
<cored>
hello
snusnu has joined #rom-rb
mbj has joined #rom-rb
cobbr2 has joined #rom-rb
<mbj>
snusnu: planning eurucamp workshop
<mbj>
solnic: lets do it her
<mbj>
solnic: I dislike to copy informations between two pns :D
<mbj>
My idea, pick a bad repo, and explain each tool we use (we'd setup devtools correctly before).
<mbj>
We can use some minor stuff from https://github.com/mbj/{request,response,assets,vanguard,inflecto,unparser,esearch,concord,....}
<mbj>
All have room to improve.
<mbj>
the idea is to introduce each tool we use
<mbj>
short
<mbj>
executing it on the commandline, while beaming it on the wall
<mbj>
We can explain the metrics for each tool on real world code
<mbj>
Than we can show the code
<mbj>
Explaining why it is bad
<mbj>
and how we'd attack it
<mbj>
We can also improve stuff
<mbj>
for ourselves
<mbj>
Once we did an iteration we ask the audience to try for theirselves.
<mbj>
We walk around and help
<mbj>
The audience will PR
<mbj>
The PRs should be as small as possible!
<mbj>
So we can discuss them
<mbj>
So we should add a github account to the list of requirements, mom
<mbj>
ping :D
<solnic>
yeah that’s how I imagined that as well
<solnic>
sorry I was helping with Ivo
<solnic>
mbj: I’d like to use some of the rom repos
<solnic>
the code is simple there
<mbj>
solnic: +1
<solnic>
I’ve got some stuff excluded in reek
<solnic>
we could refactor some parts
<mbj>
solnic: yeah
<mbj>
I imagine the entry barrier for rom might be to high?
<solnic>
and some methods are complex causing higher flog score
<solnic>
not sure
<solnic>
the code is really really simple in rom
<mbj>
But TBH, lets just TRY
<solnic>
yeah :)
<mbj>
I love coaching
<snusnu>
nah, not too high, also, it's better for us and everyone else to work on something actually useful, even in a workshop
<solnic>
I also think it would be exciting for people to hack o rom
<mbj>
Do this at my current clients job all the time.
<mbj>
Just coach devs and review PRs with nitpicking :D
<solnic>
totally
<solnic>
I love that too
<mbj>
I love to explain my thoughts an development style over and over again
<mbj>
mostly because the explanation improves
<mbj>
and I like the moment brains pick it up!
<solnic>
what about non-real-code examples?
<solnic>
I know from my experience that it’s HARD to come up with such examples
<mbj>
Depending on what repo we pick, it will be the first time I "contribute" to rom-* :D
<mbj>
solnic: I have very good mutant examples
<mbj>
But these are in my clients coe
<solnic>
mutant examples as in using mutant code base to show off metric tools?
<mbj>
*code
<mbj>
mutant IS a metric tool :D
<solnic>
dude, I know
<solnic>
I’m asking if you’re talking about using mutant code base as an example playground
<mbj>
why not
<mbj>
problem: zombie is not stable currently
<solnic>
or if you’re talking about nice cases for mutation testing
<mbj>
dkubb refactored some code, and unparser is not able to reproduce it
<solnic>
:D
<solnic>
that’s too funny
<mbj>
dkubb beat unparser :D
<solnic>
ok but do we want to come up with some examples?
<solnic>
or just focus on real code?
<snusnu>
let's fix equalizer, support super in concord, make adamantium less aggressive, refactor flogged/reeking rom code
<mbj>
but undead unparser will strike back soon, giving zomboe some live
<mbj>
why not!
<solnic>
snusnu: during workshop? :D
<snusnu>
whynot?
<mbj>
And do this refactoring "guarded with metrics"
<mbj>
Why not, yeah.
<solnic>
too much work imo
<snusnu>
really?
<solnic>
requires some background
<solnic>
yeah
<snusnu>
i'd love it if after the workshop, people had commits in rom
<mbj>
That is the reason I purposed mbj/*, request and response are DEAD simple. And we all have enough web backround to get the intent.
<solnic>
we can’t do stuff w/o knowing if it’s gonna trigger feedback from tools
<mbj>
*intent of this libs.
<solnic>
there’s risk it won’t show off anything
<mbj>
lets use metrics against rails </rofl>
<snusnu>
lol
<solnic>
we have 2 hours
<solnic>
not 2 decades
<mbj>
enough to run flog against rails :D
<solnic>
:)
<mbj>
Man, I need to find 1 week for mutant
<mbj>
making minitest stable and publish rails score, harr harr.
<mbj>
*minitest killer
<snusnu>
nobody would care
* snusnu
ducks
<mbj>
lulz
<mbj>
I'd care
<snusnu>
iknow
<snusnu>
:p
<mbj>
Do you think I du that stuff four YOUR pleasure snusnu :D
<snusnu>
oh you don't?
<mbj>
nope, sorry :D
<snusnu>
damnit
<mbj>
lulz
<mbj>
sorry, back to topic
<snusnu>
i knew it
<snusnu>
heh
<mbj>
(its like rails is triggering some aggressivity, deeply hidden in my brain)
<mbj>
So, we'll do this "freestyle"
<mbj>
Adhoc?
<mbj>
I'm good in this.
<mbj>
Or should we prepare repo?
<mbj>
BTW, I'm drunk already, dont take me tooo serious :D
<mbj>
Enjoing beer in munich :D
<snusnu>
why not introduce the tools, code one small (but useful) fix for everyone to see and follow (including typical workflow, like PR) .. then offer some useful low hanging fruit, and everyone who takes the chance, should send a PR close to the end of the 2h
<snusnu>
and we do the rest of the low hanging fruit "together"
<snusnu>
i'd be surprised if for any of the low hanging fruits, all of devtools would be happy on first spike
<snusnu>
after that, everyone in the room would've essentially done a successful rom PR, or at least watched closely how it's done
<mbj>
snusnu: good
<mbj>
so we need to identify that "low hanging fruit"
<snusnu>
as i said, already identified reek exclusions and flog threshold in rom, super support for concord, adamantium fix, equalizer fix (the last 2 maybe being a bit too initiated, but yeah who knows)
<snusnu>
plus i'm sure we can think of other stuff
<mbj>
snusnu: okay
<snusnu>
we could just look at our reek configs
<snusnu>
all the PRs would of course need to include mutcoved tests
<snusnu>
so yeah, i'd guess we'd pretty much exercise all of devtools with any little PR
<snusnu>
yardstick ...
<snusnu>
there's room for 10 people, assuming not everyone takes up a PR, i'm pretty certain we can come up with ~5-7 low hanging fruit
kleech has joined #rom-rb
<snusnu>
btw, i'm leaving for berlin in ~2h so i don't have much time left now
<solnic>
snusnu: I agree
<solnic>
so you think working on real code is more beneficial and interesting?
<snusnu>
i think that if we have simple, "isolated" tasks, the complexity of the rest of the code in the respective project is no real problem .. to the contrary, it might show people that isolated tasks are oftentimes easy, even if they might fear infamiliarity with the project in general
<snusnu>
i think so, yes … you get the feeling of having achieved something real
<snusnu>
also, having a commit in rom, is, well, having a commit in rom
<snusnu>
:p
<snusnu>
people could also pair program on any given issue
<cored>
hello all
<cored>
planning a workshop, seems cool
<cored>
you guys should try with me on those low hanging fruits before the workshop
<solnic>
yeah that’s actually a good idea cored :)
<cored>
also, I was thinking in testing rom today, was wondering something is there a mechanism to switch repositories?
<snusnu>
bbiab
<cored>
like injecting an actual persistence store instead of the in memory store
<cored>
DI if you will
<cored>
snusnu: also I think I'm ready to dedicate at least 2 hours on devtools jc
<solnic>
cored: you setup repositories inside an environment instance
<solnic>
so, that’s your mechanism
<cored>
if we are talking about Rails you are saying something like ENV['test'] ?
<cored>
it's seems like Sinatra's register stuff is more explicit on that regard, what do you think?
<solnic>
cored: ugh no
<solnic>
cored: ROM::Environment instance
<solnic>
holds registry of repositories, schema and mapped relations
<solnic>
how you manage that instance, how you access it, is totally up to you
<solnic>
I’m sure somebody will come up with rom-rails
<solnic>
that will introduce some conventions
<solnic>
mbj: I don’t think a total ad-hoc stuff will work
<solnic>
we should pick up which repos we want to work on
<solnic>
and we should prepare an introduction to devtools
<solnic>
I can put some slides together
<solnic>
and really quickly introduce devtools and our development style
<cored>
solnic: oh
<cored>
solnic: did not know about that
<solnic>
cored: in ROM we decided to not use global state for such stuff
<solnic>
hence environment object
kleech has quit [Remote host closed the connection]
<solnic>
it’s so much better than it was initially with keeping stuff inside global constants
<solnic>
it also isolates things in a very clean way
<cored>
interesting, will try to build a simple example to test it out
<cored>
at least with the in memory adapter at first
<solnic>
cored: you could wait until we release first version
<solnic>
unless you want to deal with setting up dependencies manually in the gemfile
<solnic>
we rely on an unreleased stuff in axiom
<cored>
oh, cool then I can wait
<solnic>
and axiom memory adapter is not released yet
<solnic>
we’ll push it during the weekend
<solnic>
during EuruCamp conf
<cored>
well I think I'm still open to be the guinea pig
<solnic>
which is kinda epic given that we first started talking about DataMapper 2 with snusnu during first edition of EuruCamp 2 years ago heh :)
<solnic>
cored: yeah that’s cool too
<solnic>
cored: I will put together a demo “app” tomorrow
<solnic>
you could use it as a template
<cored>
oki doki
<solnic>
it’s gonna be really really sweet for reading data already
<solnic>
the setup is trivial (and we’ll make it even more trivial)
<solnic>
write support is totally experimental but I’d love to hear some feedback already
<cored>
I would love to experiment retrieving data from web services as datasources
<mbj>
Sorry guys
<mbj>
I was invited to a beer by funniy chineese people
<mbj>
(sitting in a bar, btw)
<solnic>
cored: yeah I want to fetch stuff from github for the demo purposes
<solnic>
mbj: cool :)
<solnic>
mbj: OK I will try to put something together before Friday
<solnic>
I think going through rom’s reek configs is a nice idea
<mbj>
solnic: super sorry for droping out of discussion
<solnic>
oh we need some uncovered mutations too
<mbj>
solnic: no problem :D
<solnic>
I could prepare special branches w/o my recent “killer” commits
<mbj>
uncovered mutations, I can add more mutation operatiors quite easily
<solnic>
nah
<solnic>
it’s easier/faster to go back in history and show how this stuff works
<mbj>
solnic: okay
<solnic>
I prefer to show something I already did
<mbj>
solnic: +1
<mbj>
(remember, I'm drunk)
<mbj>
OMG, eurucamp will end up in a big "Besäufniss"
<mbj>
snusnu, pls translate :D
<cored>
booze party
<cored>
?
<jfredett>
that's the best word
<jfredett>
I have ever heard
<jfredett>
Besäufniss
<jfredett>
what language is that?
<snusnu>
booze party pretty much nails it
<snusnu>
:p
<snusnu>
german
<jfredett>
I <3 the germans.
<snusnu>
solnic: think of an additional commit you could do, and don't write tests for it
<solnic>
snusnu: btw we’re leaving tomorrow in the morning, should be there around 17-18
<snusnu>
solnic: why repeat stuff
<snusnu>
;)
<mbj>
jfredett: german
<snusnu>
solnic: sweet, we're leaving in ~2h or something like that, so we should be awake by then too ;)