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
<xybre> ROM is locked to an old version of Axiom: https://gist.github.com/acook/8815076
<xybre> When I first did a bundle install, it installed ROM version 0.1 or something which was literally jsut a license and a readme, because, I assume, it didn't constrain me from installing the latest version of axiom.
<xybre> Axiom 0.2.0 appears to be the latest, but ROM is locked to 0.1.1.
<xybre> so, in playing around with the mapping and structing the whole thing in an object-oriented way its really making me think the mapping system would be better as data driven from configuration files.
<xybre> Hmm. Unfortunately the currently released version of ROM doesn't work at all: https://gist.github.com/acook/dbaa454f21681b4d27cd#file-output-txt
<xybre> There's the entire project to reproduce it if its helpful.
jgaskins has quit [Quit: Leaving]
CraigBuchek has quit [Quit: Leaving.]
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
stormwind has joined #rom-rb
stormwin1 has quit [Read error: Connection reset by peer]
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
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
skade 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
skade has quit [Quit: Computer has gone to sleep.]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
skade has joined #rom-rb
skade has quit [Client Quit]
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]
skade has joined #rom-rb
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
solnic has joined #rom-rb
<solnic> xybre: yeah I'll push a new release where this equalizer issue is gone
<solnic> xybre: just need to port the mapper to use morpher ;)
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
femto has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
femto has quit [Ping timeout: 245 seconds]
femto 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]
femto has quit [Ping timeout: 245 seconds]
jgaskins has joined #rom-rb
femto has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
skade has quit [Quit: Computer has gone to sleep.]
mbj has joined #rom-rb
mbj has quit [Client Quit]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
femto has quit [Ping timeout: 252 seconds]
femtowin has joined #rom-rb
femto has joined #rom-rb
femto has quit [Client Quit]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
skade has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
femtowin has quit [Ping timeout: 245 seconds]
femto 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
skade has quit [Quit: Computer has gone to sleep.]
femto has quit [Ping timeout: 245 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
femto has joined #rom-rb
rolfb has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
CraigBuchek has joined #rom-rb
jgaskins has joined #rom-rb
skade has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
femto has quit [Ping timeout: 252 seconds]
femto 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
femto has quit [Ping timeout: 245 seconds]
CraigBuchek has quit [Quit: Leaving.]
femto has joined #rom-rb
rolfb has quit [Quit: Linkinus - http://linkinus.com]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
postmodern has quit [Quit: Leaving]
jgaskins has quit [Quit: This computer has gone to sleep]
jordanyee has quit [Quit: MacBook went to sleep.]
femto has quit []
CraigBuchek has joined #rom-rb
mbj has joined #rom-rb
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
<teegee543> good morning
<mbj> teegee543: cheers
<teegee543> how is the project coming along? i've been keeping an eye on your project for a while
<mbj> teegee543: We have a concept, and we have a foundation. We dont have the time to put all stuff together.
<mbj> teegee543: So we are "time bound".
<teegee543> gotcha
<mbj> teegee543: I'd love to have 2 of us focusing on ROM for 2-4 weeks. We could get significant public visible progess.
<mbj> teegee543: I thought about doing 2 weeks of for OSS. But my clients are keeping me busy. Same for the other team members.
<teegee543> that's good though, getting paid for your work :)
<mbj> Yeah. But its a chicken egg problem.
<teegee543> yeah
<mbj> Most of my projects would benefit a lot from ROM.
<teegee543> same here
<mbj> If you wanna use some adjacent projects, the most finished one is probably the mutation tester.
<teegee543> i've recently been looking into the best way to try and implement anchor modeling
<mbj> I consider it part of "my contribution to ROM".
<teegee543> AR is just so convoluted it's not possible
<mbj> We also have recent developments with a pure SQL generator/parser.
<mbj> We'll transform the relations to an SQL ast and do SQL specific optimizations on that ASt.
<mbj> Than unparse to SQL.
<teegee543> is that related to axiom?
<mbj> Yeah.
<mbj> The current axiom-sql-generator will be replaced.
<teegee543> interesting
<teegee543> is ROM going to be able to have a repository layer?
<mbj> Yeah. But I think its upto the user if he used it.
<mbj> We polish each part of ROM in a way you can choose what you whant.
<mbj> Session without Unit of Work? Do it.
<teegee543> nice
<mbj> Mapper without morpher? Use inject something thats API compatible.
jgaskins has quit [Quit: This computer has gone to sleep]
<mbj> And we keep boundaries very "small".
<mbj> I'm maybe not the best person to define "default ROM".
<mbj> Mostly because many of my jobs involved building a domain specific mapper.
<mbj> So I'd not simply use the defaults. I'd pick each available component per project.
<mbj> And I rarely have to touch traditional CRUD domains.
<teegee543> right
<solnic> teegee543: depending on what you need it may or may not be ready soon ;)
<mbj> solnic: best summary!
<teegee543> haha
<mbj> solnic: and hi.
<solnic> hi :)
<mbj> solnic: Lets do a ROM hack afternoon @ wroclove?
<solnic> but it's true
<mbj> Yeah, its uneasy to define "A finished mapper".
<solnic> like I'm pretty sure some nosql stores will get good support sooner than rdbms
<solnic> mostly because of transactions and migrations and other rdbms-specific things that are just hard to get done
<teegee543> solnic: that's why i'd like to try and implement anchormapping
<teegee543> it's going to be difficult, but i'm imagining automatic/semi-automatic migrations based on the model attributes
<solnic> teegee543: yes that's what we're planning too
<teegee543> which are translated into the 6NF of tables
<mbj> teegee543: Yeah, dan had some really nice ideas on how to describe schema migrations with the RA.
<solnic> current status is that we need to finish new sql generator and integrate it with axiom and the mapper is waiting to be integrated with morpher
<solnic> I'm gonna hold off with session + uow for now and start with just session
<solnic> just to be able to finish other things quickly
<solnic> UoW will be a looooong road
<teegee543> would that be possible? utilizing views as an alternative way of accessing and modifying tables?
<teegee543> what's "session"?
<mbj> teegee543: session could be seen as a state tracker.
<mbj> teegee543: If you map a tuple to domain, the session is able to tell you if the object was modified, and is dirty.
<mbj> Without having the object to track that itself.
<teegee543> would it be caching that data?
<mbj> depends on the actual implementation.
<mbj> The session I wrote tracked the tuple, and each time it was asked "Is this domain object dirty", it used the mapper to transform to tuple again and compared the tuples.
<mbj> This way you can give the adapter two tuples, the old and the new and adapter specific differencial updates can be made.
<mbj> But I have to admit, solnic and me having a much differend imagination of the session.
<mbj> Solnic will do his session in the rom repos, I'll do mine at antother repo.
<solnic> rom session tracks tuples too
<solnic> I told you it's heavily based on your ideas
<mbj> solnic: I know. but dont lets restart this discussion :D
<solnic> right righ
<solnic> I won't
<solnic> I don't have imagination btw
<solnic> I think imagining anything in software is overrated
<solnic> you're gonna be wrong anyway :P
<mbj> solnic: I think once I integrated my rom-session with a morpher based mapper you'll "see" my idea.
<mbj> Yeah. Thats the reason I dont wanna have an discussion.
<mbj> You integrated session and it works.
<solnic> yep
<mbj> My session worked, but not with rom-session, only with my own mappers.
<mbj> And without axion.
<mbj> *axiom
<mbj> So we'll not discuss abstract stuff.
<mbj> I resurrected my rom-session state and will integrate it with axiom morpher based mappers. Than we can talk again.
<solnic> cool
<mbj> Does someone have a magic: "n hours of OSS time" - card for me?
<mbj> :D
<teegee543> lol
<teegee543> i wish i had that problem
<teegee543> most of my time outside my day job is OSS time atm
<teegee543> but i'm trying to move toward more contracted work
<solnic> <== father of 2 sons. not much time left after work.
<teegee543> yeah, that would do it
<solnic> in fact, these days I even have trouble finding time for WORK :D
<teegee543> i'm still single so lots of free time still
<teegee543> haha
<solnic> yeah that's why I was recently bitching so much open how OSS works
<teegee543> i don't understand
<mbj> teegee543: Actually my OSS involvements gave me my current clients.
<mbj> teegee543: So OSS success removes the ability to do OSS.
<teegee543> mbj: true, my OSS involvements got me my current gig
<teegee543> yeah, that's the ironic thing
<mbj> teegee543: Once this is around 500$ per week I consider to do one or two dedicated OSS days a week. https://www.gittip.com/mbj/
<mbj> teegee543: But for now its simply not an option.
<mbj> <== Father of one girl, and more plans.
<teegee543> :D
<mbj> teegee543: Its not that I target 100% commercial aeuivalent compensation. I simply must be able to pay my bills.
<teegee543> gittip reminds me of Patreon http://www.patreon.com/
<mbj> *aequivalent
<teegee543> that makes sense
<mbj> And I still do far to much OSS.
<mbj> I probably did around 2000h last year.
<solnic> I just think companies should pay people to work on OSS
<mbj> Uneasy to measure.
<solnic> like, each Friday or something
<teegee543> solnic: they do
<solnic> some do
<teegee543> just look at the twitter bootstrap project
<solnic> most don't
<solnic> man, those are like what? 1% of the whole OSS universe?
<mbj> solnic: I had the idea to have a public time sheet where I enter my OSS times. And present a "hourly OSS rate".
<mbj> solnic: It'll probably be 0.000001€ or so.
<solnic> I also no longer buy the argument that working on OSS is like an investment and it will pay off
<mbj> So I'd actually have some hard numbers.
<solnic> I have friends who didn't touch any OSS project and they have well paid jobs
<solnic> so whatever, honestly
<mbj> Maybe you are a crappy developer if you needed OSS to get a job :D
<teegee543> <--- truth
<solnic> I'm just saying the way OSS works is broken IMHO
<solnic> no, wait, not IMHO, it's just my opinion
<solnic> no humble at all
<mbj> solnic: It is. But it can be very much fun also.
<teegee543> if you're expecting to make a living off OSS, it's not likely
<mbj> solnic: So I'm doing OSS to get people like you dan and martin review my stuff.
<solnic> I don't think anybody would expect that
<mbj> solnic: Because I build stuff for myself mostly. If I can profit with opensourcing I'll do.
<teegee543> yeah, i do OSS stuff so better people can fix my stuff if they end up using it
<solnic> but I'm just saying the business, this huge freaking business that relies on OSS so heavily should really support it
<solnic> and I know there are companies who do that
<solnic> but it's just not enough
<teegee543> ah, that's what you mean
<solnic> for people like me working on OSS becomes extremely difficult
<solnic> and it's frustrating too
<solnic> I burned out last year because of that
<mbj> solnic: I'm a few years behind you. I'll probably feel the same later.
<solnic> mbj: I hope you won't :)
<mbj> solnic: thx - And I'm working hard to avoid it.
<mbj> solnic: Thats one good thing out of your "OSS burnout" - It might help me to avoid it :D
<solnic> yeah haha
<mbj> solnic: you saw mutant uses morpher for filtering already?
<solnic> mbj: not yet
<solnic> I'll take a look later
<mbj> solnic: It does ;)
<solnic> gotta eat something now
<solnic> and get back to work
<mbj> solnic: I'm gonna release a morpher backed mutant soon. So I can say: Its used in production :D
<solnic> I assume you'll release morpher too?
<mbj> solnic: yeah, I'll not vendor it.
<mbj> teegee543: if you feel you wanna try anchor mappings for ROM, just ask any question!
<teegee543> thanks!
<mbj> solnic: BTW I'd love you include a "does someone know the name of the pattern behind morpher" in your morpher blog post.
<mbj> solnic: I hope we find some references, it must have been done before.
<mbj> solnic: And we can learn from there.
<teegee543> mbj: which part of ROM handles database and table creation?
<teegee543> right now i'm working on creating tables in Sequel
<solnic> mbj: don't you think it's "just" the mapper pattern?
<mbj> teegee543: we dont have support for any ddl system yet.
<mbj> solnic: tracked evaluation and inverse generation?
<mbj> solnic: together with transitivity detection?
<solnic> those are just details I think
<mbj> solnic: So its basically a "good mapper", I'd be happy with this.
<solnic> those feel like powerful features of...a mapper :)
<solnic> no
<solnic> it would be "a fucking awesome mapper that will blow your mind"
<mbj> lulz
<mbj> thx
<solnic> how's that for the definition of the pattern used? :D
<mbj> :D
<mbj> I need to clean it up a bit and push.
<solnic> good
<solnic> to motivate you even more
<solnic> a guy from brithtbox is looking into using rom/morpher in fog-core project
<solnic> they need mappings and coercions
<mbj> :D
<mbj> They could fund someone of us to work on their problems.
<mbj> And focusing on the rom side of their problem.
<xybre> So.. what is "unit of work" in this context?
jgaskins has joined #rom-rb
<solnic> xybre: it's that thing that sorts all pending db operations and executes them in correct order taking dependencies into account
<solnic> xybre: for instance making sure that parent is saved before its children
<xybre> solnic: Got it. I might ask again in like a month, but for right now I got it. :D
<mbj> xybre: bookmark this for the next month ;)
<xybre> mbj: bookmarked *and* in my evernote with hilights!
<mbj> xybre: lulz
<mbj> xybre: BTW the PoEAA is actually a ROM HOWTO ;)
<mbj> xybre: Most of the terms we use here are explained there.
skade has quit [Quit: Computer has gone to sleep.]
<solnic> if it was a howto we'd be done already ;)
jgaskins has quit [Quit: This computer has gone to sleep]
<mbj> solnic: yeah, howto is wrong.
<mbj> xybre: its not an howto ;) - Its a good book about patterns :D
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
skade has joined #rom-rb
<xybre> mbj: I like books about patterns. I get the impression that if more people were aware of patterns maybe they'd stop doing the things that make dev projects suck so bad.
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jordanyee has joined #rom-rb
jordanyee has quit [Client Quit]
mbj has quit [Quit: leaving]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
CraigBuchek has quit [Quit: Leaving.]
solnic has quit [Quit: Linkinus - http://linkinus.com]
jgaskins has quit [Quit: This computer has gone to sleep]
CraigBuchek has joined #rom-rb
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]
jordanyee has joined #rom-rb
jgaskins has joined #rom-rb
jordanyee has quit [Client Quit]
skade has quit [Quit: Computer has gone to sleep.]
rikai has quit [Ping timeout: 246 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
skade has joined #rom-rb
jgaskins has joined #rom-rb
rikai has joined #rom-rb
skade has quit [Client Quit]
solnic 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
<xybre> Please tell me creating UNION queries in ROM isn't going to be hellish.
jordanyee has joined #rom-rb
<xybre> The hoops I have to jump through to get AR to work with them is just awful.
<solnic> xybre: it won't. axiom supports union
<solnic> xybre: maybe current sql generator already can do that, who knows ;)
<xybre> Here's my current attempt in AR: https://gist.github.com/acook/8831979
<solnic> yuck ;)
<xybre> this gives me the correct results, but since it doesn't return a Relation object I can't use any of the normal tools that integrate with AR. So now I'm stuck rewriting pagination and other crap.
<xybre> Or I could just return the entire dataset, throw paginate_array on the end and call it day. If they tell me pages are loading slow then maybe I could justify the time I'm wasting on this.
<solnic> man, I gotta make a list of things where AR just falls flat on its face
<solnic> maybe that will convince some companies and their CTO's that it's a good idea to support us
jordanyee has quit [Ping timeout: 260 seconds]
<xybre> Honestly I've wasted at least 3 days on building these queries.
<solnic> I need to finally run this fundraiser
<solnic> rvm gathered ~$50k iirc
<solnic> so there's a chance we might get some funding
<xybre> And I'm not cheap, so that's a lot of money blown on this problem. Not multiply that by the other devs here and at other companies having this problem and we're talkign about some serious cash.
<xybre> Like I don't even care if people continue to insist on using the awful active record pattern in large apps, just so long as I can actually do my job without doing the framework's job too.
<xybre> I'm goign to run this code with the array and see what happens.
<CraigBuchek> solnic: I think ROM could raise more than RVM.
<solnic> xybre: I hear you man
<solnic> xybre: do you see any queries that might look like sth similar to what you need?
<solnic> CraigBuchek: I'm not sure :/
<solnic> CraigBuchek: I think I'd have to spend a lot of time preparing that fundraiser so that it would clearly explain how ROM can help
<solnic> I can talk about this for hours and probably write a ton of material but that doesn't mean I could easily "sell" the thing
<solnic> this would have to be concise and easy to digest
jordanyee has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
<CraigBuchek> Anyone talking about ROM at RailsConf, or the local Rails conferences? That'd be a good first step to raise awareness.
<CraigBuchek> I'm probably going to write a proposal to talk about all the ORMs.
jgaskins has joined #rom-rb
<solnic> CraigBuchek: not sure, I haven't submitted any proposals to RailsConf
<solnic> I'm holding off with ROM talks until we have something working
<solnic> as in, more usable
<solnic> we've got a ton of stuff working already of course
<CraigBuchek> Yeah, if we can get the high-level interface into a halfway usable (beta) state, you could start selling it at conferences.
<CraigBuchek> s/you/we/
<solnic> I tried to promote ROM when we were working on underlaying pieces and it didn't work so well
<solnic> well, DM2 back then
<solnic> that was 2 years ago, crazy
<xybre> solnic: will check in a second, trying to get this code to work so I can stop thinking about it :)
<solnic> xybre: ok cool
jordanyee has quit [Quit: MacBook went to sleep.]
<xybre> Oh it works now. I sorta feel worse now that it works.
<xybre> It's fugly.
jgaskins has quit [Quit: This computer has gone to sleep]
<xybre> On the upside I fixed what was probably a bug.
jgaskins has joined #rom-rb
jordanyee has joined #rom-rb
jordanyee has quit [Client Quit]
<xybre> Here is the actual code/queries I've been playing with, please note that the SQL is all worse due to being generated by AR or with its constraints in mind: https://gist.github.com/acook/d94638b2e520fdb59a9b
<xybre> One of my coworkers jsut suggested the left join, I'm going to try it.
<xybre> The left join doesn't work because it conflicts with something else going on, but its not immediately clear what. It raises a database error.
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
<xybre> solnic: It's closest to the joins one. The basic problem is that mysql will always return an empty set if you do a join on a column that mentions it could be NULL. for example a user might belong to a single group (users.group_id), I want a set of a users that have either no group (group_id IS NULL) or a group with no name (group.name IS NULL).
jordanyee has joined #rom-rb
jordanyee has quit [Client Quit]
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jordanyee has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jordanyee has quit [Quit: MacBook went to sleep.]
jgaskins_ has joined #rom-rb
jgaskins has quit [Ping timeout: 260 seconds]
CraigBuchek has quit [Quit: Leaving.]
solnic has quit [Quit: Leaving...]
jgaskins_ has quit [Quit: This computer has gone to sleep]
skade has joined #rom-rb
jgaskins_ has joined #rom-rb
mbj has joined #rom-rb
mbj has quit [Client Quit]
jgaskins_ has quit [Quit: This computer has gone to sleep]
jgaskins_ has joined #rom-rb
postmodern has joined #rom-rb
jgaskins_ has quit [Quit: This computer has gone to sleep]
jgaskins_ has joined #rom-rb
skade has quit [Quit: Computer has gone to sleep.]
jordanyee has joined #rom-rb
jgaskins_ has quit [Quit: This computer has gone to sleep]
jgaskins_ has joined #rom-rb
jordanyee has quit [Quit: MacBook went to sleep.]
jordanyee has joined #rom-rb