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
jgaskins has quit [Quit: This computer has gone to sleep]
snusnu1 has joined #rom-rb
jgaskins has joined #rom-rb
snusnu1 has quit [Client Quit]
snusnu1 has joined #rom-rb
snusnu1 has quit [Client Quit]
judofyr has joined #rom-rb
snusnu has joined #rom-rb
judofyr has quit [Ping timeout: 245 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 252 seconds]
CraigBuchek has quit [Quit: Leaving.]
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 248 seconds]
cored has quit [Ping timeout: 252 seconds]
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 252 seconds]
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 272 seconds]
snusnu has quit [Quit: Leaving.]
snusnu has joined #rom-rb
snusnu has quit [Client Quit]
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 252 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 248 seconds]
skade has joined #rom-rb
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 252 seconds]
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] dkubb/axiom#325 (master - e868f77 : Dan Kubb): The build has errored.
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/dkubb/axiom/builds/17528088
jgaskins has joined #rom-rb
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] dkubb/axiom-memory-adapter#56 (master - 6af8046 : Dan Kubb): The build was broken.
travis-ci has left #rom-rb [#rom-rb]
skade has quit [Quit: Computer has gone to sleep.]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] dkubb/axiom-sql-generator#18 (master - 5a31455 : Dan Kubb): The build was broken.
dkubb has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
judofyr has joined #rom-rb
judofyr has quit [Ping timeout: 252 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<elskwid> solnic: we should have a morpher jam session soon.
<elskwid> solnic: :)
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
judofyr has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
judofyr has quit [Ping timeout: 272 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
Frost has quit [Quit: WeeChat 0.4.2-dev]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
<dkubb> solnic: fyi I just released axiom 0.2.0
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] dkubb/axiom-memory-adapter#58 (master - 4920a1b : Dan Kubb): The build was broken.
kleech has joined #rom-rb
lgierth has joined #rom-rb
skade has joined #rom-rb
dkubb has quit [Quit: Linkinus - http://linkinus.com]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
cored has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
judofyr has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
cored has quit [Ping timeout: 264 seconds]
cored has joined #rom-rb
cored has quit [Changing host]
cored has joined #rom-rb
solnic has quit [Quit: Leaving...]
develop7 has joined #rom-rb
judofyr has quit [Remote host closed the connection]
judofyr has joined #rom-rb
judofyr_ has joined #rom-rb
judofyr has quit [Read error: Connection reset by peer]
judofyr_ has quit [Ping timeout: 264 seconds]
mkristian has joined #rom-rb
jgaskins has joined #rom-rb
kleech has quit [Read error: Connection reset by peer]
kleech has joined #rom-rb
jfredett-w has quit [Ping timeout: 265 seconds]
xybre has quit [Ping timeout: 264 seconds]
mkristian has quit [Ping timeout: 245 seconds]
jdsiegel has quit [Ping timeout: 245 seconds]
jdsiegel has joined #rom-rb
joakimk has quit [Ping timeout: 272 seconds]
joakimk has joined #rom-rb
jfredett-w has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
solnic has joined #rom-rb
mkristian has joined #rom-rb
xybre has joined #rom-rb
CraigBuchek has joined #rom-rb
jfredett-w has quit [Read error: Connection reset by peer]
mbj has joined #rom-rb
<mbj> solnic: hey man!
<mbj> solnic: Lets stop communication via comments on GH, and pair on morpher.
<mbj> :D
<solnic> mbj: that's cool, I was looking for you here before I posted comments :)
<solnic> mbj: yeah I'm all for that
<mbj> solnic: hangout now? I'll screnshare and show you how morpher works?
<mbj> solnic: I could also fix the gists I exchanged with snusnu and you can run them locally.
<mbj> solnic: fixing this one to be executable: https://gist.github.com/mbj/8562152
jfredett has joined #rom-rb
<mbj> solnic: This was the scratchpad for discussion with snusnu, (we had problems with screensharing).
<solnic> sure, gimme a sec I just need to get sth to drink
<mbj> Heh.
<mbj> nice.
<mbj> I'll prep an espresso
snusnu1 has joined #rom-rb
<snusnu1> yo mbj and solnic, yes, i am using morpher in my app, it can now do everything i used to do with ducktrap
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
cored has quit [Ping timeout: 245 seconds]
cored has joined #rom-rb
<solnic> snusnu: we're hanging out with mbj at the moment
<snusnu> have fun then, guys!
jgaskins has joined #rom-rb
postmodern has quit [Quit: Leaving]
snusnu has quit [Quit: Leaving.]
mkristian has quit [Quit: bye]
jgaskins has quit [Quit: This computer has gone to sleep]
snusnu has joined #rom-rb
<solnic> snusnu: hey
<solnic> snusnu: please work on the morpher switch if you have time
<solnic> I'll learn morpher anyway when porting virtus to use it
<snusnu> solnic: yeah, i will do that
<solnic> snusnu: re your comment
<solnic> snusnu: rom-mapper used w/o rom relation?
<solnic> you mean, for pure mapping stuff?
<solnic> just a convenient dsl on top of morpher?
<snusnu> mbj: btw, i was truly stupid yesterday in not being able to put :parse_int to use, it's easy, i now know how to do it and do it already ;)
<snusnu> solnic: yeah, simply a dsl
<snusnu> solnic: there will be many dsls for morpher
<snusnu> solnic: validations/vanguard is another one
<solnic> snusnu: we will see
<snusnu> yeah, it's nothing i'd like to start right away
<solnic> since we're still clueless how rom should look like
<solnic> I'm gonna collapse the repos
<snusnu> yeah, go ahead
<solnic> esp that looks like everybody just agreed to it
<solnic> (dkubb just replied)
<solnic> snusnu: so, I'm gonna do that today, probably now
<solnic> snusnu: unless you want me to wait until rom-mapper works on morpher?
<snusnu> solnic: hmm, i don't see a reason why you should wait for that
<snusnu> solnic: i'm going to do it, definitely before tuesday next week, but yeah, why wait for it
<solnic> snusnu: me too but I just wanted to check with you
<solnic> snusnu: just to double-check - we still don't give a damn about preserving git history in such cases?
<solnic> right? RIGHT?
<solnic> please say we don't :)
<solnic> unless it's now easier than before to do that in git
<solnic> actually, I've become curious, lemme google
<snusnu> solnic: i can only say I don't :p
<snusnu> solnic: i mean, it should be possible to merge it, but if you don't feel like it, i don't care much
<solnic> I will timebox it. I will either do it or fail miserably
<snusnu> hah
<solnic> snusnu: re morpher, I would expect every project that uses it to expose its own DSL that fits within a given domain
<solnic> for instance: virtus could be one
<solnic> rom could have its own
jgaskins has joined #rom-rb
<solnic> notice that both projects have completely different DSLs
<solnic> I'm not sure if we could have one convenient DSL for such a powerful beast as morpher
<solnic> since you can do crazy shit with it I'd expect many many DSLs on top of it
<solnic> along with various extensions to morpher itself
<snusnu> having only one would make no sense, morpher itself should never provide more than the sexps imo
<solnic> yeah I agree
<snusnu> but there could and imo should be one dedicated gem, that makes mapping from nested hashes to objects easy
<snusnu> and that by itself has nothing to do with rom
<snusnu> like i pointed out in the parameter sanitization usecase
<solnic> snusnu: see, that's why I want to collapse those repos
<solnic> we can't even know what will come out of that
<snusnu> yeah
<solnic> how could we possibly split those repos so early
<solnic> well, we couldn't, I'm collapsing with crazy git magic tricks RIGHT NOW
<snusnu> awesome!
dkubb has joined #rom-rb
<dkubb> good morning
<snusnu> hey dkubb
<dkubb> git subtree ftw
<solnic> morning dkubb
<solnic> thanks for the axiom release
<dkubb> yeah I was working up to it
<solnic> everything's working fine
<dkubb> had to make sure I could eliminate all the git references in the Gemfiles and make sure they all still passed ci
<solnic> yeah I need to somehow build an env switch where I could say "ok buddy, today we're working against master for this and that repos" :D
<solnic> + it's not that simple, sometimes you want to use master for X repo and something-else for Y repo etc
<solnic> messing around with Gemfiles is terrible
<solnic> anyhow, git subtree, bbiab ;P
<dkubb> yeah, that's some git vodoo right there
<solnic> I did that in the past in DM1
<solnic> felt like voodoo for sure
<dkubb> I don't know if it's part of git itself yet, or still a plugins
<dkubb> *plugin
<snusnu> solnic: re the extraction of a mapping dsl for morpher, i'm gonna wait with that until i'm happy with how i construct my param object mappers with morpher sexps, and only *then* distill that knowledge into a DSL gem
<solnic> snusnu: sure that's a reasonable thing to do
<snusnu> solnic: lots of stuff in my app can still be dried up, and i assume that after a few cycles of doing so, i'm in a better position to come up with something .. because i've *used* it already then
kleech has quit [Remote host closed the connection]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<snusnu> mbj: around?
skade has quit [Quit: Computer has gone to sleep.]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
CraigBuchek has quit [Quit: Leaving.]
jgaskins has quit [Quit: This computer has gone to sleep]
kleech has joined #rom-rb
jgaskins has joined #rom-rb
kleech has quit [Remote host closed the connection]
<solnic> great now I'm messing around with git filter-tree :D
<snusnu> lol
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
lfox has joined #rom-rb
jgaskins has joined #rom-rb
<solnic> this gonna take a while O_o
<solnic> as in, the rewriting takes a while
skade has joined #rom-rb
<snusnu> solnic: just cause i'm curious, what "problems" are you experiencing?
<solnic> snusnu: with what?
<snusnu> well with the rewriting :)
<solnic> git rewriting
<solnic> history
<solnic> slow
<solnic> :)
<snusnu> ahh ok heh
<solnic> I was just whining on irc, move on ;)
<snusnu> lol
<solnic> ok almost there
mbj has quit [Quit: leaving]
jgaskins has quit [Quit: This computer has gone to sleep]
skade has quit [Quit: Computer has gone to sleep.]
lfox has quit [Quit: ZZZzzz…]
skade has joined #rom-rb
<xybre> I haven't taken the plunge into git subtree yet. I've been using submodules pretty extensively though. Once you get the incantation right its not so bad.
<xybre> Hahaha, jsut kidding, its horrible.
<dkubb> lol
<dkubb> I use submodules for some things just fine
<snusnu> solnic: i've extracted this from our app: https://github.com/snusnu/subway/blob/master/lib/subway/handler/morpher.rb
<dkubb> like salt formulas I want to reference
<snusnu> solnic: so i can do stuff like: http://pastie.org/private/h8nlttrckqnsq0viooeaa
<xybre> dkubb: When I really dislike someone in an interview I'll ask them "What command removes a submodule from a git repo"
<snusnu> that's how damn easy it is to do input sanitization/mapping with morpher
<snusnu> it's too cool
<snusnu> this is also the non-rom usecase i mentioned in the issue recently
<dkubb> xybre: that's evil. I had to google it and I didn't realize there was: git submodule deninit <module>
<dkubb> we deinit
<dkubb> *er
<xybre> dkubb: It was only added this past year iirc
<solnic> today I am a git plumber
<solnic> xybre: years have past, I still wouldn't answer that question
<xybre> dkubb: Its kinda trick question anyway, because that still doesn't remove the submodule, you then have to remove it from the .gitmodules, and git rm -rf the directory. Then you can commit the removal.
<solnic> yeah submodules is the most unfriendly feature ever made
skade has quit [Quit: Computer has gone to sleep.]
<xybre> I mean, its pretty easy to automate. A git-submodule-rm wouldn't be hard to make. Do I need to do it myself?
<xybre> I wonder if its one of those weird Linux quirks, where he thinks thats okay and will refuse to change it.
skade has joined #rom-rb
kleech has joined #rom-rb
<snusnu> since i'm inside morpher atm, here's how to add a specific coercion for it, i've only added int<->string so far: https://github.com/mbj/morpher/blob/master/lib/morpher/evaluator/transformer/coerce.rb
<snusnu> and that one still needs to be sharpened (by creating a dynamic regex to scan the string in different radix/bases before turning it into an int)
<snusnu> eventually, coercions will probably be a morpher plugin (coercible)
<cored> hello all
<cored> solnic: I was thinking about an article from you today, testing controllers
kleech has quit [Ping timeout: 248 seconds]
<cored> solnic: I have mixed feelings about testing those still, even when I tested for things like redirect and render new
<solnic> cored: why? testing redirects for various cases is really easy
<solnic> it's great to write those tests because you are begin reminded how terrible controller layer in rails is
<solnic> :D
<solnic> begin/being
<cored> yes
<cored> that's the thing
<cored> I'm working on an app at the moment
<cored> driving myself from a feature file in cucumber, now I went to the part of dynamic behavior for the controller, but I just decide to go ahead and build a new service and test that out
<cored> without adding any logic to the controller at all, which means I won't have to unit test it also. But then again as I said I have mixed feelings about this
<solnic> it's nice to rely on service objects in controller and just use mocks in controller tests
jgaskins has joined #rom-rb
skade has quit [Quit: Computer has gone to sleep.]
cored has quit [Ping timeout: 240 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
develop7 has quit [Ping timeout: 272 seconds]
snusnu has quit [Quit: Leaving.]
<dkubb> usually what I do is make it so the controller is only responsible for taking the parameters and passing them into my service, as well as rendering success or errors
<solnic> yeah that the approach I've taken as well
<solnic> https://gist.github.com/solnic/42784560e8a6b40ba6ce <= that's why I no longer like implicit subject syntax in rspec :/
<solnic> so, # Your branch is ahead of 'origin/master' by 1572 commits. :D
lgierth has quit [Ping timeout: 272 seconds]
snusnu has joined #rom-rb
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/rom/builds/7772261
<travis-ci> [travis-ci] rom-rb/rom#10 (master - e244ddf : Martin Gamsjaeger): The build has errored.
travis-ci has left #rom-rb [#rom-rb]
<xybre> I'm about to write yet another mapper object to convert from this messy data schema (currently dumped into a yaml file) into a sane data model that can be presisted in a database. Likely, we'll need to run this task a few times, during development, testing, and finally in production (once for the bulk import, then again to keep in sync until it goes live).
<xybre> I don't suppose there's any obvious tools to do that that ye might know of.
<snusnu> xybre: i'm about to leave, but for mapping nested hashes into objects, use morpher
<xybre> I'll check it out, thanks snusnu.
<solnic> looks like travis isn't picking up update rom project
<solnic> snusnu: it's all merged buddy
<solnic> snusnu: I'm gonna port your ducktrap in a minute
<solnic> but I will call it "morpher" this time
<solnic> let's finish it up quickly \o/
<xybre> Is morpher the successor to ducktrap?
<solnic> snusnu: btw I'm gonna add that interface for immutable objects to session
<solnic> xybre: yes
<solnic> xybre: and it's mindblowing stuff
<xybre> It says "not released", pretty difficult to use it in production environment then.
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/rom#10 (master - e244ddf : Martin Gamsjaeger): The build has errored.
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/rom/builds/7772261
<solnic> xybre: it will be released soon
<solnic> xybre: we're wrapping up integrating it with rom in the upcoming days
<dkubb> maybe a 0.0.x release can happen soonish?
<solnic> dkubb: yeah I think mbj will just push it once we start using it
<solnic> as in integrate it in rom
<solnic> I'll also refactor virtus to use it
<dkubb> snusnu is already using it in production, right?
<solnic> *cannot wait*
<dkubb> it can handle all the coercion/transformation logic, right?
<solnic> dkubb: don't think so, but he ported his app to morpher yesterday (IIRC it's in development)
<solnic> dkubb: tranformation - yes, coercion - comming soon
<dkubb> using coercible?
<solnic> we briefly talked about coercions with Markus today
<solnic> right, we talked about coercible
<solnic> so, mbj thinks coercible's interface is too wide
<solnic> as in it does too many coercions :D
<solnic> he gave '10e10' as an example
<xybre> Oh, I discovered that we're using Virtus here, and have been since before I was hired (just started here a week ago).
<dkubb> that is a good example. I'd be happy with just integer and float coercion, without scientific notation
<dkubb> maybe we/I got a bit carried away with what we could coerce ;)
<solnic> we talked about refactoring coercible so that morpher can use it
<solnic> but mbj thinks it will be simpler to add coercions directly to morpher
<solnic> mostly because morpher needs inversible coercions
<solnic> maybe coercible will be retired ;)
<dkubb> yeah
<dkubb> we could always extract coercible v2 from it too
<namelessjon> So, speaking as someone who occasionally uses scientific notation on occassion, removing support for it seems bad.
<solnic> yeah exactly
<dkubb> assuming there's a need to use it stand-alone
<solnic> namelessjon: yeah I agree SOMETHING must support this SOMEWHERE
<solnic> we just need to figure good place for that
<dkubb> namelessjon: do you often receive strings from users containing scientific notation and want it to be coerced into a float?
<solnic> we are dealing with various contexts where coercions happen
<solnic> so it's important to use correct coercions in right places
<dkubb> yeah, that's probably the main issue. coercions from a web app are different from coercions from the db, etc
<namelessjon> dkubb: No so much from users, but I have used it as part of some data-munging from csv files.
<dkubb> I would generally want something a bit more restrictive for user input
<dkubb> and a bit wider for trusted data sources
<dkubb> namelessjon: yeah exactly
skade has joined #rom-rb
<solnic> yeah I agree that what coercible can do is handy
<dkubb> solnic: in axiom I need coercions too
<solnic> dkubb: huh I completely forgot!
<solnic> dkubb: where exactly?
<solnic> shit travis is not picking up rom repo :(
<dkubb> being able to invert a coercion is really handy too, since I can propagate writes across those operations (I don't want to get into specifics just yet though until I have a concrete example to show, since it's hard to explain)
<dkubb> solnic: like if you want to coerce a string "y" or "n" into a boolean
<dkubb> solnic: obviously if I can, I want to push that down into the database if it supports it, but for in-memory relations or limited databases I need it
<namelessjon> dkubb: I'm not sure how best to restrict it down, but just dropping it because you wouldn't want it in a webapp is less than ideal
<dkubb> the tuple that comes back would have a boolean value, whereas in the database it would be y/n or 1/0, etc
<dkubb> namelessjon: yeah you're probably right
develop7 has joined #rom-rb
<solnic> dkubb: wait, that's interesting - so you're planning to add that to axiom directly?
<solnic> because I could swear mbj thinks it should be on a higher level, maybe I didn't understand it correctly
<solnic> snusnu: ^^ ?
<solnic> level/layer
<snusnu> solnic, dkubb: yeah, both mbj and i think that this is stuff that should be handled in (axiom) adapters
<snusnu> an axiom schema (with gateway backed relations) should only ever contain "user land" tuples .. that are "readymade" for rom-mapper … then you can reuse queries for reporting where tuples are enough, for ones that map into domain objects
<snusnu> since those db type coercions are db specific, an axiom adapter seems to be the right place to do this mapping
<snusnu> morpher is able to easily do that
<snusnu> when i said "that are readymade for rom-mapper" above, i meant "readymade for the domain"
<solnic> snusnu: wellllll you forgot to mention morpher is missing coercions
<snusnu> a few dedicated hours and we should have the main ones going
<solnic> snusnu: ok, are you gonna work on it? :)
<snusnu> obviously db specific ones aren't harder
CraigBuchek has joined #rom-rb
<solnic> fwiw coercions aren't any kind of major blockers
<solnic> we can easily add them one by one from release to release
<snusnu> solnic: right, i was about to say that
<snusnu> i probably won't have time to do that in the next month, as i'll be on holiday, mostly offline
<solnic> snusnu: I can work on it, from time to time
<solnic> I'd prefer to focus on session after finishing mapper/morpher fun
<solnic> and I gotta say I'd love to prototype that lazy-loading interface I mentioned to you last week
<snusnu> solnic: i can finish the port to morpher within a few hours, i'll leave for a party in a few minutes, but i will *definitely* do it before tuesday
<solnic> snusnu: OK then I'm gonna wait :)
<snusnu> solnic: also, awesome work on the repo merge!
<solnic> snusnu: yeah I'm sure github's background jobs are consipiring to kill me now
<solnic> "bloody hell who pushed 1700 commits at once dammit"
<solnic> the graphs are old btw ;)
<solnic> and travis isn't picking up the build
<solnic> oh well
<snusnu> hehe
<solnic> w00t! looks like travis picked it up
<snusnu> sweet
<snusnu> solnic: looking good my friend .. i need to leave, have a great eve
jgaskins has joined #rom-rb
snusnu has quit [Quit: Leaving.]
skade has quit [Ping timeout: 248 seconds]
skade has joined #rom-rb
jordanyee has quit [Remote host closed the connection]
develop7 has quit [Ping timeout: 264 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<solnic> funny but I noticed that mri is giving us more weird crashes than rbx these days. it used to be the opposite
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<xybre> 2.1 = boom
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<solnic> xybre: yeah now also ruby-head = boom
jgaskins has quit [Quit: This computer has gone to sleep]
jfredett has quit [Remote host closed the connection]
jgaskins has joined #rom-rb
<xybre> I sorta expect that
solnic has quit [Quit: Linkinus - http://linkinus.com]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
solnic has joined #rom-rb
postmodern has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
cored has quit [Ping timeout: 240 seconds]
skade has quit [Quit: Computer has gone to sleep.]
kleech has joined #rom-rb
kleech has quit [Remote host closed the connection]
<dkubb> wtf is going on with ruby-head. is it' blowing up on adamantium? maybe I need to look at the code and rework it, as well as reporting something upstream
<dkubb> solnic: re: coercions. yeah, sometimes you need to do it in axiom too. consider when you're joining two relations, but the types aren't exact, you need to cast it from one type to another in order for them to join properly. this is the kind of thing that can be pushed down to an SQL based database in many cases.
<dkubb> solnic: at the same time, anything we add needs to be available to the in-memory ops, since we need it for fallback for less capable databases
<solnic> dkubb: so, adapters can't handle that? that's too early?
lfox has joined #rom-rb
<dkubb> solnic: I think we can have it so adapters can rewrite the query to handle what they support, but I think I would want to define an object that can do it on behalf of the adapter
<solnic> ah gotcha
<dkubb> solnic: like maybe something where the adapter specifies "I can handle restrict, project, but not union" .. and so on through all the ops
<dkubb> and then the object would know how to rewrite the query so everything the database can handle is pushed down, and the in-memory processing is minimized
<dkubb> ideally we would want to eliminate in-memory processing, but we know some datastores are limited
<dkubb> if the query doesn't use some unsupported operation, then ideally we'd run it all in the database
<dkubb> I don't yet know what the interface will look like, but I know roughly how it'll work to rewrite the query
<dkubb> it's essentially the same process as what axiom-optimizer does now, only it'll have to be configurable
<dkubb> I will probably be able to have it use parts of axiom-optimizer
<dkubb> axiom-optimizer is also streamlined to only support "obvious" optimizations, like collapsing restrict(restrict(relation, predicate1), predicate2) into restrict(relation, predicate1 & predicate2) for example
<dkubb> what I could see is axiom-optimizer taking into account the adapter for each base relation, and applying different "chains" of optimizations depending on what the adapter can support
<dkubb> that was kind of the original plan when I set out to write it
jgaskins has joined #rom-rb
<dkubb> you can kind of thing of axiom-optimizer in it's current state as being optimized for the axiom-memory-adapter. it reflects the kinds of optimizations that will be applied to memory relations. what I need to do is generalize it so each adapter can configure their own optimization chains like https://github.com/dkubb/axiom-optimizer/blob/master/lib/axiom/optimizer/algebra/restriction.rb#L356-L367
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<xybre> Okay, so morpher is like a Lisp DSL for Ruby.
<xybre> Funny thing though, enumerable_deep_search's output isn't radically different from morpher's input.
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb