IRC logs for #farmOS, 2021-02-10 (GMT)

2021-02-09
2021-02-11
TimeNickMessage
[23:21:40]* svenn_ has quit (Read error: Connection reset by peer)
[23:22:04]* svenn_ has joined #farmos
[23:37:47]* svenn_ has quit (*.net *.split)
[23:42:16]* svenn_ has joined #farmos
[23:45:15]* JulianF has quit (Ping timeout: 246 seconds)
[23:45:25]* linus0[m] has quit (Ping timeout: 268 seconds)
[23:45:26]* ramses[m] has quit (Ping timeout: 240 seconds)
[23:45:36]* rocoroc[m] has quit (Ping timeout: 246 seconds)
[23:45:36]* symbioquine[m] has quit (Ping timeout: 246 seconds)
[23:45:40]* calbasi_matrix has quit (Ping timeout: 260 seconds)
[23:45:57]* jolau[m] has quit (Ping timeout: 246 seconds)
[23:45:57]* spiffyman[m] has quit (Ping timeout: 240 seconds)
[23:45:57]* mstenta[m] has quit (Ping timeout: 246 seconds)
[23:45:57]* jcalonso[m] has quit (Ping timeout: 246 seconds)
[23:45:57]* generalredneck[m has quit (Ping timeout: 246 seconds)
[23:46:05]* abinash[m] has quit (Ping timeout: 240 seconds)
[23:46:08]* abugida[m] has quit (Ping timeout: 260 seconds)
[23:46:08]* paul121[m] has quit (Ping timeout: 260 seconds)
[23:46:09]* todrobbins[m] has quit (Ping timeout: 260 seconds)
[23:46:09]* kunigunde[m] has quit (Ping timeout: 260 seconds)
[23:46:15]* gabriel_renoir[m has quit (Ping timeout: 265 seconds)
[23:46:15]* zedrckr[m] has quit (Ping timeout: 265 seconds)
[23:46:15]* munjoma[m] has quit (Ping timeout: 265 seconds)
[23:46:19]* wombat83[m] has quit (Ping timeout: 272 seconds)
[23:46:24]* dazinism has quit (Ping timeout: 240 seconds)
[23:46:26]* trishlatalera[m] has quit (Ping timeout: 240 seconds)
[23:46:36]* dge[m] has quit (Ping timeout: 260 seconds)
[23:49:44]* jgaehring[m] has quit (Ping timeout: 240 seconds)
[23:56:16]* linus0[m] has joined #farmos
[00:06:29]* dge[m] has joined #farmos
[00:07:04]* kunigunde[m] has joined #farmos
[00:09:26]* paul121[m] has joined #farmos
[00:09:27]* todrobbins[m] has joined #farmos
[00:09:27]* abugida[m] has joined #farmos
[00:09:30]* calbasi_matrix has joined #farmos
[00:09:32]* wombat83[m] has joined #farmos
[00:10:55]* JulianF has joined #farmos
[00:11:03]* rocoroc[m] has joined #farmos
[00:11:06]* ramses[m] has joined #farmos
[00:15:21]* dazinism has joined #farmos
[00:15:26]* symbioquine[m] has joined #farmos
[00:16:46]* zedrckr[m] has joined #farmos
[00:16:46]* munjoma[m] has joined #farmos
[00:16:58]* gabriel_renoir[m has joined #farmos
[00:17:14]* jolau[m] has joined #farmos
[00:17:17]* mstenta[m] has joined #farmos
[00:17:17]* jcalonso[m] has joined #farmos
[00:17:27]* generalredneck[m has joined #farmos
[00:17:52]* spiffyman[m] has joined #farmos
[00:18:23]* abinash[m] has joined #farmos
[00:19:05]* trishlatalera[m] has joined #farmos
[00:19:12]* jgaehring[m] has joined #farmos
[02:33:46]* DirtyGiraffe has joined #farmos
[07:32:29]* xouskO has joined #farmos
[07:32:33]* xouskO has quit (Connection closed)
[07:55:12]* funnel has joined #farmos
[07:55:17]* funnel has quit (Connection closed)
[07:59:28]* Chew has joined #farmos
[07:59:31]* Chew has quit (Connection closed)
[08:08:21]* robotrollYk has joined #farmos
[08:08:26]* robotrollYk has quit (Read error: Connection reset by peer)
[08:11:03]* Razielxp has joined #farmos
[08:11:34]* Razielxp has quit (Remote host closed the connection)
[08:12:40]* floogulinc has joined #farmos
[08:13:13]* floogulinc has quit (Remote host closed the connection)
[08:16:20]* promotevG has joined #farmos
[08:18:10]* promotevG has quit (Remote host closed the connection)
[11:34:17]* farmBOT has joined #farmos
[11:42:03]* naveenls[m] has joined #farmos
[11:42:41]<naveenls[m]>How to setup and use Oauth2.0 for making rest api calls
[11:44:11]<paul121[m]>Try these docs: https://farmos.org/development/api/#oauth2-details
[11:44:30]<paul121[m]>Specifically the Password credentials authorization flow: https://farmos.org/development/api/#password-credentials-grant
[12:09:38]* DirtyGiraffe has quit (Ping timeout: 264 seconds)
[12:36:55]* botlfarm[m] has joined #farmos
[12:41:07]* DirtyGiraffe has joined #farmos
[13:58:58]<generalredneck[m>skipping this month. I'm pretty behind on billibles and can really use the time to catch up.
[14:01:57]<mstenta[m]>My internet cut out at exactly 2 haha
[14:02:02]<mstenta[m]>Be right there...
[14:56:37]<jgaehring[m]>oh I meant to ask symbioquine more about the seed asset too... is that module in a public repo somewhere?
[15:05:19]<symbioquine[m]>Not yet, I was preparing to publish it a while back with my PR https://github.com/farmOS/farmOS/pull/285 but didn't go farther once that didn't pan out.
[15:05:44]<mstenta[m]>Oh yea I've been thinking about the trait idea again recently...
[15:05:56]<symbioquine[m]>My hope now is to build/share a seed asset for 2.x
[15:07:09]<paul121[m]>Interested in the traits too!
[15:08:41]<symbioquine[m]>Internally, I'm using code very similar to what's in that PR as part of building a seed asset - but I relaxed some of my constraints when I realized it wasn't going to be as straight-forward to share it as-is. e.g. there's some code in the view for transforming "externalIds" matching 'PI \d+' into links to USDA GRIN
[15:09:22]<symbioquine[m]>Ideally, there'd be extensible and not part of the core seed asset if i were maintaining a contrib version.
[15:09:48]<symbioquine[m]> * Ideally, that'd be extensible and not part of the core seed asset if i were maintaining a contrib version.
[15:12:18]<symbioquine[m]>jgaehring: I'd be happy to publish a rough copy of the current seed asset code I'm using if it would be helpful as an example - with the caveat that I haven't really been maintaining it for external consumption :)
[15:47:47]<paul121[m]>the ability for users to create these pseudo-fields on assets would just be soo cool.
[15:48:36]<paul121[m]>wrapping them in a "trait" system supported by core would be great
[15:49:33]<paul121[m]>basically a controlled & supported alternative to opening up the Field UI module to users & allowing them to create fields as they please...
[15:49:47]<symbioquine[m]>Yeah, for our use-case having a way to store arbitrary characteristics in a structured way is pretty important. e.g. Whether wheat is Winter/Spring/Facultative or whether beans are bush/pole/intermediate
[15:50:28]<symbioquine[m]>In my opinion the structure of those fields should be such that it doesn't wreck the UI for them to be very sparsely populated.
[15:51:57]<paul121[m]>ah yea - and thats a benefit of a "trait" system, right?
[15:52:09]<symbioquine[m]>yeah
[15:52:17]<paul121[m]>that alternative being that fields are created on ALL assets, no matter what
[15:52:39]<symbioquine[m]><paul121[m] "ah yea - and thats a benefit of "> Yeah. Though, there's lots of ways to achieve something similar...
[15:52:57]<symbioquine[m]><paul121[m] "that alternative being that fiel"> At least at the UI layer it works that way.
[15:54:06]<symbioquine[m]>It's also kind of clunky to create so many new tables/joins by modeling such things as Drupal fields.
[15:56:36]<paul121[m]>yeah
[15:57:41]<paul121[m]>Drupal fields just get a lot for "free" too - like API integration, revisions, etc
[15:57:51]<paul121[m]>but doesn't mean it doesn't come without baggage!
[15:57:53]<mstenta[m]>I wonder if something like the key value module would be worth considering
[15:58:16]<mstenta[m]>https://www.drupal.org/project/key_value_field
[15:59:36]<mstenta[m]>I've never tried it...
[15:59:51]<symbioquine[m]>Yeah, that looks pretty promising
[16:00:24]<mstenta[m]>Maybe a `trait` field on all asset types by default, as a key value field?
[16:00:38]<mstenta[m]>Worth dropping it in and playing around perhaps
[16:00:56]<symbioquine[m]>Yeah
[16:01:32]<mstenta[m]>Might serve the egg module needs to "this asset lays eggs"
[16:01:41]<mstenta[m]>* Might serve the egg module needs too "this asset lays eggs"
[16:02:09]<mstenta[m]>Can we migrate the "castrated" field to it? 😅
[16:02:31]<paul121[m]>a way to standardize the keys... such as taxonomy terms
[16:02:53]<mstenta[m]>Yea that's the trade-off
[16:03:00]<paul121[m]>maybe the keys could have logic to determine if they apply to certain assets (like an animal)
[16:06:27]<paul121[m]>and different value types... so you could store a "string" trait, "number" trait, perhaps an entity reference trait..
[16:06:47]<paul121[m]>similar to the quantity type
[16:07:54]<paul121[m]>traits that are derived from logs... like location or group membership
[16:08:32]<paul121[m]>not sure if these are sufficiently related :)
[16:09:10]<paul121[m]>but some kind of "trait" feature & abstracting out the "asset property derived from logs" would be great to chalk up for 2.1 maybe??
[16:10:40]<mstenta[m]>> traits that are derived from logs... like location or group membership
[16:10:40]<mstenta[m]>I was just going to bring that up
[16:11:02]<mstenta[m]>Are traits a field on the asset? Or will they need to change via logs?
[16:11:19]<mstenta[m]>Will you need to track the change itself (beyond asset revisions)
[16:13:24]<paul121[m]>hmm yea. maybe these should be separate
[16:13:56]<paul121[m]>thinking in terms of JSONAPI... its almost "intrinsic_attributes" and "derived_attributes"
[16:14:58]<paul121[m]>both under the `resource.attributes` umbrella
[16:16:18]<symbioquine[m]>At least for my use-case, I believe asset revisions are sufficient tracking for traits.
[16:17:08]<symbioquine[m]><paul121[m] "a way to standardize the keys..."> This could just be handled on the input side via a field validator and maybe a custom form input...
[16:17:56]<mstenta[m]>> Can we migrate the "castrated" field to it? 😅
[16:17:56]<mstenta[m]>this is one that would benefit from log tracking
[16:18:11]<symbioquine[m]>yeah, that makes sense
[16:18:49]<mstenta[m]>i could imagine a `trait` field on logs, which basically means "set these traits on referenced assets"
[16:18:49]<symbioquine[m]><paul121[m] "but some kind of "trait" feature"> Seems like unnecessary abstraction...
[16:19:16]<symbioquine[m]><mstenta[m] "i could imagine a `trait` field "> That would be nice :)
[16:19:20]<mstenta[m]>or `asset_trait` (to be more specific)
[16:19:33]<mstenta[m]>would that fit your use-cases too symbioquine and paul121 ?
[16:20:05]<mstenta[m]>(i saw you said revisions would fit your symbioquine - but would logs work as well?)
[16:21:40]<mstenta[m]>and then maybe a `trait` computed field on the assets themselves?
[16:21:49]<mstenta[m]>(like `location`)
[16:21:58]<paul121[m]><symbioquine[m] "Seems like unnecessary abstracti"> maybe. I might be thinking more like "utilities" for creating other fields computed by logs. For example the "Destroyed harvest" use case... maybe a "total harvest" computed field could help with this?
[16:22:37]<mstenta[m]>oh you mean from the "Loss of Product" forum topic?
[16:22:50]<mstenta[m]>cool yea that could be a way to handle it
[16:22:57]<mstenta[m]>(as a convention anyway)
[16:23:05]<symbioquine[m]><mstenta[m] "(i saw you said revisions would "> Yeah, either way can work
[16:23:18]<mstenta[m]>so... this also makes me think about the "asset life cycle/growth stage stuff"
[16:23:23]<mstenta[m]>are those just traits as well?
[16:23:33]<mstenta[m]> * are those just `trait`s as well?
[16:23:58]<paul121[m]>requiring a log to assign the traits seems like a bummer. like a UX/DX thing
[16:24:18]<paul121[m]>basically the same argument for not requiring movement logs
[16:24:22]<mstenta[m]>yea that's certainly a drawback
[16:24:52]<mstenta[m]>`intrinsic_trait` ;-)
[16:25:04]<mstenta[m]>(not suggesting that haha)
[16:25:23]<paul121[m]>if its "intrinsic", and I have 200 assets that need the same thing, it gets annoying. although one log that can assign multiple would help
[16:25:30]<mstenta[m]>right
[16:25:42]<mstenta[m]>that's where logs are useful... same with movements and group membership (and weight)
[16:25:44]<paul121[m]>> thinking in terms of JSONAPI... its almost "intrinsic_attributes" and "derived_attributes"
[16:25:45]<paul121[m]>I already did suggest it - ha!
[16:25:48]<mstenta[m]>so weight......
[16:26:04]<mstenta[m]>related?
[16:26:17]<mstenta[m]>(should weight be a trait (hey that rhymes)
[16:26:22]<mstenta[m]> * (should weight be a trait (hey that rhymes))
[16:28:12]<paul121[m]>hmm
[16:28:31]<mstenta[m]>(also not necessarily suggesting it... but all these things feel very similar)
[16:28:51]<paul121[m]>thinking about quantities in general. a trait's value could be a quantity
[16:29:08]<mstenta[m]>we might want to open a forum topic or issue to map out all the various pieces here... i'm really hesitant to add another subsystem without giving it holistic thought
[16:30:00]<mstenta[m]>(and unless we come up with some elegant and simple answer in the next month or two, it'll probably have to be 2.1+)
[16:30:15]<mstenta[m]>(which means also writing migrations, for eg: castrated, weights, etc)
[16:31:25]<paul121[m]>yeah
[16:32:08]<mstenta[m]>migrating weights off of quantities will be tricky either way
[16:32:35]<mstenta[m]>hmmmmmm
[16:32:46]<mstenta[m]>what about: a `trait` quantity type?
[16:32:56]<mstenta[m]>🤔
[16:33:23]<mstenta[m]>(maybe not... that would imply traits are always numbers)
[16:34:47]<paul121[m]>it does seem similar, where a trait entity + trait bundles would be useful
[16:38:00]<mstenta[m]>ah hmm
[17:03:44]<symbioquine[m]>Even finer than the bundle level, it would be nice to have some traits only appear in the UI for certain cross-sections of varieties. e.g. "awed-ness" should only apply to grains... 😁
[17:03:56]<symbioquine[m]>* Even finer than the bundle level, it would be nice to have some traits only appear in the UI for certain cross-sections of varieties. e.g. "awned-ness" should only apply to grains... 😁