Chat log from the meeting on 2022-06-14

 [11:00] Ubit Umarov: oh andrew arrinved exaclty on time [11:00] Andrew Hellershanks: Hello, everyone. [11:01] Ubit Umarov: motoko on a more human like form, if one ignores the red eyes and ears [11:01] Motoko.Karu @login.digiworldz.com:8002: casual motoko today :) [11:02] Ubit Umarov: :) [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002: Not much happened this week, still tracking issues that have been trying their best not to give me some line numbers on the stacktraces [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002: I do get more reports of issues lately after the latest mono release which makes me worry it might be bugged in some way [11:02] Vincent.Sylvester @hg.zetaworlds.com:8002: Hard to test such things [11:03] Ubit Umarov: last few weeks i had been more busin making pic16f asm bugs [11:03] Ubit Umarov: busy [11:03] Motoko.Karu @login.digiworldz.com:8002: ohhh.. o_o pic microchip.. nice... [11:04] Ubit Umarov: little 16f1823 in the case :) [11:04] Motoko.Karu @login.digiworldz.com:8002: hopefully not the 16f84 :) [11:04] Andrew Hellershanks: Ubit, miracles do happen. ;) [11:04] Ubit Umarov: basicly it use [11:04] Ubit Umarov: f84 was great [11:05] Andrew Hellershanks: Bah, PIC. AVR, FTW ;) [11:05] Ubit Umarov: 1823 14 is modern derivative.. well not that so modern now [11:05] Andrew Hellershanks: Hello, Selby. [11:05] Motoko.Karu @login.digiworldz.com:8002: was nice for simple stuff... with a2d... got ridiculous [11:05] Selby.Evans @grid.kitely.com:8002: hi everyone [11:05] Ubit Umarov: tine 14pin case etc [11:05] Motoko.Karu @login.digiworldz.com:8002: ended up finding one that had built in a2d [11:05] Ubit Umarov: tiny [11:05] Motoko.Karu @login.digiworldz.com:8002: later moved to avr [11:05] Ubit Umarov: hi selby.Evans [11:05] Motoko.Karu @login.digiworldz.com:8002: darn bank switching always got me... [11:05] Ubit Umarov: wel avr is also microchip now [11:06] Ubit Umarov: yean it is a pain, source of many bugs [11:06] Andrew Hellershanks: Bank switching is one of the things that turned me off of PICs. [11:06] Ubit Umarov: also scary rom pages [11:06] Ubit Umarov: but not a issue on the 1823.. all rom fits on one page [11:07] Ubit Umarov: 24 also if i remember [11:07] Ubit Umarov: i did hate the 508 [11:07] Ubit Umarov: when i was forced to use it [11:08] Andrew Hellershanks: Not many people here today. I'll wait a couple more minutes before we start. [11:08] Ubit Umarov: i wanted to use avr.. bu tclient whated 12f508 at most 509 [11:08] Motoko.Karu @login.digiworldz.com:8002: never played much w/ the 12F's [11:09] Ubit Umarov: to 171822/23/24 for tiny projects is jsut great :) [11:09] Motoko.Karu @login.digiworldz.com:8002: wanted to jump to 18F..since many had mult-options... [11:09] Ubit Umarov: oops [11:09] Ubit Umarov: typos fix: so 1822/23/24 for tiny projects is just great :) [11:09] Vincent.Sylvester @hg.zetaworlds.com:8002: Andrew, I have almost completed the search stuff now, only left are some strange edge cases causing the search to trigger for no reason. It seems the viewer sends a empty search string to check if it is available or something, not sure what's going on there, but I keep getting invalid search terms errors just sitting on a region [11:09] Ubit Umarov: before used 684 :) [11:09] Ubit Umarov: similar models [11:10] Ubit Umarov: and bf ofc f84 [11:10] Andrew Hellershanks: Vincent, which of the searches have you been working on? [11:11] Ubit Umarov: ofc now all use arduino.. duhhh [11:11] Vincent.Sylvester @hg.zetaworlds.com:8002: Places, land sales and classifieds work properly now [11:11] Vincent.Sylvester @hg.zetaworlds.com:8002: Events I have nothing to test still as the handling for that is missing so nothing in the table at the moment [11:11] Ubit Umarov: always impressed by the sell price of current made in china arduinos [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: I cleaned up some stuff in there to make more concise queries [11:12] Andrew Hellershanks: Ubit, they are often ridiculously cheap. [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Bit of a mess with the tables [11:12] Ubit Umarov: cost less than the cpu [11:12] Ubit Umarov: if you go bye the parts.. [11:12] Ubit Umarov: buy even ;) [11:12] Vincent.Sylvester @hg.zetaworlds.com:8002: Originally wanted to reuse the functions for websearch, but that didn't quite work [11:12] Andrew Hellershanks: Vincent, ok. That is for core search? [11:13] Motoko.Karu @login.digiworldz.com:8002: I used to poopoo arduinos.. and needed to get a project done for a client, in a hurry.... was able to get something hacked together, with an arduino in a few hours..  [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Derived from the one you maintain yes [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: Just written in CodeIgniter framework to make it easier [11:13] Vincent.Sylvester @hg.zetaworlds.com:8002: But can be easily moved to straight php again [11:14] Andrew Hellershanks: Vincent, ok. You had me thinking for a moment that there had been some major changes somewhere as I had all those working with the ossearch module. [11:14] Andrew Hellershanks: Interesting that you saw an empty search query. I never noticed that when I was working on ossearch. [11:15] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah no idea where that is coming from yet, I am cleaning up things still since I added lots of logging [11:15] Vincent.Sylvester @hg.zetaworlds.com:8002: Once I can confirm all works I'll comment and document then you can have the code to transplant into plain php again [11:16] Andrew Hellershanks: Vincent, best to keep it in the code. The core of OS should not be (too) dependant on external pages for its main functionality. [11:16] Ubit Umarov: guess you 2 are talking about search modules = [11:16] Ubit Umarov: ? [11:16] Andrew Hellershanks: Ubit, yes [11:17] Vincent.Sylvester @hg.zetaworlds.com:8002: Well most of search is just sending the requests to the external thing, people and groups are handled directly, but the other things rely on external stuff [11:17] Ubit Umarov: well viewers do expect those things as external things [11:17] Andrew Hellershanks: Vincent, There is a separate table for events. They need to be created using an external web page. There is nothing in the viewer that lets you create them. [11:17] Ubit Umarov: and some do make sense to be external [11:17] Ubit Umarov: reason core has no search [11:17] Ubit Umarov: that is a grid side global thing [11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: It being php means a lot easier to implement a search engine as well [11:18] Vincent.Sylvester @hg.zetaworlds.com:8002: The websearch can do keywords and things [11:18] Ubit Umarov: well php can mean nothing.. regions so serve some *php urls :) [11:18] Ubit Umarov: i mean do serve [11:19] Andrew Hellershanks: The websearch part is tricky. I haven't worked out how to do a search across multiple data types and have the mixed results returned for presentation to the user. [11:19] Vincent.Sylvester @hg.zetaworlds.com:8002: lots of inner joins in sql [11:19] Andrew Hellershanks: It would require that. It can get rather messy. [11:20] Ubit Umarov: well ofc many searchs need data on several dbs [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: Once I figured you cannot mix charsets and collations without massive performance loss it now works rather well [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: You can probably do it in php too just joining arrays [11:20] Vincent.Sylvester @hg.zetaworlds.com:8002: Same thing [11:20] Ubit Umarov: there is something wrong on that [11:20] Ubit Umarov: possibel mysql and maria are jsut currently bad [11:21] Ubit Umarov: bc one is suposed to have diferent per table, and latin to be fast [11:21] Vincent.Sylvester @hg.zetaworlds.com:8002: I been told it's normal, which is hard to believe, but pigs can fly also [11:21] Ubit Umarov: possible normal for current coders [11:21] Ubit Umarov: insane what is goign on here and there [11:21] Andrew Hellershanks: Vincent, that might work. Most search results will come from one database but to include groups that typically will need a separate search as that data is in a different database. [11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: They also say subqueries are faster than inner join as well and I don't see a difference [11:22] Ubit Umarov: duhh the mono release absurd did pop up into mind [11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: Latest mariadb release gave me trouble also [11:22] Vincent.Sylvester @hg.zetaworlds.com:8002: performance schema migrations failed [11:22] Ubit Umarov: and the release notes lost the wrong version [11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: 10.3 to 10.8 probably was a bit much [11:23] Vincent.Sylvester @hg.zetaworlds.com:8002: All resolvable, but you don't catch it unless you check logs [11:24] Ubit Umarov: fear the days of good opensource code are gone [11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: Too many frameworks and grand ideas re-inventing the wheel... badly [11:24] Andrew Hellershanks: MariaDB is up to version 10.x? [11:24] Vincent.Sylvester @hg.zetaworlds.com:8002: 10.8 I think is latest release now [11:25] Ubit Umarov: had mantis about 10.8 ages ago [11:25] Andrew Hellershanks: ok. I have two remote machines that are using MariaDB. They are running with an LTS so they have a much older version of Maria. 5.5 something, IIRC. [11:25] Andrew Hellershanks: My computer still uses MySQL. [11:26] Vincent.Sylvester @hg.zetaworlds.com:8002: The mariadb versions included in the distro repos are ancient [11:26] Ubit Umarov: seems tris to use mysql and maria on osgrid just failed [11:26] Ubit Umarov: using them in multu server mode [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: There is something that is designed for such things [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: If you need distributed setups like that [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: CockroachDB [11:27] Vincent.Sylvester @hg.zetaworlds.com:8002: If that works better I got no idea, haven't tried it yet [11:28] Andrew Hellershanks: I haven't heard of that before today. [11:28] Vincent.Sylvester @hg.zetaworlds.com:8002: One of these new startup things so who knows how long that'll be around for or who buys them up in the end [11:28] Ubit Umarov: wel about recent opensim changes, not much [11:29] Ubit Umarov: o made a try to make fsassets a bit more robust when using several instances [11:30] Ubit Umarov: fsassets stores assets on a temporary folder and form, and has a thread that periodicly copies that to main folder and removes.. [11:30] Ubit Umarov: there can only be one thread like that running, bc code has no file locking provision, and linux seems to be a big fail [11:31] Ubit Umarov: some time ago alicia did add code to make sure there is only one thread on a process ( that can fire several instances fo fsassets ) [11:31] Ubit Umarov: i enclosed that on LOCK so make sure tehre is only one [11:32] Ubit Umarov: then added a ini entry to flag secondary services running on other process, so they don't try to run that threas [11:32] Ubit Umarov: not a pretty solution.. but lets see [11:33] Ubit Umarov: this issue may had cause a gird to lose data [11:33] Vincent.Sylvester @hg.zetaworlds.com:8002: A well placed lock can prevent a lot of trouble hehe [11:33] Andrew Hellershanks: :) [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: I have no encountered issues with assets like that having a branching php-based asset server, would think it would show up there too [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: Can imagine that there is some permission not being honored [11:34] Vincent.Sylvester @hg.zetaworlds.com:8002: Mono no care about file in use [11:35] Vincent.Sylvester @hg.zetaworlds.com:8002: Ideally you want to run fsassets under it's own user on linux too, makes it easier to maintain in a lot of ways [11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: Sadly none of the available designs are really working well for CDN. It works on short interval stale data, but that's a pain to setup unless you build the CDN yourself [11:37] Vincent.Sylvester @hg.zetaworlds.com:8002: Most providers don't have the level of control or grab the needed file info [11:38] Vincent.Sylvester @hg.zetaworlds.com:8002: I set it up with a failover, that works the best, but just a workaround not a solution [11:39] Vincent.Sylvester @hg.zetaworlds.com:8002: Someone really smart had the idea to use xml for all this which works great...not [11:40] Vincent.Sylvester @hg.zetaworlds.com:8002: I got a few requests this week regarding the inventory checking stuff of people reporting no inventory, seems at least one viewer has that out now already [11:41] Andrew Hellershanks: XML is useful for data exchange but not the best idea when passing a lot of data back and forth on a frequent basis. [11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: It's great if your structure is not fixed and you need to know what a parameter is yes [11:41] Vincent.Sylvester @hg.zetaworlds.com:8002: Otherwise it's more description than data in way too many cases [11:42] Vincent.Sylvester @hg.zetaworlds.com:8002: Plus we convert between sql to xml which probably is slower than just getting straight xml, hence in some cases a document DB might be better suited [11:42] Andrew Hellershanks: Right [11:42] Andrew Hellershanks: Plus the time it takes to parse all the text. [11:43] Vincent.Sylvester @hg.zetaworlds.com:8002: But redoing things like inventory or groups into like mongoDB is... makes my brain hurt [11:43] Ubit Umarov: well some comms btw regions and mysq lare text also [11:43] Ubit Umarov: pure sql comands [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: It's on my todo list to look into, there is potential there, but also a mountain of work and testing [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: And coding in the summer heat is infinitely more difficult [11:44] Vincent.Sylvester @hg.zetaworlds.com:8002: Especially without a pool [11:45] Andrew Hellershanks: Risky coding in the pool. If you nod off the computer might go for a swim. :) [11:45] Ubit Umarov: yeak [11:45] Ubit Umarov: computers do not swim well [11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: Could fill the pool with oil [11:47] Ubit Umarov: then not nice for humans [11:47] Ubit Umarov: :) [11:48] Ubit Umarov: one can actually run a pc on water [11:49] Ubit Umarov: several did it [11:49] Ubit Umarov: just destilated water etc [11:49] Andrew Hellershanks: 12 minutes before the top of the hour. I have a question. I heard that llSensor should be able to detect NPCs by using the value OS_NPC. However I've been told that only works with XEngine and not Y. I haven't confirmed that yet. Should there be any difference with llSensor based on the scripting engine in use? [11:49] Ubit Umarov: destilated water with little impurities is relative isolator [11:50] Ubit Umarov: ofc i would not dare to put the psu on water no matter what kind of water :) [11:50] Andrew Hellershanks: hehe... run it on water. FOr a moment I pictured a laptop floating on water. [11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: That should work on Y as well [11:50] Ubit Umarov: ohh linus did that to cooldown a mac [11:51] Ubit Umarov: basicly jsut did run it with back on water :) [11:51] Ubit Umarov: to find out it was also power throttled.. so no real gain [11:51] Andrew Hellershanks: Vincent, That's what I thought. It is always possible it is a scripting error. I tried to track down where OS_NPC is used to verify that is the correct value to detect an NPC. I found where the value is defined but I couldn't track down where it was used in the llSensor code. [11:52] Ubit Umarov: no wonder M1 could bet intel cpus on suck macs [11:52] Ubit Umarov: the poor intel cpus where just not allowed to run, with either thermal or power throttle [11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: I think the visitor logger I got keeps logging the greeter npc I have, think that uses a sensor [11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: Should be easy to test [11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: If you pastebin the script I can take a look at it in a few see if I can spot what might be wrong [11:56] Ubit Umarov: think OS_NPC has a issue [11:57] Ubit Umarov: there are actually 2 falgs [11:58] Ubit Umarov: OS_NPC_SENSE_AS_AGENT [11:58] Ubit Umarov: guess that is the one for sensros [11:59] Ubit Umarov: public const int OS_NPC = 0x01000000; [11:59] Andrew Hellershanks: Vincent, It isn't my script but I could get a hold of the person who has the problem with the script. [11:59] Ubit Umarov: not in use :) [12:00] Vincent.Sylvester @hg.zetaworlds.com:8002: Always easier to debug something with code at hand to see where the issue is [12:01] Andrew Hellershanks: Yes. [12:01] Ubit Umarov: don't remember what aht OS_NPC was suposed to be [12:01] Andrew Hellershanks: It did seem odd to me the difference in engine supposedly makes a difference. [12:02] Andrew Hellershanks: I don't even know where they read about using OS_NPC. [12:02] Ubit Umarov: ahh was to be a form of TYPW [12:02] Ubit Umarov: TYPE [12:03] Vincent.Sylvester @hg.zetaworlds.com:8002: Yeah think that was for isNPC and such [12:03] Ubit Umarov: on detect parameters [12:03] Ubit Umarov: but that is now 0x20 [12:03] Ubit Umarov: if((obj.colliderType & 0x21) != 0) // avatar or npc+ [12:04] Andrew Hellershanks: I found the sense as agent option in the code. It appears you need to set that flag when creating the NPC. [12:04] Ubit Umarov: colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs [12:05] Ubit Umarov: so that OS_NPC seems just obsolete.. there just because [12:06] Andrew Hellershanks nods [12:06] Andrew Hellershanks: I just pulled up the web page about osNpcCreate. It says that for sense as agent to work there is an ini setting that needs to be enabled. [12:07] Andrew Hellershanks: That gives me a couple of things I can follow up on with the person reporting the problem.I won't be surprised to find they aren't passing the flag when crating the NPC and that the ini setting isn't enabled. [12:08] Andrew Hellershanks: Thanks for the information. [12:08] Ubit Umarov: by default a npc should not be sense as a agent [12:08] Ubit Umarov: unless told to do so on npc_create [12:09] Ubit Umarov: rivate LSL_Key NpcCreate(           string firstname, string lastname, LSL_Vector position, string notecard, bool owned, bool senseAsAgent, bool hostGroupID) [12:09] Andrew Hellershanks: Yes, I think that is part of the problem they are running in to. The reason for being able to detect NPCs is to make sure they are removed from the scene when no longer needed. [12:09] Vincent.Sylvester @hg.zetaworlds.com:8002: I have a npc killer script somewhere [12:10] Vincent.Sylvester @hg.zetaworlds.com:8002: list inRegion=osGetAvatarList; osIsNpc(llList2Key(inRegion,i)) [12:10] Andrew Hellershanks: Vincent, if you find it send me a copy and I'll pass it along as another option for them to use. Not all grids will have the feature enabled in the ini. [12:11] Andrew Hellershanks: Vincent, That's simple enough. [12:11] Vincent.Sylvester @hg.zetaworlds.com:8002: From there you have the npc key and can just nuke them [12:11] Andrew Hellershanks: Right. [12:12] Vincent.Sylvester @hg.zetaworlds.com:8002: You can fetch the agent params via the key too to see if it's the one you want to remove [12:13] Andrew Hellershanks: Vincent, I'll pass that info along was well. ty [12:13] Andrew Hellershanks: We are now an extra 15 minutes past the hour. Any final items for todays meeting before we wrap things up? [12:14] Andrew Hellershanks: I dont see anyone typing so I will take that as a no. [12:14] Ubit Umarov: :) [12:14] Andrew Hellershanks: That will do it for another week. Thank you all for coming. See you again next week.