Log of the #duraspace-ff channel on chat.freenode.net

Using timezone: Eastern Standard Time
<bljenkins>Project fcrepo-kitchen-sink build #244: SUCCESS in 10 min: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/244/00:47
* kaarefc joins01:58
* kaarefc leaves02:00
* kaarefc joins02:01
* kaarefc leaves02:21
* kaarefc joins03:14
* kaarefc leaves03:41
* kaarefc joins04:05
* fasseg joins07:10
* kaarefc leaves07:40
* kaarefc joins08:02
* kaarefc leaves08:18
* kaarefc joins09:21
* nbanks joins09:23
* kaarefc leaves09:44
* nbanks leaves09:46
* github-ff joins10:05
[fcrepo4] fasseg pushed 1 new commit to master: http://git.io/wnf_6Q
fcrepo4/master 4e609d2 fasseg: added versioning endpoint & tests, but still needs some work on the implementation layer
* github-ff leaves
* github-ff joins10:07
[fcrepo4] fasseg deleted globbing-versions at 3840e34: http://git.io/x0Ybpw
* github-ff leaves
* barmintor joins
* nbanks joins10:22
* travis-ci joins10:26
[travis-ci] futures/fcrepo4#470 (master - 4e609d2 : fasseg): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/54213914e68c...4e609d2d7216
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6924254
* travis-ci leaves
* ajs6f joins10:27
<cbeer>ajs6f: i was trying to add html responses to the object profile views earlier and discovered velocity templates require getters and setters, which most of our jaxb resources are not providing10:40
<ajs6f>Really? That stinks.10:41
<cbeer>should i just wait for your grand conneg plan? or add getters and setters to the jaxb stuff?
<ajs6f>Well, if that's what Velocity needs, nothing I do is going to change that.
Maybe we should review why VincentNG picked Velocity.
Or if there's a better choice.
Or if we want to return model classes directly from JAX-RS methods...10:42
Which might multiply model classes, but might end up being cleaner overall.
Project Lombok could help us not have to write huge classes with accessors/mutators, but at the cost of another dependency.10:43
<nbanks>Any body else seeing this when running the webapp? com.sun.jersey.api.NotFoundException null for uri at com.sun.jersey.server.impl.application?10:44
* ajs6f leaves10:47
<bljenkins>Project fcrepo-kitchen-sink build #245: SUCCESS in 7 min 14 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/245/10:54
* ajs6f joins
<pivotal-bot>A. "Reticulated" Soroka started "Propose a straw-man relationship management API" https://www.pivotaltracker.com/story/show/4906084510:56
<ajs6f>We doing standup10:58
?
* eddies joins11:00
* eddies leaves
* eddies joins
I have MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m11:13
<pivotal-bot>Nigel Banks finished "Update Tuque to support both Fedora 3 and 4 concurrently" https://www.pivotaltracker.com/story/show/49067437
Nigel Banks delivered "Update Tuque to support both Fedora 3 and 4 concurrently" https://www.pivotaltracker.com/story/show/4906743711:14
<cbeer>oh, i remember something i forgot to report.11:19
ajs6f: https://github.com/futures/fcrepo4/tree/rdf-all-the-things
playing with sparql/update
<ajs6f>For JCR properties?
<cbeer>yes
<ajs6f>With a new endpoint?11:20
<cbeer>nope, just globbing onto the node path
* github-ff joins11:21
[fcrepo4] cbeer pushed 3 new commits to master: http://git.io/bliBaA
fcrepo4/master 017a1c2 Chris Beer: remove unused content-obsolete endpoint
fcrepo4/master 5b307da Chris Beer: Add more meaningful checks to the TiffPolicyStorageIT
fcrepo4/master d2acfc8 Chris Beer: fix up versions api to check node type to decide if a path is an object or ds
* github-ff leaves
<cbeer>https://wiki.duraspace.org/display/FF/Transaction+enabled+REST+API
nbanks: let me know if the change in 5b307da makes a difference for you11:22
i think i saw something weird with the interaction between the Tiff and Healing ITs
<pivotal-bot>Chris Beer deleted "Support the same fcr:versions verb for both object and datastream nodes" https://www.pivotaltracker.com/story/show/4890008711:27
<cbeer>awoods: https://github.com/futures/fcrepo4/blob/master/fcrepo-http-api/src/main/java/org/fcrepo/api/FedoraContent.java#L13811:29
<nbanks>cbeer: Thanks that commit sorted the test failure.11:34
<cbeer>:/11:35
i'm not sure i understand if/how the ITs are isolated from each other
<ajs6f>If we're using the Spring test framework, then its a matter of how the test context annotations are interpreted.
And SPring will cache contexts if it thinks it safely can.11:36
<nbanks>It would seems as though they are not, if I ran the problem test in islolation it passed, it only failed when the other tests were run as part of the install process.
<awoods>Likewise, my build goes through now as well.
Can someone with the appropriate permissions add me to the Fedora Futures pivotal project?11:46
<pivotal-bot>Nigel Banks edited "Update Tuque to support both Fedora 3 and 4 concurrently" https://www.pivotaltracker.com/story/show/4906743711:50
Nigel Banks edited "Update Tuque to support both Fedora 3 and 4 concurrently" https://www.pivotaltracker.com/story/show/49067437
<bljenkins>Project fcrepo-kitchen-sink build #246: SUCCESS in 6 min 30 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/246/
<pivotal-bot>Edwin Shin added ""Branch" a subset of the repository into a workspace for CRUD" https://www.pivotaltracker.com/story/show/4930307511:52
Edwin Shin edited ""Branch" a subset of the repository into a workspace for CRUD" https://www.pivotaltracker.com/story/show/49303075
<eddies>awoods: you should have a tracker invite now11:57
* travis-ci joins11:58
[travis-ci] futures/fcrepo4#471 (master - d2acfc8 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/4e609d2d7216...d2acfc825c5b
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6926435
* travis-ci leaves
<cbeer>ajs6f: i think i asked you about this before, but now that i've written some code, is there a better way of doing: https://github.com/ModeShape/modeshape/pull/799/files#L0L4712:00
that doesn't involve pulling in e.g. guava into modeshape?
awoods: you're a java guy, right? (just trying to expand my pool of people to harass with java questions..)12:01
<pivotal-bot>Edwin Shin edited "Add HTTP 1.1-friendly cache headers to our REST API responses" https://www.pivotaltracker.com/story/show/45458545
<ajs6f>Are you really concating iterators, or are there collections behind these guys you could use instead?12:02
<awoods>cbeer: Indeed I am... let the harassment begin.
<ajs6f>Anyway, the JDK has no such concat guy.
<cbeer>ajs6f: i'm just getting iterables.
<awoods>eddies: thanks
* gregjansen joins
<ajs6f>Well, unless MODE is already using, say,
http://commons.apache.org/proper/commons-collections/
(and we already know it's not using Guava), then no, not that I know of.12:03
<barmintor>cbeer: Why doesn't MODE.Collections.concat(Iterator<T>, Iterator<T>) just call java.util.Collections.concat, like .concat(Iterable<T>, Iterable<T>) does?12:04
Oh, I see
it's calling the other method, doh
* barmintor forehead slap12:05
<cbeer>yeah. i'm not sure Collections was a great place to put these, but it already existed
awoods, eddies: assuming the cache header ticket goes ok, are some of the jax-rs (esp. fixing html representations tickets) a good next step?12:07
* nbanks leaves
<awoods>cbeer: I am completely open to ideas.12:08
<eddies>cbeer: you mean html representations without stepping up to full-on HATEOAS?
(then yes)12:09
<cbeer>eddies: yes, just the mechanics, not the content.
i think the content may be a good thing to spin off to someone on the periphery of the project.
<eddies>yeah, i'd say https://www.pivotaltracker.com/story/show/49011353 would be good
<pivotal-bot>feature: Create a pleasing text/html representation for /fcr:describe with HATEAOS links to actions (unstarted) / owner:
<eddies>alternatively, there's a lot of value in getting https://www.pivotaltracker.com/story/show/48918595 sorted too12:10
<pivotal-bot>feature: RESTful error codes (unstarted) / owner:
<cbeer>yeah, i was thinking more like the latter.
and https://www.pivotaltracker.com/story/show/49211059
<pivotal-bot>feature: add an HTML representation for ObjectProfile (unscheduled) / owner:
<cbeer>(e.g. don't break /rest/path/to/object in the browser!)
<eddies>i'm a little torn: on the one hand, it would be gratifying to see some more browser-friendly describe responses12:12
<pivotal-bot>Chris Beer edited "add an HTML representation for ObjectProfile" https://www.pivotaltracker.com/story/show/49211059
<cbeer>eddies: i'm not even talking browser-friendly.
i just mean not a 500 error.
<eddies>on the other, since you and nbanks are doing api clients this sprint, error code handling would fit in nicely
<pivotal-bot>Chris Beer added comment: "http://fcrepo4.fcrepo.org/fcrepo/rest/objects/2669fb85-7560-4a96-9ef1-0b53e8c5f5e9/fcr:fixity" https://www.pivotaltracker.com/story/show/4883525112:15
Chris Beer finished "Update LowLevelStorageService to be CompositeBinaryStore aware" https://www.pivotaltracker.com/story/show/4883525112:16
* github-ff joins12:19
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/fdC8Eg
fcrepo4/master ce22135 Chris Beer: stop lying about having a TEXT_HTML representation for describe
* github-ff leaves
* nbanks joins12:35
* nbanks leaves12:41
<bljenkins>Project fcrepo-kitchen-sink build #247: SUCCESS in 6 min 34 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/247/12:42
* github-ff joins12:44
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/2Yp9QQ
fcrepo4/master 9cf9aa3 Chris Beer: improve LowLevelCacheEntry externalID for ISPN and Composite stores
* github-ff leaves
<pivotal-bot>Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/9cf9aa38bca474ecb358071f99ab30a8df335ad5" https://www.pivotaltracker.com/story/show/49057421
Chris Beer edited "Update fixity and datastream location information for composite stores configurations" https://www.pivotaltracker.com/story/show/4905742112:45
Chris Beer finished "Update fixity and datastream location information for composite stores configurations" https://www.pivotaltracker.com/story/show/49057421
<cbeer>fasseg: i forget, is https://www.pivotaltracker.com/story/show/48799347 finished?
<pivotal-bot>feature: Create a fcr:versions resource in the globbing branch (started) / owner: Frank Asseg
Chris Beer edited "Create a fcr:versions resource in the globbing branch" https://www.pivotaltracker.com/story/show/48799347
Chris Beer edited "REST API getChildren Doesn't respect Accept headers" https://www.pivotaltracker.com/story/show/4881802912:46
Chris Beer added comment: "https://github.com/projecthydra/rubydora/commit/352152c9ec04c12947500e41f6b22347f031fdc7" https://www.pivotaltracker.com/story/show/4882472112:48
* travis-ci joins12:59
[travis-ci] futures/fcrepo4#473 (master - 9cf9aa3 : Chris Beer): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/ce221352f1f3...9cf9aa38bca4
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6928966
* travis-ci leaves
* ajs6f leaves13:13
* ajs6f joins13:16
<cbeer>awoods: i'm heading to the office; should be back in time for our call13:43
* ajs6f leaves13:50
* ajs6f joins13:57
<cbeer>\14:00
<ajs6f>\/
<barmintor> \m/
<ajs6f>www
<eddies>barmintor: what's your schedule w/ us this week?14:02
<barmintor>negotiable starting Weds14:03
but won't be full time
and then...
<eddies>98% is fine
<barmintor>eddies: do you have the scheduling link handy?14:04
<eddies>https://wiki.duraspace.org/display/FF/Sprint+Schedule
i should update that
<barmintor>thanks
Yeah, the week I owe CUL is over tomorrow, so I should be on the sprint for the back half of this one14:05
<ajs6f>Anyone have any thoughts about what the resource-term for a named graph should be? I started with "fcr:properties", but that's clearly wrong, and I've been playing with "fcr:graph" (too vague) "fcr:named-graph" (wordy and very specific) "fcr:rdf" (vague and confusing to read) and others...
<barmintor>eddies: I'll also send you an email about my personal leave in May/June14:06
<eddies>fcr:thingee
<ajs6f>And that's why he's the product manager, folks.
<barmintor>ajs6f: properties isn't necessarily wrong
<ajs6f>If the resource in question isn't the RDF Subject…14:07
<eddies>and is graph really too vague?
<ajs6f>Maybe not. If y'all like "fcr:graph", then so be it, Jedi.
<barmintor>ajs6f: I dunno - ID/properties is the URI of the graph, for which the subject of the triples is ID
* nbanks joins14:08
<ajs6f>No, that's not how I was playing it.
The ID of the graph is as you say,
but the Subjects are unconstrained.
<barmintor>Oh, I see
<ajs6f>It's an independent graph, something fcrepo3 was never able to support.
I should put the link here.
<barmintor>yes, that's not properties
<ajs6f>https://wiki.duraspace.org/display/FF/Relationship+Management+API+Strawman
Right.
The updating/deleting problems always14:09
prevented us from allowing arbitrary subjects or blank nodes.
(Actually, blank nodes was also Trippi's fault,
for dealing in Set<Triple> s instead of true RDF docs.
)
* barmintor looks forward to hearing how these rels will be stored
<ajs6f>Named graphs was often suggested as a solution.
Me, too, barmintor,14:10
since I was commissioned to eyeball an API. No impl. :)
<barmintor>...
dodgy.
<ajs6f>I never impl. Just makes headaches for me later when people expect my code to work.
<barmintor>we need to get you and giarlo in a room.14:11
<ajs6f>I like giarlo. We can drink beer and talk about anything but code.
barmintor: Actually, in truth,
if we did confine ourselves to triples w/ the Subject being the resource,14:12
we could use JCR Properties immediately.
<eddies>then you could just use jcr props
<ajs6f>^^^
<eddies>what he ^^ said
<barmintor>then we could use the jcr properties
<ajs6f>EVERYONE ALL TOGETHER!
NOW JUST THE BOYS!
<eddies>wait. so we could just use jcr props?
<not_barmintor>did you think about just using JCR properties?
<eddies>=)
* nbanks leaves
<ajs6f>I've got a poster in for OR (really, this is relavent)14:13
about a triple generator I did for fcrepo3.
And one thing I did there was to show the use of automatic Skolemization to use blank nodes.
* nbanks joins
<eddies>ajs6f: so i was thinking that the strawman impl was just an rdf serialization of the named graph
<ajs6f>eddies: Well, we'll have to store the graph. Somewhere.14:14
<eddies>which is actually a new node
internally
<ajs6f>With serialized RDF?
<eddies>yah
crazy?
<ajs6f>No, but it would hide the RDF from JCR Query.
So no queries at all.
Well, freetext.
<eddies>well, i mentioned this before...14:15
<ajs6f>You mentioned "no queries"?
I missed that.
Then yes, we sure could reinvent RELS-*.
<eddies>the sort-of clever thing we can support is syncing the triples that have the root resource as the subject as jcr proprs
<ajs6f>Oh, yeah. That's cool.
That wouldn't be too hard.
Only one thing (not a big one):14:16
<eddies>well, i don't know if it's cool...
it's only a subset of the graph and i can see that causing confusion
<ajs6f>I would be hard to use HTTP URLs as identifiers, because a resource might be reachable by several paths.
Yeah, that's why I've been banging my head around14:17
<eddies>i don't follow…example?
<ajs6f>1) Federate a store.
<barmintor>when have we ever created confusion by privileging an arbitrary subgraph in the API?
<ajs6f>I _think_ I can figure out a way to get the whole graph into JCR.
I just have to map arbitrary identifiers and deal w/ blank nodes.14:18
And hide anything that doesn't represent a resource.
<eddies>umm…i think that's 95% of the difficulty
<ajs6f>Maybe (yet) another workspace.
The RDF workspace, where nodes represent RDF subjects that aren't Fedora resources.
Which is not visible to the API.14:19
But is queryable.
<eddies>is that a workspace per named graph?
<ajs6f>No, one big one, because discrete named graphs
<eddies>(please no)
<ajs6f>may use the same URIs.
<eddies>thanks =)
<ajs6f>Occam's knife: Multiply JCR workspaces endlessly.14:20
By chopping them up into bits, each of which becomes another.
Not as well known as the Razor thing.
<eddies>i think it's going to be messy14:21
<ajs6f>Ish.
<eddies>if we're allowing arbitrary named graphs
<ajs6f>Blank nodes would be used by UUID.
Arbitrary up to each one is associated with one and only one resource.
One-to-one mapping.
<eddies>then trying to reconstruct that arbitrary graph in a jcr tree and having to deal with updates sounds like…you're building a jcr quad store14:22
<ajs6f>Getting there. If we really want to do named graphs...
Maybe this whole exercise just resulted in an extension module.
<eddies>…that is probably more work to maintain than just integrating a dedicated quad store14:23
<ajs6f>But we still need a way to assert simple relationships between resources.
(I think we do.)
That's the FEDORA WAY!
<eddies>i do too
<ajs6f>So do you want me to cut down the scope.
?
To just resource-to-resource relationships?14:24
Or should I ask Andrew that now? :)
<eddies>well, that's why i said, i saw one possibility in, as barmintor put it, privileging an arbitrary subgraph
<ajs6f>There's no doubt in my mind what the most important subgraph is:
resource-to-resource.
<barmintor>wat could go wrong?
<ajs6f>JCR Properties can do that.14:25
* barmintor thinks ajs6f misspelled "DC"
<ajs6f>Fedora resource to Fedora resource.
<pivotal-bot>Chris Beer added "create user accounts for awoods" https://www.pivotaltracker.com/story/show/49318687
<ajs6f>Like object-to-object, object-to-datastream, datastream-to-datastream...
No literals at all.
A relationship API (as opposed to an RDF API).14:26
<eddies>right, but at least it's: any one-level property off the node
which probably satisfies the 80/20 rule
<ajs6f>Mmm… okay...
<eddies>by a good margin
not, here are some things in oai-dc space and here are some others in info:fedora14:27
<ajs6f>eddies: I've got people after me now who want blank nodes, because some XML-original metadata specs define an RDF mapping that
wants blank nodes. Like DC< or PBCore.
<eddies>well, those people should use a real quad store =)
<ajs6f>I'll tell them you said that. That should help. :)
<eddies>well, we'll support integration/indexing with a quad store14:28
<ajs6f>So any one-level property in only the Fedora namespace?
Or any one-level property (well, just property, I guess) in any namespace?
The latter, I would think.
<eddies>i guess strawman can do predefined namespaces, but ultimately, any namespace
<ajs6f>Okay.14:29
Although I think we may want to keep the namespace API separate to indicate that managing namespaces is an admin-ish function.
As it is now.
<eddies>oh, i think we also need to support auto-registering namespaces14:30
<ajs6f>Really? How often are you introducing new namespaces?
<eddies>i mean, if i just want to POST a chunk of RDF, i don't want to figure out what namespaces i have or haven't registered
<ajs6f>But you're _not_ going to POST a chunk of RDF to this (new) API.
Are you?
Are we going to define another subset of RDF semantics?
Like we did in the past?14:31
Or are we just going to say...
<eddies>eh? i thought that was the whole point, i can create whatever named graphs i want off any node
<ajs6f>I thought we just agreed that exactly that is out of scope?!
You can only create properties.
No blank nodes.
No other-than-the-resource subjects.
We don't _need_ named graphs if we're not doing that.
Simple JCR Properties will do that.14:32
<eddies>no, i meant that we let folks have their named graphs. but we can only support built-in queries of one-level props
<ajs6f>Oh, boy. Okay, so we _are_ allowing arbitrary RDF, which gets stored in a special node, but some of which gets piulled out into Properties?
<eddies>cake && eat $114:33
<ajs6f>(For queryability?)
The cake is a lie.
<eddies>yah
well, that's my idea, anyway
<ajs6f>And the special subgraph made of all triples that
have the resource as their subject.
<eddies>because the arbitrary rdf storage lets you integrate w. your dedicated quad store later
<ajs6f>Whether they are relationships or literals.
<eddies>for full on sparqly queries14:34
<ajs6f>Sparqly queries are vampires.
Okay, then the strawman I put up is still okay-ish.
<eddies>i thought so
<ajs6f>Because these are all ideas for impls.14:35
<eddies>which, ahem, we *do* care about
<ajs6f>We?
<eddies>party line
<ajs6f>Fedora: The Stalinist repository framework.
Well, then, I'm going to
change the name of the term to "fcr:graph"14:36
(still seems a little vague to me)
<pivotal-bot>Nigel Banks started "Ensure REST API supports workspace identifier prefixes by adding tests" https://www.pivotaltracker.com/story/show/49012389
<eddies>oh, i though fcr:gulag now
<ajs6f>I'm waiting for Andrew to salvage our nation.14:37
Like Khrushchev.
<eddies>i prefer fcr:graph to fcr:rels
<ajs6f>and then I'll writie something about identifiers.
<eddies>rels feels even vaguer to me
<ajs6f>If we're allowing arbitrary triples, then fcr:rels is wrong.
It's not just relationships.14:38
I don't have a better idea than "fcr:graph".
I've been assuming that we'll want the UUID to form the URI of a resource,
so that it is immutable under moves inside the repo...14:39
But that's going to make some ugly RDF.
Or, it could be regenerated on request, dynamically, based on where the resource is when the request is made.14:40
(As an HTTP URL.)
That's more like Linked Data.
<eddies>that's interesting14:41
i could see folks loving and hating that
<ajs6f>People have been wanting de-referencable RDF URIs for a while.
But then, I'm not always sure they've considered the implications for durability over the long term.14:42
<eddies>ajs6f: just so you're aware, i would totally anticipate assigning you some of the initial strawman impls of this
unless awoods wants to do it all14:43
<ajs6f>eddies: You have the choice of adding code I've written to the codebase. If that's really the kind of junk you think Fedora deserves.
<eddies>i'm sure barmintor can get behind a scala impl
which he can later rewrite14:44
<ajs6f>Scala would make all of this trivial.
<barmintor>You can't spell "Hell yes" without "scala"
<eddies>barmintor: i just discovered http://www.beermenus.com/beers/rodenbach-2008-vintage-oak-aged-barrel-9614:45
available at 6 places near new york!
0 in singapore
but that's b/c they don't know about the one in my fridge
<barmintor>one of those places (at least) is out of date :(14:46
the Community Beverage place is near my neighborhood
<eddies>i just love that this website exists. i think untappd should be integrated with this14:47
afk for a bit14:48
<barmintor>We have not even begun to plumb the potential of the beer website aggregators yet!
* ajs6f leaves15:04
* ajs6f joins15:14
gregjansen/awoods: We have a team listing here:15:26
https://wiki.duraspace.org/display/FF/Project+Team
if y'all want to stand up and be counted. :)
* ajs6f leaves15:29
<awoods>Thanks for your confidence, ajs6f, in my turning this socialist regime on-end... although, let me get to day-2 first.15:34
* ajs6f joins15:36
Fedora: All power to the Soviets!
<gregjansen>I am Spartacus!16:02
<pivotal-bot>Andrew Woods started "Add HTTP 1.1-friendly cache headers to our REST API responses" https://www.pivotaltracker.com/story/show/45458545
* ajs6f leaves16:28
* ajs6f joins16:31
* gregjansen leaves16:35
* gregjansen joins
<pivotal-bot>A. "Reticulated" Soroka added comment: "https://wiki.duraspace.org/display/FF/Graph+Management+API+Strawman" https://www.pivotaltracker.com/story/show/4906084516:44
<cbeer>i'm running our transactions idea by rhauch16:49
and he hasn't said we're totally crazy yet.
<ajs6f>Well, that may just mean that he's a polite person.
<cbeer>yeah.. he's taking awhile to respond to my clarification of what we want
he may be suffering fits of uncontrollable laughter.16:50
<ajs6f>He's probably got beer coming out of his nose.
<cbeer>https://github.com/ModeShape/modeshape/pull/800#issuecomment-17507132
woo!
i got code in modeshape
<ajs6f>We have infected MODE with Fedora cooties.
Exxxxcccellent.16:51
<cbeer>rhauch: cbeer: clone of existing repository could be expensive, as it literally requires copying the content of the source workspace. I think I'd try to avoid that.16:53
<ajs6f>Can we move things between workspaces?
(As opposed to cloning them.)16:54
Oh, but that wouldn't work in the face of conccurrency.
cbeer: Performance is _kind of_ a priority, right?16:57
<cbeer>is it? i thought data consistency was more important
<ajs6f>yeah, there's an order. I just mean that we sometimes have to make choices but we always prefer to make balances.16:58
<cbeer>i don't see it being used in may user-facing interactions in hydra/islandora
<ajs6f>Hm.
<cbeer>it's more about batch operations or something
<ajs6f>Tru.e
We use the (*()* out of the RI for user-facing stuff, but that's irrelavent in our new "tight kernel" world.
He's pushing us back towards session=txn, isn't he.16:59
That's the classic JCR way.
cbeer: If JCR sessions are thread-safe for our purposes, then they might be all we need.17:02
<cbeer>might be, yeah.17:03
the advantage to workspaces is less change to our existing API though
but, i guess we already talked about injecting a wrapped Session
<ajs6f>I can inject ANYTHING!
Seriously, I don't know that the API nees to change any more. It seems to me that that's a separate decision.17:04
rhauch: certainly reads should be fine17:07
The graveyard of concurrency.
* nbanks leaves
<cbeer>modeshape++17:11
<ajs6f>I second cbeer's emotion.17:12
And cbeer++ for doing the journalism to find the truth.
<cbeer>ajs6f: i always try to leave rhauch with a feeling of despair about the weird things we're trying to do17:13
<ajs6f>cbeer: I thought that feeling of despair was normal? Or is it just Fedora…17:14
cbeer: We have to report this for standup— the Session-based xaction scheme should again be our first line of attack.
cbeer: We _did_ invent a one actor - one transaction policy, right?17:21
or did I just make that up?
<cbeer>i think that's a reasonable policy.17:22
certainly only one actor can start and stop a transactions
what they do in the middle is up to them
<ajs6f>We're not getting into delegation, G-d help us.
You hand a thread a blank check, you take the consequences.17:23
<cbeer>ajs6f/eddies: i'm having trouble formulating the policy-driven storage scenario for a size-aware hint (or whatever) that can't be handled at our level already17:28
<eddies>cbeer: what do you mean "at our level already"?
<ajs6f>^^^ what he said
<cbeer>eddies: in fcrepo4
or, the fcrepo4 Datastream class, more specifically17:29
(and, eddies, what are you doing up?!?)
<eddies>i just finished a fedora governance call
<ajs6f>I already explained to Andrew that Eddie doesn't sleep and we expect no less from him.
<cbeer>in Datastream, we can just wrap the InputStream in something that makes sense and pass that onto modeshape
(e.g. a BufferedInputStream or something)17:30
and peek ahead to calculate the hint
are we governed?
seems like ajs6f has some ideas about a communistic cooperative17:31
<ajs6f>I live in a non-constitutional democratic republic operated as a plutocracy. eddies lives in a place where you can't spit.17:32
<eddies>cbeer: ok, this may not be at the level you intended, but the use case that i'm aware of driving size-based policy is something like, "i want datastreams with dsid MASTER and size > 30GB to be stored at /my/nfs/mount/to/cheap/slow/storage"
<cbeer>right. so in Datastream, we wrap the incoming request body with some kind of buffered input stream or whatever17:33
read ahead, figure out the size, go through our own mechanisms to derive the named hint
and pass the hint and the buffered stream to modeshape
* gregjansen leaves
<eddies>yeah, how's that read-ahead bit work, anyway?17:34
<cbeer>dunno. all the more reason to throw it back in the face of the application anyway.
<ajs6f>Doesn't that load the whole stream into core?
<eddies>are you staging it somewhere first or are you imagining a buffer that lets you rewind (i don't think the latter is going to work well/memory efficiently without some work)
<cbeer>seems like there's:
http://docs.oracle.com/javase/6/docs/api/java/io/BufferedInputStream.html
or http://docs.oracle.com/javase/6/docs/api/java/io/PushbackInputStream.html
and i'm sure they do terrible things.
like buffer stuff in RAM17:35
<ajs6f>Yeah, exactly.
<eddies>yeah, that's what i meant
<cbeer>but, again, all the more reason not to tie modeshape to one of those
<ajs6f>The whole point of a stream is that you don't know what comes in the future.
<eddies>how zen
<ajs6f>That's because I drink _tea_. You drink _coffee_, or you could say opaque and useless things like that, too.17:36
<eddies>cbeer: by throw back in the face of the application, you mean the client or modeshape?
<cbeer>i mean fcrepo4.17:37
make it none of modeshape's business how to calculate the size
and, if it's not calculating the size, fcrepo4 might as well evaluate policies to derive the named hint itself
<ajs6f>Unless the hint is17:38
<cbeer>unless we really want the modeshape config to have declarations that say.. this repository is only good for objects from 10MB - 100MB
<ajs6f>another binary characterisitic.
<cbeer>and i don't think we mean that
<ajs6f>I know our local repo doesn't do that well with big datastreams.
<eddies>i think i'm ok w/ leaving the remit for calc of size on fcrepo4 (or even the client)17:39
<cbeer>(yes, true.. the client could/should send request size information.)17:40
<ajs6f>cbeer/eddies: So this is about the border between policy-driven storage and the expectation that the repository will maintina certain properties autmatically?
<eddies>i.e., we encourage the client to provide size, as part of content-length header or somesuch, b/c it results in better performance it that matters to you
s/it/if/
ajs6f: no capito17:41
<cbeer>using repository-derived properties sounds like a good phase II story.
trust, but verify, and all that.17:42
<eddies>ah. i think i get it. yes, phase N story
<ajs6f>IOW, I don't want to give the repo everything I might want to base a policy decision on, because some of those things I want the repo to manage for me (like bitstream sizes). But then, this question of ho to manage them gets much more complicated.17:44
(How the repo manages them, I should have said.)
If we could say that "anything you want to use in a storage policy" must
be transmitted from the client, all of this gets real easy.17:45
But that's not a reasonable thing to say.
At least for some things.
* ajs6f leaves
<cbeer>awoods: i made your user accounts on futures1-618:06
<pivotal-bot>Chris Beer started "create user accounts for awoods" https://www.pivotaltracker.com/story/show/49318687
Chris Beer accepted "create user accounts for awoods" https://www.pivotaltracker.com/story/show/4931868718:07
<awoods>cbeer: thanks
I am trying to track down the hostnames...18:08
<cbeer>it's in an email from anusha to ff-internal
there's something special about the port too
<awoods>thanks18:09
<cbeer>but it's all in that email, except the password is different because i can't be bothered for something you're forced to change immediately
<pivotal-bot>Chris Beer added "run transactions idea by rhauch" https://www.pivotaltracker.com/story/show/49351529
Chris Beer edited "run transactions idea by rhauch" https://www.pivotaltracker.com/story/show/4935152918:10
Chris Beer started "run transactions idea by rhauch" https://www.pivotaltracker.com/story/show/49351529
Chris Beer accepted "run transactions idea by rhauch" https://www.pivotaltracker.com/story/show/49351529
Chris Beer added comment: "unable to make heads or tails of it using ruby or python. unclear if i'm doing something wrong or not." https://www.pivotaltracker.com/story/show/49012799
Chris Beer edited "Create a fcr:versions resource in the globbing branch" https://www.pivotaltracker.com/story/show/4879934718:11
Chris Beer edited "Ensure REST API supports workspace identifier prefixes by adding tests" https://www.pivotaltracker.com/story/show/49012389
Chris Beer edited "Update datastream and object responses to be path-oriented." https://www.pivotaltracker.com/story/show/49023823
Chris Beer edited "PUT /rest/{path} endpoint" https://www.pivotaltracker.com/story/show/49025839
Chris Beer started "Promote fcrepo-object-serialization into the core fcrepo4 API" https://www.pivotaltracker.com/story/show/4891115318:12
Chris Beer edited "Update fcrepo-http-federation for new globbing path API" https://www.pivotaltracker.com/story/show/49058049
Chris Beer added comment: "there's some indication this may exist, but got lost?" https://www.pivotaltracker.com/story/show/49156023
Chris Beer edited "Add text/xml output to field search api" https://www.pivotaltracker.com/story/show/49156023
Chris Beer added comment: "temporarily removed the TEXT_HTML annotation, so at least we get some XML." https://www.pivotaltracker.com/story/show/4921105918:13
Chris Beer edited "add an HTML representation for ObjectProfile" https://www.pivotaltracker.com/story/show/49211059
Chris Beer edited "REST API getChildren Doesn't respect Accept headers" https://www.pivotaltracker.com/story/show/4881802918:14
Chris Beer edited "REST API getChildren Doesn't respect Accept headers" https://www.pivotaltracker.com/story/show/4881802918:15
<awoods>success logging into all six vms.18:20
* barmintor leaves18:22
* fasseg leaves18:31
<cbeer>great. i think the rest is self-service.. or at least you can start the process (e.g. a ci account)18:39
<pivotal-bot>Chris Beer finished "Promote fcrepo-object-serialization into the core fcrepo4 API" https://www.pivotaltracker.com/story/show/4891115319:17
Chris Beer edited "Promote fcrepo-object-serialization into the core fcrepo4 API" https://www.pivotaltracker.com/story/show/4891115319:22
* github-ff joins
[fcrepo4] cbeer created integrate-object-serialization (+1 new commit): http://git.io/5L69qA
fcrepo4/integrate-object-serialization 4e143bb Chris Beer: integrate fcrepo-object-serialization into the default REST API
* github-ff leaves
<pivotal-bot>Chris Beer added comment: "https://github.com/futures/fcrepo4/pull/55" https://www.pivotaltracker.com/story/show/48911153
* github-ff joins19:23
[fcrepo4] cbeer opened pull request #55: integrate fcrepo-object-serialization into the default REST API (master...integrate-object-serialization) http://git.io/kJlQ-Q
* github-ff leaves
* kirua joins21:06
* kirua leaves