Time Nick Message 08:46 Farooq Hello. I was thinking about extending Redis support for auth. But there is a comment that Redis functionallity shouldn't be extended: https://github.com/luanti-org/luanti/blob/94a9b94baf5c6626b1f917ef2007e760786401e8/src/database/database-redis.cpp#L20-L26 08:47 Farooq The issue however is about "not" deprecating Redis. Some elaborations please? 08:48 Farooq Also from what I can see, for map and auth DBs, it's only key/value. So I'm wondering why SQL DBs has been used instead of something like LMDB or sled. 08:49 Farooq player db seems to be the same thing. key/value 08:53 sfan5 https://github.com/luanti-org/luanti/blob/master/src/database/database-sqlite3.cpp#L386 it's not 08:54 sfan5 most of the operations luanti does are indeed just "get this exact thing" or "insert or replace this exact thing" 08:55 sfan5 however having relational data is beneficial for future use cases and external tools that want to work with the data 08:55 sfan5 why sqlite and not something else? it's popular, embeddable, portable and readily available and also quite fast 08:55 Farooq that's what I mean. you use SQL but you use it like a key/value. For retrieval, you just do the key 08:57 Farooq LMDB has the same good features of sqlite but it's built specifically for key/value store 08:57 Farooq LMDB and/or Redis seem to make sense for Auth database 08:58 Farooq However that comment says Redis shouldn't be extended 08:58 sfan5 how would you store the auth data in redis and how does that help your use case? 09:03 Farooq Redis is much faster than sqlite. I'm not yet sure how. But Luanti needs to fetch password hash by name. right? For the auth part, we could do 3 "Hashes". name -> password, name -> last_login, name -> privileges 09:04 Farooq password would be a string, last login would be either a string or an integer. privileges would be an unordered set 09:05 Farooq wait redis doesn't have integer. last login would be a string, a timestamp 09:07 Farooq I think the details need to be worked out. But I gave the general idea 09:07 Farooq Should I open an issue? 09:11 sfan5 how many people do you have logging into your server that auth database performance becomes relevant? 09:11 sfan5 let's say sqlite can do 100 reads per second (and this is an extremely low estimate), do you have more than that? 09:13 Farooq TBH, I'm not sure. But sqlite does a B tree which has logarithmic time. The larger number of players the slower the read. Redis hashes or hashmaps, they do O(1). 09:15 Farooq My motivation is reducing lag on the CTF server. 09:17 sfan5 "look at everything and see if it can be made faster" isn't a bad approach, but I wouldn't say it's good either 09:17 sfan5 the good - and also more effective - approach is to first measure/profile where exactly the lag happens and then investigate these parts in detail 09:21 Farooq you are right. But unfortunately, I haven't got access to the CTF server 09:21 Farooq But is Redis deprecated or can new functionallity be added? 09:21 Farooq And what do you think about LMDB for map backend? 09:22 sfan5 given the current situation I would reject any features added to the redis backend 09:23 Farooq "current situation"? 09:23 sfan5 the context and use case you explained for adding auth via redis 09:23 Farooq No I meant in general 09:24 sfan5 in general no 09:24 Farooq no as in ...? 09:24 sfan5 no new features 09:24 sfan5 re LMDB: we don't need more map backends, especially not key-value ones when you consider https://github.com/luanti-org/luanti/issues/16118 09:25 Farooq what about improvements to already existing Redis backend? 09:25 sfan5 depends, but I would tell the contributor that they are wasting their time improving something deprecated 09:25 Farooq I see 09:25 Farooq because the comment there is misleading 09:26 Farooq it says it's deprecated but then links to an issue which says Redis should be un-deprecated 09:26 sfan5 it doesn't say that 09:27 sfan5 it says it's frozen for new features 09:28 Farooq I get it 09:28 Farooq Thanks for your time 09:28 Farooq I was hoping to find an easy and attractive issue to make my first contribution to the engine xD 09:29 Farooq But well I love optimization. JMA people have trusted me with their server. I think I will run perf with their server to see where things can be optimized. 09:46 MTDiscord Yes, that's generally the way to go: First identify a performance issue, then fix it. You can spend arbitrary amounts of time fixing fictive performance issues. 11:04 sfan5 merging #16169, #16182, #16158 in 10m 11:04 ShadowBot https://github.com/luanti-org/luanti/issues/16169 -- Minor lua_api.md improvements by grorp 11:04 ShadowBot https://github.com/luanti-org/luanti/issues/16182 -- Move one CI run to be on 64-bit ARM by sfan5 11:04 ShadowBot https://github.com/luanti-org/luanti/issues/16158 -- [no sq] Do not allow vector components to be nil or NaN + unit tests by sfan5 12:01 sfan5 it's nice how the msvc CI build randomly takes 40 minutes instead of 10 12:01 sfan5 (may contain sarcasm) 12:12 Krock how do I get "print" to output something in Luanti running in Wine? 12:13 Krock whatever. I suppose I need to use logging for that 12:16 sfan5 with wine running it from a terminal works 12:16 sfan5 on real windows it won't because a gui process doesn't have a console. remove -mwindows from compile flags to fix that 12:19 MTDiscord I'll bet we could speed up the MSVC CI to be on par with the other ones by caching the vcpkg install somehow. 12:20 MTDiscord It takes a few minutes to compile on my computer, and over a half hour to install dependencies. 12:20 sfan5 i thought it already did that? or at least tries 12:21 MTDiscord Huh, why's it so slow, then? 12:23 MTDiscord Because it's not using the cache you made. 12:23 MTDiscord It's redownloading everything. 12:23 MTDiscord Or at least recompiling everything. 12:24 sfan5 idk 12:24 MTDiscord It's also building both debug and release versions of every dependency. 12:24 MTDiscord So every dependency gets compiled twice. 12:26 sfan5 looks like the caching broke a while ago, compare https://github.com/luanti-org/luanti/actions/runs/14449346851/job/40517859967 and https://github.com/luanti-org/luanti/actions/runs/15281007441/job/42979764478 12:26 sfan5 Cache's key = 'localGitId=-1142056221-args=-15179912-os=1553167250-imageVer=-1723557972-appendedKey=-755526354-triplet=-755526354'. 12:26 sfan5 Restore vcpkg and its artifacts from cache 12:26 sfan5 ⏱ elapsed: 7.848 seconds 12:27 sfan5 the other has this and no mention of restoring cache: 12:27 sfan5 Running command '"C:\Program Files\Git\bin\git.exe"' with args '^"submodule^",^"status^",^"D:\a\luanti\luanti\vcpkg^"' in current directory 'D:\a\luanti\luanti'. 12:27 sfan5 error: pathspec 'D:\a\luanti\luanti\vcpkg' did not match any file(s) known to git 12:28 sfan5 possibly https://github.com/lukka/run-vcpkg/issues/243 12:47 Krock sfan5: that was actually the first thing I tried. 'enable_console = true' did not make any difference either. Well, core.log worked. 16:11 rubenwardy Hi, we have a user saying that can't use Luanti with their school kids as it's rated 13. They're asking a version without the server list so it can be rated lower 16:11 rubenwardy It's rated as 13 due to "moderate violence" 16:12 rubenwardy and in germany due to "fantasy violence" and "content for different ages" 16:14 rubenwardy idk if there's a way of adding optional parental controls which would satisfy the boards 16:15 [MatrxMT] Isn't Minecraft, a game with TNTs, exploding creatures etc rated 7+? 16:16 [MatrxMT] Yes, PEGI 7+ 16:16 rubenwardy I have no idea how they manage that 16:16 rubenwardy I think the reason we have higher is because servers can provide content that exceeds PEGI 7 16:17 rubenwardy ContentDB hides stuff above PEGI 7 on Android 16:17 rubenwardy whereas in Minecraft, servers don't provide custom content 16:17 [MatrxMT] An education version shouldn't feature a serverlist anyway 16:18 rubenwardy yeah. Or disabled by default and controlled by the school 16:18 [MatrxMT] My custom clients for schools are just Play and Quit basically. The activity should be tailored. The default client is too messy 16:18 [MatrxMT] Well the result in the USK rating is very opaque ("Fantasy-Gewalt, Inhalte für verschiedene Altersgruppen // Chats") so they don't really explain what exactly results in the USK12 rating. There is also no comparison between platforms to use as a reference. 16:19 rubenwardy maybe I could make a custom client with some URL which allows remote control of configuration like server etc by parents/schools 16:19 rubenwardy could have builtin support for customising the servers, so they could add specific servers there 16:20 [MatrxMT] I guess that's more work for us? 16:20 rubenwardy and by default would just not have a server list 16:20 Krock point the server list URL to 127.0.0.1. it's a matter of minetest.conf 16:20 rubenwardy well I would want there to be funding to do this somewhere 16:20 rubenwardy Krock: doesn't help with rating boards 16:20 rubenwardy or schools 16:25 rubenwardy okay this seems helpful https://usk.de/game-creator-plattformen-auf-dem-pruefstand-aenderung-der-alterskennzeichen-bei-unzureichendem-jugendschutz/ 16:25 rubenwardy Luanti is mentioned there 16:25 rubenwardy So the question is - with one Luanti client, if we can provide some parental controls on content, is that enough to make the boards happy? Or does it need a separate version that is fully locked down? 16:27 [MatrxMT] Don't we already have a stricter CDB filter for Android? (so I guess the answer is no) 16:27 Krock y5nw: that's the thing ruben mentioned a few minutes ago. age restriction. 16:27 Krock > ContentDB hides stuff above PEGI 7 on Android 16:27 rubenwardy Yeah. The serverlist doesn't do this 16:28 rubenwardy So the parental controls in this case would be (1) a button to disable the serverlist (2) more options for filtering content in CDB and the serverlist 16:28 MTDiscord i've considered making a serverlist proxy for that purpose 16:28 MTDiscord I'm getting a feeling that think-of-the-children compliance in all it's various manifestations runs fundamentally contrary to our goal of user freedom and we would want to offer it separately from the base no-bullshit-added edition. 16:29 MTDiscord YES! 16:29 MTDiscord It absolutely is. 16:29 rubenwardy If it's an optional feature then I think it's fine. If it's something that's forced on then should be a separate version 16:29 Krock add a dropdown where people can select their year of birth and filter stuff accordingly 16:29 MTDiscord I run my own personal server list proxy for parental control on my own network, as well as being able to privately announce private servers. Non-centralized filtering is a viable option. 16:29 Krock (doesn't work in practice but it's the best you can try to do) 16:31 MTDiscord The problem with optional censoring is that regulatory shit tends to expect you to enable all filtering by default and make it difficult to turn off, so it's hard to make it really as "optional" as we would want. 16:32 MTDiscord Tbh the easiest way to do the optional filtering might just be to publish separate builds to the platform stores. 16:32 MTDiscord side note: any status updates on the app transfer on google play? @celeron55 @nrz0 16:32 Krock c55 provided an update in the staff channel 16:33 MTDiscord which staff channel 16:33 MTDiscord Maybe a hypothetical "kid friendly" version could have hardcoded chat options, like the zone.com games in windows xp. ( ͡° ͜ʖ ͡°) 16:34 MTDiscord kids considered kid unfriendly, as they can swear at each other 16:34 Krock @luatic on IRC, for core devs. Needs an invite. 16:34 [MatrxMT] rubenwardy: Can we not just require institutions to host their own serverlists? (And unset the serverlist URL by default in restricted builds) 16:34 MTDiscord I wouldn't want to dedicate more code complexity to it than necessary to comply with the shit we want to comply with, since I'd want to keep the kid edition and full edition building from the same tree with no weird patching bullshit. 16:35 rubenwardy The institution may be blocked from using apps outside of the age rating 16:36 MTDiscord Joking aside, I think trying to make minetest more "kid-friendly" would be a huge mistake. As far as I know, minetest isn't being sold, so there almost certainly isn't any obligation to make it comply with age ratings. 16:36 rubenwardy what's minetest 16:36 MTDiscord Offering a locked down kids edition could make the platform more accessible to people with compliance needs, and then once they get their feet wet they might want to build something using the full edition with selective safety options enabled. 16:36 rubenwardy yeah 16:36 rubenwardy I just want to know if we need a separate locked down version or if this can be done with some settings 16:37 rubenwardy I guess the former is probably easier to just do 16:37 MTDiscord What is minetest, baby don't hurt me, don't hurt me, no more 16:37 MTDiscord Minetest is a free and open-source voxel game creation system. It is written primarily in C++ and makes use of a modified version of the Irrlicht Engine. 16:37 [MatrxMT] Luanti isn't ready for teachers yet anyway. Source: I'm one and I teach teachers STEM disciplines 16:37 [MatrxMT] Compare it to Scratch and you'll see the huge difference. Our UX is terrible 16:38 MTDiscord Even if we make it lockdownable via settings (which does sound good) we would probably want to publish a separate pre-locked-down build. 16:39 MTDiscord Attempting to chat would cause an immediate and permanent ban. 16:39 [MatrxMT] if we were somewhat serious about being an organisation, we could have a separate group of people focusing on an Edu version or at least planning. In here, on the contrary, we only have devs talking about code, mostly 16:39 MTDiscord Zughy: it's a long journey, no reason we can't take the steps that are in front of us right now, even if it won't get us there. 16:39 rubenwardy Yeah that would make sense, could solicite funding for the edu version too 16:40 rubenwardy and have some mods/games for it 16:40 rubenwardy and guides 16:41 [MatrxMT] warr1024: because you all lack the experience of what teachers might need 16:42 [MatrxMT] *knowledge 16:42 MTDiscord "if we're gonna do this, we might as well do it right" ... ah yes, the leading cause of death for Luanti initiatives. 16:42 [MatrxMT] so the risk is to waste a lot of time 16:43 [MatrxMT] Zughy: Would it make sense to put up an issue/discussion in the Luanti org to discuss this then? 16:44 MTDiscord What about the ux is bad? 16:44 [MatrxMT] Considering the other discussion we had, I think this belongs to one of the internal groups we suggested, more precisely communication -> education y5nw 16:44 Krock @nathan4220776 The new flat style buttons, for example. (hehe) 16:45 Krock oh wait I'm mixing UX with UI where I shouldn't. 16:46 [MatrxMT] but in order to assing such discussion to that group, we should make such groups official 16:46 [MatrxMT] *assign 16:46 sfan5 any complaints about merging game#3194? 16:46 ShadowBot https://github.com/luanti-org/minetest_game/issues/3194 -- Workaround for sign regression with 5.12 by ZenonSeth 16:47 [MatrxMT] Zughy: Or that. The thing is that this was already discussed once on the German-language Discord channel in February (and briefly on IRC - 2024-02-09), and the discussion did not get very far beyond technical issues (IMO) 16:47 celeron55 to me it seems what's really needed is a product owner for an edu version, who is tasked to bring up the necessary issues in an optimal way 16:47 celeron55 (optimal = make it happen with the least headache for everyone) 16:49 [MatrxMT] 2025-02-09* 16:50 Krock sfan5: no complaints from my side. according to my testing results, this will fix the issue for 5.12.0 and not break 5.11.0. 16:51 MTDiscord sfan5: no objection. it would be possible to replace the form instead but since it lives in metadata that'd be a bit nasty so not really worth it. just added in a comment referencing the issue real quick because i'd want to have that. 16:52 Krock @luatic In addition, there's likely multiple other mods that copied from MTG and thus cannot be easily changed 16:53 sfan5 done 17:32 MTDiscord celeron55 i'm not sure about what is th eresult, they cancel there is a transfer, they remove app at same time... 21:50 MTDiscord I'm pretty sure there's no need for any sort of centralized effort. You just need to allow launching a specific world or joining a specific server with no way to exit to main menu. 21:50 MTDiscord I.e. easy way to make it launch like that. 21:50 MTDiscord The rest should be done as games and mods. 21:54 MTDiscord And you shouldn't compare this to scratch, it's a different tool altogether, and in my experience, students hate scratch. It's just bad. 22:18 [MatrxMT] I literally teach these things, but sure 22:20 celeron55 it seems to me there should be some kind of a kiosk mode which is also possible to set up on android. i suppose it would have to be locked by password or something, as android doesn't want to allow external tools to edit the config