solnic changed the topic of #rom-rb to: Ruby Object Mapper | Mailing List: https://groups.google.com/forum/?fromgroups#!forum/rom-rb | Logs: http://irclog.whitequark.org/rom-rb
zirni has joined #rom-rb
zirni has quit [Ping timeout: 256 seconds]
zirni has joined #rom-rb
zirni has quit [Ping timeout: 248 seconds]
zirni has joined #rom-rb
zirni has quit [Ping timeout: 248 seconds]
paul_ has joined #rom-rb
<paul_> hiall
paul_ has left #rom-rb [#rom-rb]
<Gibheer> morning
<dkubb> Gibheer: good morning
zekefast has quit [Read error: Connection timed out]
solnic has joined #rom-rb
<solnic> dkubb: still there?
solnic_ has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
solnic_ has quit [Read error: Connection reset by peer]
solnic has joined #rom-rb
solnic_ has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
solnic_ has quit [Client Quit]
solnic has joined #rom-rb
solnic_ has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
mbj has joined #rom-rb
mbj_ has joined #rom-rb
mbj has quit [Ping timeout: 268 seconds]
mbj_ is now known as mbj
mbj has quit [Ping timeout: 240 seconds]
mbj has joined #rom-rb
solnic_ has quit [Quit: Leaving...]
postmodern has quit [Quit: Leaving]
mbj has quit [Ping timeout: 246 seconds]
mbj has joined #rom-rb
snusnu has joined #rom-rb
solnic has joined #rom-rb
jonhinson has joined #rom-rb
jonhinson has quit [Quit: jonhinson]
<solnic> dkubb: it uses ruby-install / chruby to manage rubies, check it out if you never tried it :)
<mbj> solnic: awesome!
<mbj> solnic: Did not had the time to review your rom-session changes
<mbj> Will do so in 5h train trip thursday.
<solnic> mbj: cool, don't look at diff. it's a rewrite :/
<solnic> gotta run ttyl
<mbj> solnic: hehe
<mbj> solnic: As long my loader/dumper concept made it in :D
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8367928
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] rom-rb/devtools#16 (master - 8dfbcbd : Markus Schirp): The build has errored.
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8367940
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] rom-rb/devtools#17 (master - b2117e9 : Markus Schirp): The build has errored.
<dkubb> good afternoon
<dkubb> solnic: that's awesome, I'll check it out
<dkubb> solnic: I'll probably start beefing it up for personal dev, so I can do all my oss work in it if that's ok with you
<mbj> dkubb: hola!
<mbj> dkubb: I released mutant-0.3.beta4 with all our latest fixes.
<mbj> dkubb: I also released adamantium-0.0.8 with ice_nine-0.8.0 dependency.
<dkubb> sweet
<dkubb> ahh, thanks for that
<dkubb> when you used gem-release do you use the "tag" option?
<dkubb> mbj: I'll test that gem against my other projects
<mbj> dkubb: forgot to make a tag, I normaly do.
<dkubb> no worries
<mbj> mom
<dkubb> I was thinking about making something that could retroactively tag gems
<mbj> done
<dkubb> it would have to download the gem and then find the point in the git history when it matches the source the closest, and then add the tag to it
<solnic> dkubb: yeah sure
<dkubb> I have a bunch of gems where I've forgotten to tag properly
<mbj> dkubb: I think this is wasted time!
<mbj> Dont see a value.
<mbj> Maybe tagging the latest release of each major branch
<mbj> And this exact by hand.
<dkubb> solnic: I was going to make a vm for bloomcrush, but it'd be nice to have something unified and simple. I doubt there'll be any conflicting deps. I generally would follow the same approach on my oss projects as for personal/work projects. only ths oss vm is going to have *more* deps than I would normally run, because it needs to have multiple rubies and datastores
<dkubb> mbj: I do see some value in being able to find a specific version via a tag
<dkubb> mbj: but yeah, it would only be done if it was to fix some kind of pain
<mbj> dkubb: I'll adopt that vm also, but I'll try to use lxc.
<mbj> dkubb: If you have an inexact tag this creates major debugging pain
<mbj> dkubb: So just tag the latest release of each major branch (semver heads).
<mbj> And this by hand.
<dkubb> yeah, lxc looks neat
<dkubb> I don't have any specific use cases for it right now
<mbj> virtualbox is pain
<mbj> And consumes far more resources than lxc.
<mbj> I dont need a full operation system.
<dkubb> but I wonder if it'd be nice for separating each service into a container
<mbj> A systemcall isolation is IMHO enough.
<dkubb> I run vagrant/virtualbox since I'm on osx
<dkubb> so no lxc
<mbj> jo, I see
<dkubb> but once I'm in the vm I may look at lxc
<mbj> I use some "handgrown" lxc scripts currently.
<mbj> Works, but is pain.
<mbj> Did not made it into something easy to reuse.
<dkubb> vagrant is dead simple to use once you get it setup
<dkubb> I can do it. I've been working in a vm full time for the last year
<solnic> we should remember about tagging
<mbj> yeah, I also used vagrant, but that was on my underpowered box
<mbj> Was to heavyweight for my machine.
<solnic> I really don't like when ppl don't tag releases
<mbj> solnic: I did not tagget the mutant betas :(
<mbj> But I'll tag the nonbetas.
<mbj> The betas are for internal consumption in hour ecosystem.
<solnic> yeah final releases are more important
<solnic> I guess skipping pre-preleases is ok
<dkubb> I actually think it wouldn't be too hard to match up source with git releases.. it might be a fun diversion for an afternoon
<mbj> dkubb: I reduced that mutant crash in Aggregate::Mean.call to (left - right) / foo
<dkubb> you could do it like git bisect, and do a binary search to find similarities in the text
<dkubb> mbj: oh really? I wonder if that was with something slightly older in axiom? last night I changed some of the division operations to use a Rational instead, so there shouldn't be any uses of #/ in the source afaik
<dkubb> either way, it's good to fix it
<dkubb> mbj: wdyt about exercising unparser/parser by pointing it to something like ruby spec, parsing all the code first, then unparsing it, evaling it, and then running the specs?
<mbj> dkubb: Yeah it is an older source!
<mbj> dkubb: Yeah, that will find 99.99% of all edge cases.
<dkubb> mbj: I'm just trying to think of things that could exercise parser/unparser
<mbj> I'll do so later!
<mbj> Would also deserve a blog post, IMHO.
<dkubb> mbj: maybe a simple runner, where you'd specify a ruby file, it would parse/unparse/eval, and then run the specs in the file
<mbj> Once done :D
<dkubb> it seems like a runner like that could almost be a one-liner
<mbj> yeah
<dkubb> eval Unparser.parse(Parser.new(File.read path)) or something
<dkubb> (not sure if that's the api)
<dkubb> who cares if it loads it's deps in via normal ruby, the point is the spec itself will be run through parser. then you can just do find spec -type f | xargs parser_test.sh
<dkubb> it might not be particularly fast, but I bet it'd find most of the edge cases like you say
<mbj> API is: Unparser.unparse(Parser::CurrentRuby.new.parse(File.read(path)))
<dkubb> it's better than waiting for people to report them
<dkubb> hehe
<dkubb> that's pretty awesome btw
<mbj> dkubb: Yeah, I planned this, but I dont had the time.
<mbj> I battle tested to_source with this strategy.
<dkubb> I'm surprised there's no parse_file method, not that it would be particularly hard to use File.read
<dkubb> oh yeah?
<dkubb> I didn't know that
<mbj> But I did not used the result
<mbj> Just made shure it did not crashed while unparsing.
<mbj> So 50% of the accurancy.
<dkubb> that's still a good first-run
<mbj> I'm limited in time, as always.
<dkubb> not crashing is basically the first step
<mbj> Lets say it this way, once I have 0 reproducible problems I'll do that strategy.
<dkubb> people who want to contribute to ROM could help with this stuff
<dkubb> tooling is just as important as the actual project
<mbj> Currently I'm fighting (left - right) / other
<dkubb> perhaps even more-so, since it's benefits will likely outlast ROM's, and help the whole community
<mbj> yeah
<dkubb> not that I don't think ROM is important
<mbj> I think mutant is a really nice side effect of the project.
<dkubb> I just see us as a slice of the community. all of ruby needs these tools
<mbj> Running mutant on axiom
<dkubb> a web framework built ROM style with mutant will be far more stable than Rails or even Sinatra
<mbj> I realized web frameworks are far from being hard and bloated.
<mbj> You need: Routing, uri-generation, a business logic context and presenters and a view layer.
<mbj> routing and uri generation are inverse from each others
<dkubb> I think you could break up some of those into related gems
<mbj> Could be handled via a dedicated library
<mbj> Yeah, what I'm talking about.
<dkubb> the problem is everyone just gives up and starts making a monolithic framework because it's easier
<mbj> In some 'plain rack' projects I used rack-mount
<mbj> Do not like the code inside, but nice router api.
<mbj> dkubb: Making a monolitic mutation covered framework is a LOT OF HARDER!
<dkubb> mbj: does mutant work with ruby 2.0?
<mbj> jo
<mbj> dkubb: it does, I develop it under 2.0
<dkubb> cool
<mbj> But it does not have a keyword argument mutator, these are nooped for now.
<mbj> BTW mutant-0.3 finds new mutations also in axiom.
<dkubb> nice
<dkubb> axiom is not 100% mutation covered yet
<dkubb> it's close, but some of those extend issues were blocking me
<dkubb> mbj: what should I change this to in the devtools mutant-0.3 branch: https://github.com/rom-rb/devtools/blob/master/tasks/metrics/mutant.rake#L4 ?
<mbj> dkubb: add mri-2.0.0 and rbx-2.0.0
<mbj> sorry, no rbx-2.0.0 now :D
<mbj> And do ::#{config.namespace}*
<dkubb> yeah it uses "*" now
<dkubb> this is what the task looks like now: https://github.com/rom-rb/devtools/blob/mutant-0.3/tasks/metrics/mutant.rake .. about to update that version
<solnic> mbj: it's a bit confusing that '::Foo::Bar::*' won't work
<mbj> solnic: I planned to add it, as "do not include root" matcher.
<dkubb> imho I think a regexp would be nicest for the api
<mbj> solnic: ::Foo* would mutate ::Foo, ::Foo::Bar, ::Foo::Baz
<dkubb> but I know you said you were trying to get away from ObjectSpace
<mbj> ::Foo::* would not mutate ::Foo, but ::Foo::Bar and ::Foo::Baz
<dkubb> I thought ObjectSpace was supported everywhere now
<mbj> dkubb: Nokogiri has Class instances where #name is patched to return a non String.
<mbj> So mutant will blow up
<dkubb> that's just crazy
<mbj> Jo
<dkubb> that seems like a bug actually
<mbj> I have workarounds in nearly all my projects for his
<dkubb> do those instances respond to #to_s
<dkubb> or #to_str
<mbj> monkey patches required from spec_helper to workaround matcher
<mbj> dkubb: I did not checked.
<mbj> Just checked if Class#name is String
<dkubb> oh I see
<dkubb> I would probably just call #to_s on it and if someone messed up the interface, too bad for them :)
<mbj> dkubb: jo
<mbj> dkubb: */re mutant.rake
<dkubb> mbj: what's "jo" mean btw ? ;)
<mbj> dkubb: German slang.
<mbj> dkubb: Something between yes and yeah
<dkubb> heh
<mbj> So guys, have to run.
<mbj> cu tomorrow, but I'll try to do clients work
<mbj> Did not find my way into enough clients hours somehow the last week
mbj has left #rom-rb [#rom-rb]
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] rom-rb/devtools#18 (mutant-0.3 - be913fc : Dan Kubb): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8369692
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8369813
<travis-ci> [travis-ci] rom-rb/devtools#20 (mutant-0.3 - 61c7903 : Dan Kubb): The build has errored.
<solnic> dkubb: feels so good on linux
<solnic> looks like mutant is crashing and it has something to do with bogus :(
<solnic> dkubb: check this out: https://gist.github.com/solnic/5846686 mutant output from rom-session :)
<solnic> 86%
<solnic> not bad given it's a quick spike (although TDDed from the start)
<dkubb> that's pretty good for a first pass
<dkubb> actually that's really good
<dkubb> mutant will always point things out that you didn't think about, but that's really good
<dkubb> solnic: mbj was saying it should be possible to parallelize mutations
<dkubb> they're all independent of each other, so there's no reason they can't be done in parallel.. at least unit tests without global side effects
<solnic> would be nice
<dkubb> I've been using parallel_tests with integration tests too
<dkubb> there's some stuff you can do to use different dbs with each process
<solnic> I used rspec-unit mode and it took 70 seconds
<dkubb> oh, there was one other thing I was going to mention to the team, rake has this thing called multitask
<dkubb> it can run rake tasks in parallel
<solnic> oh that's sweet
<solnic> didn't know about that
<dkubb> I tried it on one work project, but since it runs them in separate threads there were a few threading related bugs that came up
<solnic> right
<dkubb> I'd like to try it with devtools to see if we can fix the bugs upstream
<solnic> dkubb: ok I gotta hit bed
<solnic> good night and ttytm
solnic has quit [Quit: Leaving...]
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/devtools#22 (mutant-0.3 - d98b0fe : Dan Kubb): The build has errored.
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8371289
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/devtools#24 (master - 4b4f476 : Dan Kubb): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8371333
travis-ci has left #rom-rb [#rom-rb]
postmodern has joined #rom-rb