Modelin’ Man

© 2004 James Dempsey

Modelin’ Man, I’m a Modelin’ Man
They say “Are you in modelin’?”, I say “Oh yes I am”
There’s no catwalk involved in the modelin’ I do.
There’s no demand for me to try that kind of modelin’ too.

Some people want a data model for a new application
Don’t want to write a lot a code, simply use configuration
To refine their data model with each new iteration
As they build a prototype with persistence automation.

Some people want to date a model, but prefer one in fashion.
If you date a data model, that’s an interesting passion.
If you’re a dreamer with a schema you can usually cash in,
Though you ain’t got the looks and your clothes they are clashin’.

Modelin’ Man, I’m a Modelin’ Man
Let me lay it all out so that you’ll understand
You’ll have the terminology and concepts at your command
So you can also be a modelin’ woman or man

Now, the Managed Object Model, also known as the MOM
Describes the data model your app acts upon
You can build your data model as pretty as you please
Adding items to the model known as entities.

An entity’s
All right by me
It’s what a thing’s supposed to be
What type, what sort, what class, what kind
Whatever you might have in mind
You pick a name, map to a class
Now your model’s growing fast
You work some more and come to grips
With attributes and relationships.

Oh baby, now you’re modeling too.
Oh baby, what more for a Modelin’ Man to do?

An attribute or relationship is known as a property
No, not the kind that they use in Monopoly
Use the words with precision, don’t use ’em sloppily
Or confusion will ensue like episodes of Three’s Company.

Modelin’ Man, I’m a Modelin’ Man
They say “Are you in modeling?”, I say “Oh yes I am”
There’s no photographers involved in the modelin’ I do,
I got turned down by everyone I sent my headshot to.

An attribute’s a simple value, string, number, or date
Or a big old blob of data that’s containing some state.
You can mark it transient if you don’t care about its fate
Otherwise it will persist in data stores that you create.

Two entities can be connected, kinda joined at the hip,
The formal name for this arrangement is a relationship.
One object references another so it can’t give it the slip,
The inverse reference is maintained for a convenient round trip.

Modelin’ Man, I’m a Modelin’ Man
They say “Are you in modelin’?” I say “Oh Yes, I am”
But don’t come knockin’ if it’s rockin’ in the back of my van,
I’m probably wrestling with relationships I don’t quite understand.

Modelin’ Man, I’m a Modelin’ Man
They say “Are you in modelin’?” I say “Oh Yes, I am”
It’s not too glamorous at all, this kind of modelin’ it’s true,
But I’d like to see a supermodel build the apps that we do.

Modelin’ Man debuted alongside the introduction of Core Data at WWDC 2004.
( OS X / iOS )

Vocals: James Dempsey
Guitar: Gordie Freedman
Bass: Darren Minifie
Drums and Organ: Russell Bond

Music and Lyrics: James Dempsey
Recorded and Produced by Russell Bond at HowlingPoint Studios