<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.
<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.
<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]
<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: 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]