[11:05] Joe Magarac: Over at SL, they've decided to go with WebRTC for voice. Bye bye Vivox.
[11:05] Joe Magarac: Ubit was at that meeting.
[11:05] Cuga.Rajal @rajal.org:9000: :O
[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Mention of peer to peer makes me worried
[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Doxxing go brr if they mess it up
[11:06] Joe Magarac: They're not supporting peer to peer voice.
[11:06] Cuga.Rajal @rajal.org:9000: So SL will do their own audio streaming?
[11:06] Joe Magarac: Yes. SL audio servers.
[11:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Will be fun on our end to come up with a solution
[11:06] Cuga.Rajal @rajal.org:9000: I mean for voice?
[11:06] Cuga.Rajal @rajal.org:9000: jeez
[11:06] Joe Magarac: Why not, the code is available for free.
[11:07] Joe Magarac: From a viewer dev perspective, this is a big win. No need to support Vivox.
[11:07] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah, but stuffing it into OpenSim as a module... not sure that's going to work well
[11:07] Cuga.Rajal @rajal.org:9000: I know many who just use Discord for voice chat while they are in OS
[11:08] Lyr Lobo: Hello! *waves*
[11:08] Cuga.Rajal @rajal.org:9000: not really a solution but practical during interim
[11:08] Joe Magarac: Right.
[11:08] Cuga.Rajal @rajal.org:9000: Hi Lyr
[11:09] Joe Magarac: I'm looking forward to supporting this. There is a 100% Rust implementatiion.
[11:09] Kayaker Magic: Lyr, we are chatting about LL's decision to switch from vivox to webRTC
[11:10] Joe Magarac: The only trouble is that LL won't document the interface. Someone has to read the LL client code.
[11:10] Joe Magarac: Bleah.
[11:10] Vincent.Sylvester @hg.zetaworlds.com:8002: On our end we first need to write a new protocol handler I guess, from there see if this ends up being part of freeswitch, which would mean feature limitations or if there is a webrtc thing we can stuff in there. Though I don't think latency and performance is going to be great when it all runs in OpenSim
[11:11] Vincent.Sylvester @hg.zetaworlds.com:8002: What's that like c++? ugh
[11:11] Joe Magarac: Google maintains the code, so it is at least well-exercised.
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Ah so is the google webrtc thing... that makes it easier, I was already developing in that direction when Vivox announced closure
[11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: One less headache if the viewer end is covered
[11:13] Joe Magarac: There are also Rust and Go implementations and a C# binding.
[11:13] Orbert.Tatham @hg.zetaworlds.com:80: With Vivox, the interface dosn't leak information about the users across to each other, at least nobody ever accused them of such. Does WebRTC have any suck privacy protections?
[11:13] Orbert.Tatham @hg.zetaworlds.com:80: *such
[11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Lyr, tug on Ubit's leash, he seems to still be playing at the park
[11:14] Lyr Lobo: hehe
[11:14] Vincent.Sylvester @hg.zetaworlds.com:8002: Supposedly all will run through their ad-hoc proxy whatever that actually means specifically, but that gives me some hope that it will be less doxxy
[11:14] Lyr Lobo: he was not feeling well yesterday
[11:14] Lyr Lobo: will check on him
[11:15] Cuga.Rajal @rajal.org:9000: good question Orbert.. that is a common concern that they will need to address
[11:15] Joe Magarac: It's funny. If it was pure peer to peer, it could be end to end encrypted. But you'd know the IP address of the other end.
[11:15] Orbert.Tatham @hg.zetaworlds.com:80: Yes
[11:15] Orbert.Tatham @hg.zetaworlds.com:80: Thank you, Cuga
[11:15] Cuga.Rajal @rajal.org:9000: Some won't even ise music streaming because of that issue
[11:15] Joe Magarac: So, anonymity or secrecy, pick one.
[11:16] Orbert.Tatham @hg.zetaworlds.com:80: I had some serioously psychotic stalkers in SL
[11:16] Orbert.Tatham @hg.zetaworlds.com:80: I need the anonymity for personal safety. There is no secrecy there
[11:16] Cuga.Rajal @rajal.org:9000: the only IP you should be able to see is the audio server
[11:17] Joe Magarac: That seems to be the plan for SL.
[11:17] Joe Magarac: WebRTC itself can do peer to peer but that is optional.
[11:17] Vincent.Sylvester @hg.zetaworlds.com:8002: That also means it's a bit easier to implement on our end as we have one point all goes through so we just need to hand it off to a webrtc server
[11:18] Joe Magarac: The big advantage of not doing peer to peer is that all the hassles of "NAT punching" go away.
[11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: ... yeah well unless everyone and their grandma running their grids from home suddenly want voice too, but eh that's on them
[11:18] Orbert.Tatham @hg.zetaworlds.com:80: SSL connections to the audio server covers a lot of the secrecy issues if you need them
[11:19] Joe Magarac: The operator of the audio server can listen in.
[11:19] Cuga.Rajal @rajal.org:9000: SSL quadruples the bandwidth it uses
[11:19] Joe Magarac: If you're running a grid, you have to be able to accept inbound connections anyway.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: The operator might regret that knowing what goes on out there
[11:20] Joe Magarac: Not sure how WebRTC does that.
[11:20] Joe Magarac: (was re SSL)
[11:20] Joe Magarac: Still no Ubit.
[11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah I'll have to manually log I guess
[11:21] Joe Magarac: On another subject, LL people said they are looking into replacing Havok. That's a future thing, though. WebRTC voice is underway now.
[11:21] Cuga.Rajal @rajal.org:9000: Just curious if anybody using mySQL for OS is using the "secure" connector option instead of legacy
[11:21] Vincent.Sylvester @hg.zetaworlds.com:8002: ll running outta money from all the AWS bills now wanting to get rid of license costs
[11:21] Cuga.Rajal @rajal.org:9000: oops i did not mean to hit enter on that now lol
[11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: Did that end up working?
[11:22] Cuga.Rajal @rajal.org:9000: Haven't tried yet
[11:23] Cuga.Rajal @rajal.org:9000: I could try now, I just need to find a reddit article on what configs to change
[11:23] Cuga.Rajal @rajal.org:9000: nobody raising their hand lol
[11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: Meanwhile, no commits this week, not much going on
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: I decided to just ditch old migrations as it became apparent the actual table changes are just maybe a dozen or so
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: So really doing a test for each possible version and writing specific migrations was much less work than the numbers initially suggested
[11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: Still have to finish that and test it, but it should mean that migrations will be more solid and each step is checked properly
[11:25] Vincent.Sylvester @hg.zetaworlds.com:8002: How this will look in future with possible table splits we'll see, but it's not complex to adjust anyways
[11:28] Cuga.Rajal @rajal.org:9000: Vincent, would you say that it's safe to install an old Opensim database backup on a new OS build, and have the migrations happen at startup time? (a lot easier than OAR/IAR imports)
[11:29] Kayaker Magic: I've done that.
[11:29] Vincent.Sylvester @hg.zetaworlds.com:8002: I won't vouch for anything, but technically the migrations were all just appended, so they should run through, assuming the migrations table still contains the correct version info
[11:30] Vincent.Sylvester @hg.zetaworlds.com:8002: It does tend to work, but obviously it's fire and forget so you only know if something didn't work when it blows up, so long as you have backups you can keep trying
[11:30] Cuga.Rajal @rajal.org:9000: great.. and probably less risky now that previous years
[11:30] Vincent.Sylvester @hg.zetaworlds.com:8002: sql is just text, so if something does break you can adjust the queries
[11:32] Cuga.Rajal @rajal.org:9000: I wonder what SL is going to use to replace Havok, and if it is off-the-shelf
[11:33] Joe Magarac: They don't know. They were asking us at simulator user meeting.
[11:33] Joe Magarac: Specifically regarding pathfinding.
[11:33] Orbert.Tatham @hg.zetaworlds.com:80: Hehe
[11:33] Cuga.Rajal @rajal.org:9000: Bullet! lol (Ubit not here)
[11:33] Orbert.Tatham @hg.zetaworlds.com:80: That would have been good for a laugh
[11:33] Vincent.Sylvester @hg.zetaworlds.com:8002: Idk what's worse, Rider writing code or asking SL users to make technical decisions...
[11:34] Orbert.Tatham @hg.zetaworlds.com:80: How many here have taken a shot at pathfinding only to have their server melt down?
[11:34] Joe Magarac: I have a good NPC system running in SL.
[11:34] Joe Magarac: I actually have a maze solver written in LSL.
[11:34] Orbert.Tatham @hg.zetaworlds.com:80: I wonder what the TPVs would do if they pushed pathfinding off to the viewers?
[11:35] Joe Magarac: SL animesh have no viewer of their own.
[11:35] Cuga.Rajal @rajal.org:9000: I have a Roomba Cat in SL that uses pathfinding... It was difficult to reproduce in OS
[11:36] Orbert.Tatham @hg.zetaworlds.com:80: How did you do it?
[11:36] Orbert.Tatham @hg.zetaworlds.com:80: I have the same in SL
[11:36] Orbert.Tatham @hg.zetaworlds.com:80: 'course it went through mesh walls...
[11:36] Lyr Lobo grins
[11:36] Joe Magarac: if you try to run SL pathfinding in SL above zombie speed it breaks.
[11:37] Lyr Lobo: Heinlein... The Cat Who Walked through Walls
[11:37] Cuga.Rajal @rajal.org:9000: looking for the LSL... it's not in My Suitcase
[11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: If a Minecraft data pack can implement a physics engine I should think you can make LSL do some basic collision avoidance fairly easily
[11:37] Orbert.Tatham @hg.zetaworlds.com:80: Which explains why I lost so many of my pathfinding kittens - they liked to run.....
[11:38] Kayaker Magic: I make my dinosaurs stay inside a parcel so they don't escape.
[11:38] Orbert.Tatham @hg.zetaworlds.com:80: Heinlein had fun with Schroedinger
[11:38] Joe Magarac: It's not easy. It is possible. Here's my code: https://github.com/John-Nagle/lslutils/tree/master/npc
[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002: Prims, uh.. find a way
[11:38] Kayaker Magic: LOL
[11:38] Cuga.Rajal @rajal.org:9000: I will bring my OS-converted roomba cat next time
[11:38] Joe Magarac: Won't work in OS, though. Uses llGetStaticPath for coarse planning.
[11:39] Vincent.Sylvester @hg.zetaworlds.com:8002: I just made the NPCs less stupid and added feedback events into them. Not great for performance, but it works
[11:39] Vincent.Sylvester @hg.zetaworlds.com:8002: The joys of open source
[11:39] Orbert.Tatham @hg.zetaworlds.com:80: Where's my AR-15 when I need it
[11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: Gonna need a bigger gun for that
[11:40] Joe Magarac: I get good performance from NPCs, but it took a year of work.
[11:40] Orbert.Tatham @hg.zetaworlds.com:80: That would have been an easy target
[11:40] Joe Magarac: Visit the docks in Port Babbage and one of my urchins will find ou and say "Allo".
[11:41] Joe Magarac: find you
[11:47] Kayaker Magic: <crickets>
[11:47] Vincent.Sylvester @hg.zetaworlds.com:8002: Yummy
[11:48] Vincent.Sylvester @hg.zetaworlds.com:8002: Ubit did explore newer versions of dotnet as well last week, with mixed results
[11:48] Vincent.Sylvester @hg.zetaworlds.com:8002: Apparently it does work, but 8 has a lot of deprecation notices so a bunch of stuff doesn't run natively on that version
[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002: Major things we use for a lot of stuff not being available anymore and no replacements that just drop in
[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002: System.Drawing falling away, with no good gdi implementation that doesn't require rewriting all the functions
[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002: Even then questionable how well that will with work
[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: dotnet 6 only has LTS for this year... that is unless Microsoft gets enough complaints to figure out maybe gutting a runtime isn't the best option
[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: Sure it's faster, cause there is less in it, duh -.-
[11:51] Orbert.Tatham @hg.zetaworlds.com:80: Welcome to the Micro$haft treadmill - it just gets faster and faster, never a pause to catch up, but it makes THEM money
[11:51] Vincent.Sylvester @hg.zetaworlds.com:8002: gdi implementation has bugs and performance problems... solution: Just remove it. Can't have bugs in something that doesn't exist
[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: Hm maybe that's why some people never get headaches huh
[11:53] Lyr Lobo grins
[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: We did look around a bit and there are some limited options for replacing gdi, but whether they have all the required features requires reading through quite a bit of code, since it's not all documented in detail
[11:53] Kayaker Magic: The code is the documentation
[11:54] Vincent.Sylvester @hg.zetaworlds.com:8002: With what's going on though that is off into later this year for now, maybe by then things become more clear
[11:54] Vincent.Sylvester @hg.zetaworlds.com:8002: Skiasharp I think it is called was one option that looks to also be faster, so dynamic textures might come back a bit quicker, but whether that supports the blending and transforms remains to be seen
[11:55] Vincent.Sylvester @hg.zetaworlds.com:8002: It seems the solution otherwise is shipping more precompiled dlls along
[11:55] Vincent.Sylvester @hg.zetaworlds.com:8002: At least if older version of runtime is present it just backwards compatible there for now
[11:56] Vincent.Sylvester @hg.zetaworlds.com:8002: Until they change their mind about that too
[11:57] Joe Magarac: Gotta go, next meeting. Thanks all!
[11:58] Cuga.Rajal @rajal.org:9000: tc Joe
[11:58] Vincent.Sylvester @hg.zetaworlds.com:8002: We are at the top of the hour, any other topics for today?
[11:59] Lyr Lobo: Thank you for a great meeting
[12:00] Cuga.Rajal @rajal.org:9000: Hope Ubit feels better soon
[12:00] Vincent.Sylvester @hg.zetaworlds.com:8002: Just not the same without his rants :)
[12:00] Kayaker Magic: LOL
[12:00] Motoko.Karu @login.digiworldz.com:8002: ^_^