| [10:12:21] | <mstenta[m]> | symbioquine paul121 fosten I won't be able to join the dev call tomorrow - a friend is coming to help with some chainsaw milling. |
| [10:14:20] | <symbioquine[m]> | Maybe you'll take some pictures to share? Always fun to see outside stuff folks are working on! (I wonder if we should create an "Off-topic" section on the forum... 🤔) |
| [10:14:33] | <mstenta[m]> | Sure! |
| [10:26:08] | <gbathree[m]> | <mstenta[m]> "symbioquine paul121 fosten I won..." <- chainsaw milling... words you made up. or a thing? Do you have a jig or something to chainsaw mill? |
| [10:31:51] | <symbioquine[m]> | <gbathree[m]> "chainsaw milling... words you..." <- It's a pretty standard thing. Also referred to as an Alaskan mill... |
| [10:32:16] | <symbioquine[m]> | symbioquine[m]: (the version with a jig that is) |
| [10:32:36] | <symbioquine[m]> | symbioquine[m]: Some people do freehand chainsaw mill, but that's much harder and more dangerous. |
| [10:33:07] | <mstenta[m]> | symbioquine[m]: We're doing it freehand :-) |
| [10:33:28] | <mstenta[m]> | mstenta[m]: Although I was talking with botlfarm about the alaskan mills... not too expensive |
| [10:33:40] | <mstenta[m]> | mstenta[m]: If I end up doing more than just this I'll probably look into getting one of those |
| [10:34:01] | <symbioquine[m]> | mstenta[m]: https://www.youtube.com/watch?v=Z5K3iOqf2p0 |
| [10:35:50] | <symbioquine[m]> | symbioquine[m]: That guy has a design for a chainsaw mill jig that's made from extruded aluminum, I haven't tried making one yet since I have a Granberg that's easy to borrow, but it's tempting. |
| [10:36:53] | <mstenta[m]> | symbioquine[m]: Cool! |
| [10:49:24] | <mstenta[m]> | OK this is pretty cool, check this out... I asked ChatGPT to whip up a quick plant bed spacing calculator for me, which I just copied and pasted into a code sandbox for testing. After some back and forth this is what I ended up with: https://svelte.dev/playground/bb17776fca8e4aaa97d8244c03dc1bd1?version=5... |
| [10:51:33] | <mstenta[m]> | I did another thing like this recently to test out a simple "Date + Done" widget (when you change the date to past/future, it auto-toggles a checkbox to "Done" or not). Svelte seems like it could be a good option for some small self-contained components like these in farmOS. |
| [10:52:32] | <mstenta[m]> | For the plant spacing one, I just wanted something quick for my own calculations, and this was probably faster than sifting through junky search results looking for an existing tool. |
| [10:52:56] | <mstenta[m]> | Curious if anyone knows of existing tools though! Might be worth a forum topic... :-) |
| [10:53:12] | <mstenta[m]> | symbioquine: You made something like this, right? |
| [10:53:45] | <symbioquine[m]> | mstenta[m]: You're thinking of the bed generator functionality in the land drawing tool I suspect. |
| [10:54:15] | <mstenta[m]> | Oh yess that was it |
| [10:54:36] | <mstenta[m]> | That combined with your grid snapping tool 😄 |
| [10:55:05] | <mstenta[m]> | Having a simple bed spacing calculator like this in the Crop Planning module would be really nice |
| [10:57:13] | <symbioquine[m]> | mstenta[m]: Yeah, I'd be surprised if ChatGpt can do the OpenLayers version 😆 |
| [10:57:38] | <mstenta[m]> | Yea |
| [10:57:55] | <mstenta[m]> | And obviously this one is just a sketch... but pretty cool to take it as a starting point! |
| [11:00:02] | <symbioquine[m]> | mstenta[m]: Needs negative/decimal form validation for one 🧐 |
| [11:01:06] | <mstenta[m]> | > Svelte seems like it could be a good option for some small self-contained components like these in farmOS. |
| [11:01:06] | <mstenta[m]> | The biggest hurdle still seems to be the build tooling... I'd love to be able to start experimenting with little Svelte widgets in farmOS, but the strategy we have right now with farmOS-map.js and farmOS-timeline.js (with their separate repos and build process) feels like a burden |
| [11:01:38] | <mstenta[m]> | Talked with paul121 a bit about making a farmOS-widgets.js library... which we could throw a bunch of small things into. |
| [11:01:46] | <mstenta[m]> | But still... I wish there was an easier way. |
| [11:45:17] | <gbathree[m]> | +1... creating simple modules following standard formulas, esp. now with Gemini 2.5 which seems to be quite good, I think is very possible. It's on my list to try this again but for a more well defined task (I mostly just messed around with it before), and it's important to provide well defined context + specifications (apparently). |
| [11:45:17] | <gbathree[m]> | I also want to try a single-page application which has in it's context the FarmOS documentation + conventions, the Asset lists from the farm (Plant, Field, Equipment, etc.) access to convention schema validators, and using structured data mode (which many models now have) if it can take speech and generate valid api to push to a farmOS instance. I think this is probably very very possible with high success now. |
| [11:45:17] | <gbathree[m]> | A single page application would be very simple to maintain, require not installation, and could be opened alongside your farmOS page so no login would be required because you'd already be logged in... so it dramatically simplifies the whole application. (is this true? I'm assuming...) |
| [11:48:58] | <mstenta[m]> | That's basically how Asset Link works (SPA served by the farmOS server on the same domain so it can piggy back on the existing cookie authentication). Asset Link also has it's own plugin code sandbox/editor so you can experiment with JS code in your browser, without needing to modify any server code. |
| [11:49:16] | <mstenta[m]> | I think that's the real win... not having to touch server code at all. |
| [11:49:53] | <mstenta[m]> | That removes a whole set of hosting, maintenance, and security considerations |
| [11:50:15] | <mstenta[m]> | Security (in terms of resource access control) is handled by the API itself |
| [11:51:48] | <mstenta[m]> | mstenta[m]: The only drawback (but also an advantage) to this is the code only exists in your browser, so it isn't shared with anyone else. But it's great for experimentation and development. Then when you've got a plugin that's ready for sharing you can package that up into a versioned module (which DOES require installing on the server). |
| [11:52:44] | <mstenta[m]> | symbioquine: I feel like we talked about this before but... in theory we could enable saving plugins from asset link to configuration entities in farmOS, so they do persist across users/sessions without the need for a module. |
| [13:01:33] | <symbioquine[m]> | <mstenta[m]> "symbioquine: I feel like we..." <- Definitely do-able, I'm just not sure how much need there is for a middle-ground between "local experimentation with plugins (that can then be shared)" and "a curated set of plugins managed by the site admin". |
| [13:03:05] | <symbioquine[m]> | It should also be possible with the current API to write a plugin that dynamically loads other plugins - i.e. from config entities |
| [13:07:06] | <symbioquine[m]> | The UX of the existing plugin management page wouldn't really handle that very well, but one could simply write an alternative [ManagePlugins.alink.vue](https://github.com/symbioquine/farmOS_asset_link/blob/b5ac59dbf61726731b...) plugin that takes care of showing those correctly - and the editing UX for saving the config entities. |
| [13:07:59] | <symbioquine[m]> | Longer run, I'm also happy to consider merging that kind of functionality into Asset Link core if folks are excited about it. |
| [13:09:16] | <symbioquine[m]> | One challenge I see though is the question of who's allowed to author plugins that run in other user's browsers. Could be a little risky if the intention is that regular users are authoring those plugins. |
| [13:14:03] | <symbioquine[m]> | That said, plugins do not necessarily need to be "code". They could be JSON or some other format that is interpreted by other plugins which are trusted code. (Doing this successfully without creating unnecessary [inner-platform](https://en.wikipedia.org/wiki/Inner-platform_effect) complexity is a classic challenge.) |
| [13:14:15] | <symbioquine[m]> | * plugins which **are, * are** trusted |