Time Nick Message 07:53 [MatrxMT] seems like keeping a list of all flooded nodes and checking for when they dry up is a solution 07:53 [MatrxMT] then i can just use voxelmanip 12:42 bgstack15 I've been theorizing about hacking contentdb code so it would be possible to have a multi-backend ContentDB based on existing discussions on the repos. That is, a "contentdb proxy" that points to multiple real ContentDB instances. I would think it would be a stripped-down contentdb instance, that only implements lookups to the configured listed instances. 12:44 bgstack15 So it wouldn't have its own users or packages, etc. I think the use case of using it merely from Luanti frontend is the only one it would work with correctly, so no logging in, voting (?), etc. Would such a ContentDB-proxy need to implement only api/endpoints.py (which contains all the /api/ endpoints)? 12:46 MTDiscord youll have to decide how to merge rankings, or handle sources without ranking for ordering 12:46 MTDiscord totally havent done anything similar to this 12:46 MTDiscord abandoned it as it was pretty pointless/useless 12:47 MTDiscord curious what your use case is? 12:47 bgstack15 Yeah, this is just theorizing. We gotta start somewhere. 12:47 bgstack15 Doing it so it is possible. 12:47 bgstack15 I can't go to the moon, but maybe I can tinker on a contentdb proxy 12:47 bgstack15 By ranking, do you mean reviews, or number of stars? 12:48 MTDiscord https://content.luanti.org/help/top_packages/ 12:48 bgstack15 My first thought is to manipulate this cdb-proxy to just use an alias for each backend, e.g., cdb=https://content.luanti.org/, and then just prepending "cdb/" to each username. 12:49 bgstack15 so it'd be like looking for "cdb/wuzzy/coolpackagename" 12:49 bgstack15 instead of just "wuzzy/coolpackagename" 12:49 MTDiscord might work, but i have doubts 12:50 bgstack15 oh yeah, it's all just BS right now. I've run out of creative things to do in the game, lol 12:51 bgstack15 And wsor4035, since you asked, my use case is to easily provide my own mods that you have been struggling to get set up in the official ContentDB instance. I want easy access to official content and my own instance. 12:54 bgstack15 ooh, and I've just had a thought. The client could even configure the cdbp (cdb-proxy) just with query parameters. I'm thinking, https://contentdbproxy.example.com/?cdb=https%20%23%23content.luanti.org&internal=https%20%23%23localhost%308080%23 12:54 bgstack15 And yes, I realize I didn't get the url encoding right on those. 12:54 repetitivestrain another bug, coordinates provided to AreaStore queries are truncated into shorts with wraparound arithmetic 12:55 MTDiscord seems your straying into forking the client as well to support your proxy 12:55 bgstack15 oh, does the client not support configuring the url of the contentdb it reaches out to? 12:55 [MatrxMT] it does 12:56 MTDiscord you can change the url, but making it support your own api spec requires forking 12:56 repetitivestrain so that AreaStore::get_areas_in_area (vector.new (-32768, -32768, -32768), vector.new (32768, 32768, 32768), ...) (initially a typo in my code) produces no results whatever because it is actually interpreted as a query between vector.new (-32768, -32768, -32768) and vector.new (32768, 32768, 32768) 12:56 repetitivestrain vector.new (-32768, -32768, -32768), vector.new (-32768, -32768, -32768)* 12:56 [MatrxMT] I think the debian people complained that nonfree stuff exists on the ContentDB so the default config of then-Minetest was technically serving nonfree software from a free package 12:56 repetitivestrain don't you agree that this is not only confusing but also not documented anywhere 12:57 bgstack15 Hm, I don't want to change the api spec. Obviously because then clients would have to be modified to support it. So this will take more thought. 12:58 bgstack15 Blockhead256: yes, that is a very Debian thing to do. So that's part of the target use case, as well as like those 2 or 3 folks whose weed mods got removed due to the UK laws which govern CDB. 12:59 bgstack15 I can stop theorizing here if it'll spam everybody here. I have appreciated the input so far though! 12:59 MTDiscord i forget what, but the debian wiki had nonsense about cdb for the longest time 12:59 bgstack15 wsor4035: everybody knows Debian stuff lags forever. Arch wiki is where it's at, and I don't even use Arch. 12:59 MTDiscord also was extremely ironic as they had some mods as packages that where outdated af with license violations 13:00 bgstack15 wsor4035: I realize you are a volunteer with limited time, et al, but when you get a chance, please review that conversation about my mod. I have some more info there. 13:01 MTDiscord i saw it last night, crafty - i was to tired to dot all the i's and cross all the t's last night. probably tonight 13:03 bgstack15 Oh, yeah, so back to my // thing, the proxy would merely manipulate all package identifiers by adding /, so the client would merely be told that "/" is the author name. So yes, it would be exploiting that hopefully it doesn't strip out slashes from object names (which flask probably does, oh boy, there goes my plan). 13:03 bgstack15 or maybe just . 13:03 bgstack15 I'll poke at it. 13:07 [MatrxMT] if it strips slashes use another character :) Problem averted for now 13:07 bgstack15 Well, I want to make sure usernames cannot have whatever character I pick. 14:18 rubenwardy bgstack15: yeah I've been thinking about a `cdblite` which is a brand new backend implementation that allows (1) getting content from upstream instances (2) providing comment from local json files (could be version controlled) 14:18 rubenwardy the docs for this is https://github.com/luanti-org/contentdb/blob/master/docs/luanti_client.md 14:19 bgstack15 thanks, rubenwardy! I found that eventually. An old link to a minetest_client.md is lurking somewhere in ContentDB [static pages, presumably] 14:20 bgstack15 I fully expect my code is going to be garbage compared to yours, so maybe we should have a meeting where you explain what architecture you'd like to see and maybe I can get started working on something that meets your expectations. 14:22 rubenwardy It can be very simple. My recommendation is to make it as easy to deploy as possible 14:22 bgstack15 I'm stuck atm just trying to get a dev instance up without needing docker and postgres. *sigh* Maybe I should just use those. 14:22 rubenwardy so a single application, no docker or db, cache things to filesystem/memory 14:22 bgstack15 I don't want my proxy to need a db, yeah 14:22 rubenwardy I was thinking making it with go 14:22 rubenwardy (I don't have time for this) 14:22 bgstack15 Oof, that would be a stretch for me. I'm more of a py/flask guy. 14:22 rubenwardy (I don't have time to make cdblite, was hoping someone would do it) 14:22 rubenwardy haha same 14:22 rubenwardy would have been an excuse to learn go 14:23 bgstack15 I also know nothing about caching stuff to disk/memory. 14:23 bgstack15 Also I've just learned that my idea of using query params in the client's contentdb_url will not work (at first glance) because the client then adds query params for further requests. 14:24 bgstack15 so it's more of a contentdb_hostname and not a _url 14:24 rubenwardy you could do it as part of the URL path itself 14:24 rubenwardy proxy.com/upstream_domain+upstream_domin/ 14:25 rubenwardy plus is a space but looks cool encoded 14:25 luatic rubenwardy: agreed on go. unfortunately at the moment i don't really have time either :p 14:26 rubenwardy go has the benefit of being able to compile to a single distributable binary quite easily afaik 14:26 luatic yep 14:27 luatic should also consider something similar for the serverlist so schools can easily set up a proxy that whitelists a selection of servers 14:29 rubenwardy My recommendation for schools is to disable the serverlist and add any servers to user favourites 14:29 bgstack15 I would like to see the proxy/cdblite be configurable so that it either lets the client send its desired backends, or it can ignore those and use the preconfigured list. 14:30 rubenwardy actually maybe we should read a share file first 14:30 bgstack15 We can't solve the whole world's Internet trust problems, but we can make our tool configurable! 14:30 rubenwardy to make it easier to distribute saved servers 14:30 bgstack15 Ah, I liked being able to set up my own serverlist! 16:41 [MatrxMT] you could have instructions on a certain file to disable features by removing code 19:19 bgstack15 I've got a cruddy flask app that loops over the provided requested_backends, and browsing the content works, including caching the images on the client side! Unfortunately, I am stuck when I have it try to download. 19:19 bgstack15 I have the exact same content length as the backend contentdb, and exact same payload and same Content-Type. I cannot get --trace to get any more verbose on the client to show me what's wrong. 20:11 sfan5 try wireshark 20:40 erle Kimapr_ i have recently suggested to someone who likes riddles to play skyhell. let's see if you get more complai^W compliments! 20:41 Kimapr !! 20:41 Kimapr i should probably get into nodecore sometime, i haven't really played it much at all lately 20:43 bgstack15 Haha, sfan5, I finally figured it out. The contents were exactly correct. However, because of the author name manipulation I'm doing, where the package it searched was "bgstack15~http___vm4_/mcl_colored_chests" but it properly got back "bgstack15/mcl_colored_chests" the client was not finding the package in the response that it looked for in the request. 20:48 erle Kimapr i haven't figured out much nodecore actually. it's one of the best games though IMO. 20:48 erle Kimapr did you ever play hyperrogue? it's very nodecorian 20:48 Kimapr i did play hyperrogue 20:49 erle cataclysm dda is also kinda neat 20:50 erle because it has this energy of “if you assume video game tropes, you die” 20:50 erle i wish there was a minetest/luanti game that did that 20:50 erle exile is not that 20:53 Kimapr_ hmm, did my message fail to send? 20:53 Kimapr_ erle: probably won't get in much detail here as it's offtopic but i am recently obsessed with bytebeat music and made a ffmpeg demuxer for the javascript variety, i'm pretty sure i saw your name when browsing some bytebeat things 20:54 erle Kimapr yes i wrote a library for it and held a talk. long time ago! 20:54 erle i once had a coworker tell me that he did not recognize me from the video, but i arguably do look very different 20:59 erle Kimapr my personal opinion is that the code that you run to get a single sample should not be turing-complete so you can not have a halting problem when wanting to have a sample, but i think i am pretty much alone with that opionion, except for the author of the bytebeat ios app “glitch machine” (which libglitch basically emulates based on entirely legitimately acquired source code files) 20:59 erle legitimate salvage! 21:01 erle does anyone else have an MNT reform 2 and has performance tips other than “disable shaders” and “enable mipmaps”? i know the engine is wasteful, but i kinda think the game runs way worse than it should on the hardware. 21:01 erle like a laptop from 2021 should not give me worse performance than one from 2006 (but somehow it does) 21:02 erle i do use xwayland though, does that affect 3d performance? 21:04 bgstack15 I got the MVP for ContentDBProxy completed. I'm going to clean it up and dump it up on codeberg within the next few days. Technically I've only tried it when listing 2 instances, and not more. 21:05 erle bgstack15 oh, what does it do? 21:06 bgstack15 erle, it lets you set a contentdb_url that is crafted with multiple backend hostnames, so that you can point to more than one ContentDB in the client. It doesn't require any changes to the client other than the config entry. 21:06 pgimeno_ repetitivestrain: it would be a shame if your comment is lost and forgotten, maybe post it in #luanti-dev or in a GH issue 21:06 bgstack15 For the very few people that would want multiple ContentDB instances, such as a school one AND the public one. 21:06 sfan5 generally good advice is to use a recent luanti version but that's not compatible with "disable shaders" advice 21:07 sfan5 but also you can buy underpowered ARM hardware from 2021 and it will not perform better than average x86 hardware from 2006 21:07 bgstack15 But in general it would facilitate having an "unofficial" central ContentDB. 21:07 erle i see, it is again, my fault and not the fault of people removing functions i use! 21:07 bgstack15 (BYOD) 21:07 erle i was not asking for snark though, but advice 21:08 erle bgstack15 this vaguely reminds me of the fact that soemone (cora?) once showed me a cdb backend that was entirely static (which does need a modified client), so it could be hosted on random static hosts and mixed-and-matched 21:08 erle bgstack15 unfortunately i remember very little, or else i would give you a link 21:08 sfan5 erle: I do not have that hardware so I can't give specific advice beyond that 21:09 bgstack15 That does sound interesting, erle, but in a different direction that the inspiration for my current project. 21:10 erle bgstack15 obviously, yours does not need a modified client. but on anarchy servers, modified clients are more common. fleckenstein even made cheatDB, which was a contentdb for client side mods. 21:11 erle it kinda failed to get traction though, because 1. it turns out client side mods are intimately coupled to the APIs that alternative clients expose 2. you probably want all the client side mods you can get, it's only a couple dozen per unofficial client anyway 21:11 bgstack15 I'm much more a server guy than a desktop client compiler guy, so I tend to solve all my problems with more docker instances or python flask servers running somewhere. 21:11 erle i can relate to that, even though i used to use bottle.py instead of flask 21:11 erle it's great if you can change a backend and the frontend stays the same 21:11 bgstack15 I use the Luanti flatpak like a noob 21:12 erle spotted the fedora user! 21:12 erle :P 21:12 bgstack15 Hm, I used to be but now I run Devuan. 21:12 erle damn 21:12 erle i think the most impressive thing i have been shown on the server side was himbeerservers server multiplexer 21:14 erle bgstack15 out of curiosity: what is the use case for having multiple cdbs? private mods that are only used in a school/university and need to be published according to other rules? 21:17 erle like yes i read what you wrote before, but is it more “just in case” or do you have a current use case? 21:41 erle when i am standing at an angle to a wall and it stops being rendered at the screen edges, what is the setting that adjusts that? 21:41 sfan5 uhh 21:41 sfan5 near plane? 21:42 erle thx 21:43 erle the effect i have right now is that when looking at the wall directly it renders, when i look 90 degrees to the side it renders, but when i look at it between 30 to 75 degrees turned a part of it is not rendered (and i can see behind) 21:43 erle i will adjust the setting and report back 21:43 sfan5 if your device has a broken GL driver performance would be the least of my worries 21:45 erle i have so far only noticed two things that are definitely broken with the driver: 1. the green gear in glxgears has no hole 2. in neverball all ground textures are black. but minetest/luanti works fine. 21:46 erle what's the technical name of the near plane setting? i can't seem to find it 21:47 erle sfan5 the reason i was asking is also because i have had this in the past with e.g. upright sprites and it was an engine issue, not a driver one 21:48 sfan5 the near plane setting no longer exists in the engine 21:48 erle and like with the upright sprites it only happens when i am *right* in front of the wall 21:48 erle so i was guessing it's a similar bug 21:53 erle sfan5 do you remember why it was removed? i mean it doesn't get cheatier than “i can have xray if i turn my head” but i don't get why e.g. it was still left enabled on android. 21:55 erle i guess i have to live with unintentional xray 21:57 erle ttyl