Time |
Nick |
Message |
00:25 |
|
ShadowBot joined #minetest |
00:37 |
|
Lesha_Vel joined #minetest |
00:42 |
|
Verticen joined #minetest |
00:56 |
|
smk joined #minetest |
01:26 |
|
fluxionary joined #minetest |
01:27 |
|
sweetiebot joined #minetest |
02:01 |
|
gxt__ joined #minetest |
03:27 |
|
sweetiebot_ joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
04:16 |
|
Verticen joined #minetest |
04:34 |
|
behalebabo joined #minetest |
05:09 |
|
YuGiOhJCJ joined #minetest |
05:32 |
|
calcul0n joined #minetest |
05:47 |
|
YuGiOhJCJ joined #minetest |
06:08 |
|
fling joined #minetest |
09:16 |
|
Guest54 joined #minetest |
09:22 |
Guest54 |
ROllerozxa given that https://content.minetest.net/packages/ryvnf/mineclonia/ was approved and is most certainly not a fork of https://git.minetest.land/Mineclonia/Mineclonia/ but of mcl2, how do you propose i change the description of my mods that “were tested with mineclonia” (not the rvynf one) and the original project? see here for an |
09:22 |
Guest54 |
example: https://forum.minetest.net/viewtopic.php?p=416364&sid=a7caf3df08b60f6b21a8aca164f47ecd#p416364 |
09:23 |
Guest54 |
(also that server owner may be surprised a bit) |
09:29 |
Guest54 |
(i have no issues with ppl who were disappointed by me disappearing doing a new/similar project, but using the same name without is a bit weird) |
09:30 |
Guest54 |
s/without// |
09:30 |
MTDiscord |
<Fleckenstein> wasn't Mineclonia started by ryvnf in the first place |
09:30 |
Guest54 |
no lol |
09:30 |
Guest54 |
rynvf left because “too much buerocracy” |
09:31 |
Guest54 |
i think? |
09:35 |
MTDiscord |
<Fleckenstein> im pretty sure he created it and made all the initial commits |
09:35 |
MTDiscord |
<Fleckenstein> after the fork from MCL2 |
09:35 |
Guest54 |
let me look it up |
09:35 |
MTDiscord |
<Fleckenstein> that's how i remember it and the git log says so as well |
09:36 |
MTDiscord |
<kimapr> which git log |
09:36 |
Guest54 |
https://git.minetest.land/Mineclonia/Mineclonia/pulls/2 |
09:36 |
Guest54 |
but https://git.minetest.land/Mineclonia/Mineclonia/issues/1 was the actual first commit with the name mineclonia |
09:36 |
Guest54 |
(by n_to) |
09:37 |
Guest54 |
i mean the first issue |
09:38 |
Guest54 |
i think originally wuzzy came up with that name but no one had made a game with it or so? |
09:39 |
MTDiscord |
<Fleckenstein> yes, the name is from Wuzzy |
09:43 |
Guest54 |
anyway, let me see if it is compatible lol |
09:54 |
Guest54 |
okay, turns out lol |
09:54 |
Guest54 |
i think the gameid is case-sensitive |
09:55 |
Guest54 |
so old Mineclonia uses “Mineclonia” as gameid and new one uses ”mineclonia” |
09:56 |
Guest54 |
this will surely lead to no confusion whatsoever, haha. but it does prevent old worlds from switching over automatically, which means this is not a “well you can't change it back now” scenario. |
09:56 |
rubenwardy |
ContentDB only allows lower case, Mineclonia wouldn't be allowed on cdb |
09:56 |
rubenwardy |
also, don't confuse name with game id |
09:56 |
Guest54 |
i am talking about the case “what if now someone has a world and sees oh this thing is on cdb” |
09:56 |
Guest54 |
it will not switch over, which is good, because then they need to figure out why, hopefully find the issue and then choose |
09:57 |
rubenwardy |
(name in game.conf is the title, not the game id) |
09:57 |
Guest54 |
am i wrong on this? |
10:02 |
MTDiscord |
<ROllerozxa> (re: the message I was highlighted in) both the old and new mineclonia are compatible with mineclone 2 API wise though? |
10:05 |
Guest54 |
ROllerozxa in both cases it is “forked from a specific revision of mineclone2 that was deemed ‘good enough’ but may be lacking some newer stuff as time goes on”. the issue with mcl2 vs forks is mostly that mcl2 has a history of not being particularly compatible to *old versions of itself*, i.e. you can guarantee compat to a specific |
10:05 |
Guest54 |
version, but not general API compat since things are renamed. see, for example, the thing with all lapis items turning into blue dye because mcl2 wanted to re-use the item name. |
10:07 |
Guest54 |
there is also the issue of putting new stuff in existing mods. |
10:07 |
Guest54 |
like, when mcl_core contains crying obsidian and you want to make a mod that wants crying obsidian, what do you do? |
10:07 |
rubenwardy |
adding new stuff to mods? Outrageous |
10:08 |
Guest54 |
well, i mean in a way that it is not 100% compatible anyways |
10:08 |
Guest54 |
i am pretty sure the majority of ppl who create mods know how to, for example, use aliases |
10:09 |
rubenwardy |
I care so much about compatibility, I never add new stuff to my mods |
10:09 |
Guest54 |
hehehehehe |
10:09 |
Guest54 |
well, in a modpack with dozens of mods adding decorative nodes is best done under a new name imo |
10:10 |
Guest54 |
because then others can depend on them |
10:11 |
Guest54 |
anyway, an example: mcl_villages:tool from Mineclonia or MineClone2 0.71.0 does become an unknown item in mineclonia or MineClone2 whatever-is-the-current-version |
10:12 |
Guest54 |
i mean, it's not a particular important item and not obtainable without creative mode |
10:12 |
Guest54 |
(or so they claim lol) |
10:12 |
MTDiscord |
<ROllerozxa> ah mineclone |
10:13 |
Guest54 |
so yeah, you can't really make compatibility promises. that also affects third-party mods. for example, rudzik8s additional mineclone furniture mod will stop having textures on some chairs and desks i think because the textures got pointlessly renamed. |
10:14 |
Guest54 |
in the next mineclone2 release |
10:14 |
Guest54 |
now since that mod is a year old and certainly the plans were on display in a dusty filling cabinet in a disused lavatory with a sign on the door “beware of the leopard” i guess it is totally justified ;) |
10:17 |
MTDiscord |
<ROllerozxa> wait they renamed the textures now? |
10:17 |
Guest54 |
ROllerozxa you are in for a world of fun |
10:17 |
Guest54 |
soooooooo |
10:18 |
Guest54 |
ROllerozxa for reasons™, the idea was to put all the textures of all mods into one big texture directory. that means suddenly you need to prefix them with each mod name to know which mod they belong to … instead of, say, putting them into the mod texture directory in the first place. |
10:19 |
Guest54 |
ROllerozxa it obviously breaks texture packs and mods that assume that texture names that were stable for years do not change |
10:20 |
MTDiscord |
<ROllerozxa> yeah I heard they mashed all the textures in one folder. have they begun renaming them already, or is it still a mess of MTG-compatible texture names for core textures? |
10:21 |
Guest54 |
https://git.minetest.land/MineClone2/MineClone2/pulls/3456 |
10:21 |
Guest54 |
ROllerozxa IMO it's a bunch of “do the first thing that seems a good idea” and then you need to followup with other stuff and get a cascade of issues. |
10:23 |
Guest54 |
my favourite “for want of a nail” story here is: 1. borked mcl_dye refactoring → 2. all lapis turns into dye, all bonemeal turns into dye etc. → 3. add compatibility recipes to make people turn back dye into lapis → 4. disable getting dye from flowers so people do not get lapis from flowers |
10:25 |
MTDiscord |
<ROllerozxa> well I see where they're coming from with the textures, they want to leave their MTG mod soup roots and make things neater but... it's also gonna break literally all texture packs, including ones that have basic mineclone compat by virtue of sharing texture names |
10:26 |
Guest54 |
it has nothing to do with leaving mtg mod soup roots |
10:26 |
rubenwardy |
fairly easy to make a script to migrate texture packs |
10:26 |
Guest54 |
rubenwardy oh the thing is that currently the texture packs work for mtg and mcl2 |
10:26 |
Guest54 |
well, anyways, they currently *work* lol |
10:27 |
|
mrkubax10 joined #minetest |
10:29 |
MTDiscord |
<ROllerozxa> some default override.txt that maps mineclone2 textures to MTG counterparts would be nice, though, if they're going through with it |
10:29 |
Guest54 |
ROllerozxa then there are also gameplay things. for example, mineclonia (new) is forked from a version of mcl2 that has mobs you can noclip through, whereas mineclonia (old) is forked from a version of mcl2 that has mobs that are solid and it was deliberately not changed, because you can not hop on a mod. |
10:29 |
Guest54 |
solid mobs can also escape from your enclosure when they hop on each other ;) |
10:31 |
Guest54 |
mob |
10:31 |
Guest54 |
you can not hop on a mob when it is not solid |
10:35 |
MTDiscord |
<ROllerozxa> ah mineclone mobs |
10:35 |
MTDiscord |
<ROllerozxa> also re: mod soup roots, cramming all textures into one folder and properly namespacing them seems very "we're turning into a monolithic game" to me |
10:36 |
|
olliy joined #minetest |
10:36 |
Guest54 |
well, it's basically the default response of those who give up on fixing dependencies |
10:40 |
Guest54 |
the people who push ”all textures in one directory” were basically the same ones who every time when i said ”separate this new feature into a separate mod, it is a better maintainable way” wanted to cram everything into an existing mod “to avoid dependency hell” |
10:45 |
MTDiscord |
<kimapr> put all textures in one dir? why |
10:46 |
MTDiscord |
<kimapr> even if you want to put it in one mod you can still use subdirectories |
10:46 |
Guest54 |
Kimapr hysterical raisins |
10:47 |
Guest54 |
apparently a single directory with 2300 textures is better for texture creators than having neatly separated textures for a bunch of mods lol |
10:47 |
MTDiscord |
<kimapr> example: https://gitlab.com/Kimapr/fogblox/-/tree/master/mods/fogblox/media |
10:47 |
MTDiscord |
<kimapr> the whole game is contained in a single mod |
10:48 |
Guest54 |
nah, renaming everything is obviously the correct step, because everyone who ever made a mod for mcl2 is a fool for assuming stable texture names :P |
10:49 |
MTDiscord |
<kimapr> why do textures need to be renamed again? i thought all minetest media share the same namespace anyway |
10:57 |
|
cora joined #minetest |
10:57 |
MTDiscord |
<ROllerozxa> kimapr: mineclone's texture names are a mess of MTG compatible names and mcl_ namespaced ones |
10:57 |
cora |
I won't stick around here but i feel the story that is being presented here is fairly one sided. Both ryvnf have been, regardless of who "started it" significant contributors to old mineclonia. I'll also point out that it has been dead for like a year and that I am the one who despite knowing it's probably pointless have continued to submit issues and PRs to fix at least the most critical issues - they have still not been looked at to this day. (e.g. |
10:57 |
cora |
https://git.minetest.land/Mineclonia/Mineclonia/pulls/304 , https://git.minetest.land/Mineclonia/Mineclonia/issues/302 ) I'll also say that I have before and also just now tried to discuss these things privately and have offered, and still am offering my help with any issues this might cause. |
11:04 |
Guest54 |
well, i can not prove i told cora i am okay with everything but reusing the name, but i guess it does not matter. |
11:17 |
Guest54 |
ROllerozxa this is not necessarily about mtg compatible names, the furniture mod i was referring to does, in fact, use mcl2 names and they simply changed it |
11:18 |
Guest54 |
if the only problem was making mtg-compatible stuff incompatible (e.g. texture packs for mtg that just happen to work for mcl2), i'd probably find it stupid, but not malicious |
11:19 |
Guest54 |
but when mods that *explicitly* got made for mcl2 stop working correctly after less than a year i think it's a bit of a weird thing |
11:19 |
MTDiscord |
<Fleckenstein> I find it funny how games have added my mod on contentdb and now im getting a warning "Make sure you own the rights to mcl_wither_spawning, it's included in these other packages: ..." |
11:19 |
MTDiscord |
<Fleckenstein> not that it matters - if it's in the game it doesn't need to be a mod anymore |
11:19 |
Guest54 |
Fleckenstein in that case you should not have a problem ig? |
11:20 |
MTDiscord |
<ROllerozxa> that note is mostly just for editors to check for RTAN |
11:20 |
MTDiscord |
<ROllerozxa> also oh god, they're renaming mcl namespaced texture names nilly willy too? |
11:20 |
Guest54 |
ROllerozxa if cdb had a policy “do not knowingly break existing mods relying on texture or item names” this could be avoided, but i doubt it will have that anytime soon |
11:21 |
Guest54 |
i mean, it is easy to prevent the breakage when moving to new textures or item names, with aliases, symlinks, whatever, you name it. or simply keeping the names lol. |
11:22 |
Guest54 |
here is an example that is probably not problematic (but who knows lol) |
11:22 |
Guest54 |
rename from textures/mcl_achievements_axolotl_bucket.png |
11:22 |
Guest54 |
rename to textures/mcl_buckets_axolotl_bucket.png |
11:22 |
Guest54 |
there's a bucket in the graphic, obviously it needs to be part of a different mod |
11:23 |
Guest54 |
i think this one was the one that breaks the rudzik8 furniture: |
11:23 |
Guest54 |
rename from textures/mcl_crimson_hyphae.png |
11:23 |
Guest54 |
rename to textures/mcl_crimson_crimson_hyphae.png |
11:23 |
Guest54 |
TWICE THE CRIMSON |
11:23 |
Guest54 |
twice the fun |
11:23 |
MTDiscord |
<ROllerozxa> CRIMSON CRIMSON HYPHAE |
11:24 |
Guest54 |
you see this is obviously necessary and not deck chairs shuffling on the titanic |
11:24 |
|
olliy joined #minetest |
11:24 |
Guest54 |
it also means that if you steal textures from mcl2 nodes you better make sure you steal them from the node definiton |
11:25 |
Guest54 |
definition |
11:25 |
Guest54 |
or else they may change again whenever, wherever |
11:25 |
Guest54 |
well, that only works *if* it is a texture for a node definition, but you get it |
11:26 |
Guest54 |
ROllerozxa the fun thing is that it was of course crimson_hyphae.png in the beginning, then got renamed to mcl_crimson_hyphae.png, then got renamed to mcl_crimson_crimson_hyphae.png |
11:27 |
Guest54 |
also i think rudzik8 uses crimson wood |
11:28 |
MTDiscord |
<ROllerozxa> our current RTAN modname policy on CDB is basically just based on technical limitations with minetest's mod system where mods with the same name but with different authors (or even mods built into games) are still treated as the same (there is no built-in namespacing) |
11:30 |
MTDiscord |
<ROllerozxa> however this doesn't extend to item definitions nor textures, it's basically the minimum necessary to not cause issues with incompatible mods that have the same name, or that game detection gets messed up by a game with an incompatible default mod |
11:32 |
Guest54 |
well the thing with item definitions is, it is really easy to get it right |
11:32 |
Guest54 |
same for textures |
11:32 |
Guest54 |
so i guess *most* people don't rename stuff arbitrarily |
11:33 |
Guest54 |
or reuse names for stuff that is not 100% compatible (*cough*) |
11:36 |
Guest54 |
anyways, i guess i need to make new friends that understand that true names have power |
11:38 |
Guest54 |
ROllerozxa IMO the fact that mods with the same name but with different authors are still treated the same is useful because it means you can override stuff, both in development and using it later. for example, mcl2 does not include the improvements i made to tga_encoder – but since it is an 100% API-compatible mod, you could basically get |
11:38 |
Guest54 |
smaller images with a different default for encoding. |
11:40 |
MTDiscord |
<ROllerozxa> yeah |
11:40 |
MTDiscord |
<ROllerozxa> same thing with stuff like farming redo which fully replaces an existing MTG mod with a new API compatible one |
11:44 |
MTDiscord |
<ROllerozxa> it just becomes a bit of an issue when someone wants to make a new mod named "concrete" and they are now required to make it fully compatible with the existing "concrete" mod such that other mods depending on a mod named "concrete" doesn't break |
11:44 |
Guest54 |
ROllerozxa btw, is “ppl who left a project can start a new project with the same name if the old project has not been updated in a while” official policy or is it simply because rynvf has the oldest commit with the name mineclonia in any case or because it was first on cdb (i.e. you can not claim a name on cdb if you used it outside of cdb |
11:45 |
Guest54 |
anyways)? |
11:46 |
Guest54 |
i don't think not being allowed to use the name “concrete” is a problem |
11:46 |
Guest54 |
after all, xmaps is not named “maps” because there was an existing “maps” mod in some random ass game |
11:46 |
Guest54 |
and mine was not API compatible |
11:48 |
Guest54 |
in any case, i should probably get some stuff on cdb before some fun-hater comes along and insists i should rename my mods |
11:49 |
Guest54 |
after all, i haven't worked on much minetest-related in close to a year or so |
11:49 |
Guest54 |
or at least, i have not published it |
11:51 |
Guest54 |
(on cdb lol) |
11:58 |
|
definitelya joined #minetest |
11:58 |
MTDiscord |
<ROllerozxa> my rationale for approving the new mineclonia was that original mineclonia seemed to have been abandoned, and that ryvnf and cora were active developers on the original project which I assumed gave them right to the name |
11:59 |
MTDiscord |
<ROllerozxa> I probably wouldn't have approved it if I saw the original mineclonia being active, or if the original mineclonia was up and available on CDB |
11:59 |
MTDiscord |
<ROllerozxa> whether something is on CDB maybe shouldn't matter obviously, but of course that plays a small part in knowing whether it is something is "active" and actively played by people. also in general, we can't be aware of everything that exists outside of CDB and the forums |
12:00 |
Guest54 |
well, there are two servers that are not in the serverlist that maaaaaaaay use the old mineclonia and maaaaaaaay not want to upgrade to the new one |
12:01 |
MTDiscord |
<ROllerozxa> isn't oysterity cora's server? |
12:02 |
Guest54 |
well, that one uses the new thing |
12:02 |
Guest54 |
pretty obv because she was, if i understand it correctly, kinda driven out of mcl2 |
12:02 |
MTDiscord |
<ROllerozxa> yeah |
12:02 |
MTDiscord |
<ROllerozxa> anyways that's the only server that I can see uses mineclonia, from doing a ctrl+f on the serverlist |
12:03 |
Guest54 |
well i did tell cora that i plan to work on mineclonia again soon now that i am no longer ill and she asked me to not do it, but i can not prove it |
12:03 |
Guest54 |
so ig it's a friendship issue and not a technical issue |
12:04 |
Guest54 |
ROllerozxa it was always the only public server that used it, since the others were afraid of griefers |
12:04 |
Guest54 |
oh wait, no, i think there was “mineclonia forever” too |
12:05 |
Guest54 |
hosted by kay27 |
12:05 |
Guest54 |
i hope he is okay :/ |
12:07 |
Guest54 |
btw, this is a great review hehe https://content.minetest.net/threads/4602/ |
12:07 |
Guest54 |
pointlessly gendered |
12:07 |
Guest54 |
my favourite queer warning sign: “this is a gender-free space. all genders will be shot.” |
12:08 |
|
sogt joined #minetest |
12:08 |
MTDiscord |
<ROllerozxa> o.o |
12:08 |
Guest54 |
it's a surreal meme |
12:09 |
sogt |
hi |
12:09 |
Guest54 |
ROllerozxa how much of a name difference do i have to have? given pixture/repixture 2 letters are enough? |
12:09 |
sogt |
hello?? |
12:09 |
Guest54 |
i mean: piranesi vs piranesi restoration project lol |
12:10 |
Guest54 |
the latter is a bit long |
12:10 |
sogt |
guest54 |
12:10 |
Guest54 |
sogt what |
12:10 |
sogt |
hellow |
12:10 |
Guest54 |
yeah so what do you want |
12:12 |
Guest54 |
!help tell |
12:12 |
MinetestBot |
https://github.com/sfan5/minetestbot-modules/blob/master/COMMANDS.md |
12:12 |
|
turtleman joined #minetest |
12:17 |
Guest54 |
ROllerozxa btw if you want to research the serverlist in the future, i made a tool called minetest-servers that helps with this: http://news.dieweltistgarnichtso.net/bin/minetest-servers |
12:18 |
Guest54 |
; minetest-servers gameid |grep lordofthetest |
12:18 |
Guest54 |
metis3.duckdns.org:30002 lordofthetest |
12:19 |
Guest54 |
or to count which server is most active: minetest-servers clients |sort -k2 -n |
12:20 |
Guest54 |
server with lowest proto_max lol |
12:20 |
Guest54 |
; minetest-servers proto_max |sort -k2 -nr |tail -n1 |
12:20 |
Guest54 |
23.28.74.3:30001 26 |
12:20 |
MTDiscord |
<Fleckenstein> > Dieses Programm hat das Ziel, die Medienkompetenz der Leser zu steigern. Gelegentlich packe ich sogar einen handfesten Buffer Overflow oder eine Format String Vulnerability zwischen die anderen Codezeilen und schreibe das auch nicht dran. |
12:20 |
MTDiscord |
<Fleckenstein> should have used Rust smh |
12:20 |
Guest54 |
well why don't you rewrite it in rust dear lizzy |
12:21 |
Guest54 |
i watched ”pride and prejudice” last night with a friend |
12:21 |
MTDiscord |
<Fleckenstein> okey |
12:21 |
Guest54 |
there was so much ”dear lizzy” hehe |
12:21 |
MTDiscord |
<Fleckenstein> omg i love pride and prejudice |
12:21 |
MTDiscord |
<Fleckenstein> part of the reason why i picked my name |
12:21 |
MTDiscord |
<Fleckenstein> also because of Elias and lizards |
12:21 |
Guest54 |
NICE |
12:22 |
Guest54 |
i think lydia is the winner in the story btw |
12:22 |
Guest54 |
she runs a way with a guy and gets to marry him |
12:22 |
Guest54 |
also she is grinning all the time |
12:22 |
Guest54 |
then again she's 15 when she does it and the guy is a known scammer, so maybe it is not the wisest of choices |
12:22 |
Guest54 |
but she got what she wanted! |
12:23 |
Guest54 |
Fleckenstein, the comment about buffer overflows is making fun of this: https://blog.fefe.de/faq.html |
12:23 |
Guest54 |
> Dieses Blog hat nämlich das Ziel, die Medienkompetenz der Leser zu steigern. Gelegentlich packe ich sogar einen handfesten Hoax oder eine Satire zwischen die anderen Meldungen und schreibe das auch nicht dran. |
12:24 |
Guest54 |
fleckenstein also you can see that this is not at all LANGSEC since what a argument is depends on the API response lol |
12:25 |
Guest54 |
i am also using exceptions for control flow |
12:25 |
MTDiscord |
<Fleckenstein> i dislike exceptions |
12:25 |
Guest54 |
it is pretty nice though, since you can immediately see some stats |
12:25 |
Guest54 |
or find your friends! |
12:26 |
Guest54 |
like on which server they are rn |
12:26 |
Guest54 |
minetest-servers clients_list |grep -i $USERNAME |
12:26 |
MTDiscord |
<Fleckenstein> yea i had the same in node.js back then :juanchi_face: |
12:26 |
Guest54 |
what |
12:27 |
Guest54 |
why would you torture yourself with node.js |
12:27 |
Guest54 |
dear lizzy |
12:27 |
Guest54 |
dearest lizzy hehehehe |
12:27 |
MTDiscord |
<Fleckenstein> no idea |
12:27 |
Guest54 |
wasn't it like a UTF-16 mess or so |
12:27 |
Guest54 |
maybe i remember it wrong |
12:27 |
MTDiscord |
<Fleckenstein> pip is marginally worse than npm |
12:28 |
Guest54 |
Fleckenstein the worst thing about pride and prejudice is that the property is entailed and can only be given to a male heir |
12:28 |
Guest54 |
the family simply does not have a mulan |
12:28 |
MTDiscord |
<Fleckenstein> > Fleckenstein the worst thing about pride and prejudice is that the property is entailed |
12:28 |
MTDiscord |
<ROllerozxa> oh, neat minetest-servers script, I suppose using that script might be better than just doing ctrl+f either on the serverlist page or the raw json like I usually do 😂 |
12:28 |
MTDiscord |
<Fleckenstein> you can stop right there |
12:29 |
Guest54 |
furries, tails, lol |
12:29 |
MTDiscord |
<ROllerozxa> furries...? o.o |
12:29 |
Guest54 |
ROllerozxa i think it is pretty feature-complete too. anything missing? |
12:29 |
Guest54 |
furries have tails |
12:29 |
Guest54 |
usually |
12:29 |
MTDiscord |
<Fleckenstein> it matters very little to me whether everyone is exploited by upper class men or everyone is exploited by upper class men and women |
12:30 |
Guest54 |
oh but sparta had the better inheritance laws |
12:30 |
Guest54 |
women could inherit, but their husband might die in war, so they marry again |
12:30 |
Guest54 |
[[accumulation of wealth intensifies]] |
12:34 |
|
Guest32 joined #minetest |
12:34 |
fling |
yo |
12:40 |
Guest32 |
You told me that you wanted to restart old mcla days after i told you about the new one - can't prove it either lol, maybe if we were using more consistent ways of communicating.... hehe. I'm at work and i would prefer if you would not drag this on in public while I told you I'll be gone, Guest54. I have earlier today and back when you said it told |
12:40 |
Guest32 |
you that I am quite willing to work with you on this and/or any issues that might come up. And I personally don't even care about your naming issues. |
12:40 |
Guest32 |
Please don't make it more of a "friendship issue" than it already is ... |
12:46 |
Guest54 |
i see |
12:49 |
|
vampirefrog joined #minetest |
13:03 |
Guest54 |
Fleckenstein i broadly agree. in any case, mulan best disney hero. |
13:03 |
Guest54 |
well, technically with disney now owning the rights to the alien franchise, the eggs of the alien queen are also disney princesses |
13:04 |
Guest54 |
or what comes out of it |
13:10 |
MTDiscord |
<Fleckenstein> if I have an iterator of values and i want to collect them in sorted order, should I rather collect into a BTreeSet or collect into a Vec and then qsort them? |
13:11 |
MTDiscord |
<Fleckenstein> I know it doesn't matter but I dont want to write bad codes |
13:11 |
Guest54 |
i wonder if the compiler is smarter here than you |
13:11 |
MTDiscord |
<Fleckenstein> whar |
13:12 |
Guest54 |
well, compilers understand code. on a level that say, chatgpt, does not have. |
13:12 |
MTDiscord |
<Fleckenstein> i know, but it's not abstract in this case |
13:12 |
Guest54 |
are you aware of godbolt? |
13:12 |
MTDiscord |
<Fleckenstein> heap allocations are kind of a boundary |
13:12 |
Guest54 |
i'd start with putting both examples in here https://godbolt.org/ and see if it generates meaningfully different assembly |
13:13 |
Guest54 |
because if it comes out the same, the question is meaningless |
13:13 |
muurkha |
not always |
13:13 |
muurkha |
but in the case of Fleckenstein's question it definitely won't |
13:13 |
Guest54 |
well, then the question is, what is the meaningful difference |
13:13 |
MTDiscord |
<Fleckenstein> this is an algorithm question |
13:13 |
MTDiscord |
<Fleckenstein> not a programming language question |
13:13 |
Guest54 |
is it a performance question? |
13:14 |
muurkha |
mostly |
13:14 |
Guest54 |
or “code looks like my intent” question |
13:14 |
muurkha |
I mean it might also be a maintainability question |
13:14 |
MTDiscord |
<Fleckenstein> a performance question |
13:14 |
MTDiscord |
<Fleckenstein> maintainability is on par |
13:14 |
muurkha |
I'd collect into a Vec and then qsort them then |
13:14 |
Guest54 |
yeah, maintainability is probably a better way to frame the intent thing |
13:14 |
Guest54 |
muurkha rationale? |
13:15 |
Guest54 |
i mean the btree is more complex right? |
13:15 |
muurkha |
well, Vec and sort are pretty common tools; BTreeSet less so. and in general you expect a B-tree to be slower |
13:15 |
muurkha |
why do you expect it to be slower? well... |
13:16 |
Guest54 |
> The basic assumption was that indices would be so voluminous that only small chunks of the tree could fit in main memory. |
13:16 |
Guest54 |
(wikipedia about btrees) |
13:17 |
muurkha |
the sort of overarching answer is that it provides stronger guarantees: the sequence remains in effect sorted the whole time instead of becoming sorted only at the end |
13:18 |
muurkha |
and this has consequences like slack space inside of blocks, poor locality between blocks, and (typically) insertion sort within a block |
13:18 |
Guest54 |
i see |
13:19 |
muurkha |
you could imagine a language which used B-trees ubiquitiously for data storage, in which case it would be a performance-maintainability tradeoff |
13:19 |
muurkha |
but not in C++ |
13:19 |
Guest54 |
the worst tradeoff i encounter all the time is strings in lua lol |
13:19 |
Guest54 |
they get hashed for fast access later |
13:20 |
Guest54 |
so you definitely should not create a lot of small strings |
13:20 |
muurkha |
creating a lot of small strings is still faster in Lua than in Python or Perl |
13:21 |
muurkha |
well, CPython and Jython, anyway. I don't know about PyPy |
13:21 |
Guest54 |
yeah, but not creating them is still faster than creating them |
13:21 |
muurkha |
depending on what the alternative to creating them is |
13:22 |
MTDiscord |
<Fleckenstein> i think b-trees are for maintaining mutable sorted collections |
13:22 |
MTDiscord |
<Fleckenstein> i just need to sort the thing oncde |
13:22 |
muurkha |
aye |
13:23 |
Guest54 |
muurkhau in my case, it is a) serialize a lot of small strings and then concat them b) create fewer larger strings at once |
13:23 |
Guest54 |
fleckenstein knows what i mean |
13:30 |
MTDiscord |
<Fleckenstein> hmmm |
13:30 |
MTDiscord |
<Fleckenstein> there are a lot of duplicate strings tho |
13:30 |
MTDiscord |
<Fleckenstein> i want unique sort |
13:30 |
MTDiscord |
<Fleckenstein> i think a BTreeSet would actually be better at this |
13:31 |
MTDiscord |
<Fleckenstein> well I hope to get better at this soon |
13:33 |
MTDiscord |
<Fleckenstein> currently in my first algorithms & data structures lecture (first day of second semester at uni hehe) |
13:34 |
MTDiscord |
<Fleckenstein> rn the lecturer is having issues with his surface laptop tho :kekw: |
13:39 |
MTDiscord |
<Fleckenstein> https://users.rust-lang.org/t/sorted-unique-list-from-iterator-t-ord-hash/53531 |
13:40 |
MTDiscord |
<Fleckenstein> since I have a lot of duplicate values, I think BTeeSet is the way to go |
13:40 |
muurkha |
possibly, depending on what "a lot" is |
13:41 |
muurkha |
but there's also an algorithm in the STL that removes adjacent duplicates, which will remove all the duplicates from a sorted vector |
13:44 |
MTDiscord |
<Fleckenstein> 12689 entires, 36 unique entries |
13:45 |
MTDiscord |
<Fleckenstein> itertools has dedup and sorted, but for many duplicate entries this is slower than BTreeSet I think |
13:49 |
muurkha |
yes, probably BTreeSet will be faster there |
13:49 |
muurkha |
probably a still faster alternative is to put the items into a hash, then iterate over the 36 hash keys at the end to sort them |
13:54 |
|
dmj joined #minetest |
14:00 |
dmj |
I'm running a private server for friends, and I'm interested in integrating in-game chat with IRC. I'd like to see examples of other servers that have done this successfully. Can anyone offer pointers? |
14:05 |
muurkha |
I'd like to see that too |
14:07 |
MTDiscord |
<Jonathon> github.com/minetest-mods/irc github.com/minetest-mods/irc_commands |
14:13 |
dmj |
Right, I've seen these mods. But I'm hoping to see some-real world examples of servers that have implemented them successfully. |
14:17 |
MTDiscord |
<Fleckenstein> Guest54 |
14:18 |
MTDiscord |
<Fleckenstein> isn't printing out data from the internet without sanitization a security issue? |
14:35 |
|
Desour joined #minetest |
15:16 |
|
fluxionary joined #minetest |
15:25 |
calcul0n |
dmj, pandorabox might be a good example, it's using beerchat |
15:40 |
MTDiscord |
<Fleckenstein> haha I've taken way too much time rewriting your tool in rust Guest54 |
15:41 |
MTDiscord |
<Fleckenstein> as usual, I spent way too much time overperfecting things |
15:41 |
MTDiscord |
<Fleckenstein> https://github.com/LizzyFleckenstein03/minetest-servers |
15:46 |
|
Fleckenstein joined #minetest |
16:13 |
|
Guest54 joined #minetest |
16:16 |
Fleckenstein |
hi uh |
16:17 |
Fleckenstein |
im done with the rewrite, Guest54 |
16:17 |
Guest54 |
of what |
16:17 |
Fleckenstein |
https://github.com/LizzyFleckenstein03/minetest-servers |
16:17 |
Guest54 |
there are no instructions on how to execute it |
16:17 |
Fleckenstein |
cargo run --release |
16:18 |
Fleckenstein |
tho if you dont want to install a compiler, i can build it for you, what is your architecture |
16:18 |
Guest54 |
pico8 |
16:19 |
Fleckenstein |
that's lua based right |
16:19 |
Guest54 |
i am of jokings |
16:19 |
Fleckenstein |
so i gotta build WASM and then wasm2lua |
16:20 |
Guest54 |
i suggest to put the compile instructions in the readme |
16:20 |
Guest54 |
stop it dear lizzy i am cargoing it |
16:20 |
|
mrkubax10 joined #minetest |
16:22 |
Fleckenstein |
cargo space? no, car no do that. cargo road. |
16:23 |
Guest54 |
Fleckenstein okay maybe i don't why does it have a ton of dependencies? |
16:24 |
Fleckenstein |
that's normal for rust programs |
16:24 |
rubenwardy |
only 6 dependencies |
16:24 |
rubenwardy |
_looks at any node application_ |
16:24 |
Guest54 |
lol |
16:24 |
Fleckenstein |
the idea is to have lots of bloat on the developer's machine and have a lightweight production environment |
16:25 |
Desour |
rustaceans always look down on go, but they still use car-go to compile their projects |
16:25 |
Guest54 |
will demons come out of my nose if i use it |
16:26 |
Fleckenstein |
nah |
16:26 |
Fleckenstein |
no unsafe blocks |
16:26 |
Guest54 |
> error: failed to parse manifest |
16:26 |
Guest54 |
> this version of Cargo is older than the `2021` edition, and only supports `2015` and `2018` editions. |
16:26 |
Guest54 |
yeah i am going to pass on that thing |
16:26 |
Guest54 |
> Die folgenden Pakete werden ENTFERNT: |
16:26 |
Guest54 |
> cargo libstd-rust-1.48 libstd-rust-dev rust-gdb rustc |
16:27 |
Fleckenstein |
welp |
16:27 |
Fleckenstein |
usually you wouldn't install rust using your package manager |
16:27 |
Fleckenstein |
since you need to manage different toolchains anyway |
16:27 |
Guest54 |
i install evetything using a package manager |
16:27 |
Guest54 |
or directly from git obv |
16:27 |
Fleckenstein |
which you can maybe do with Nix or Gentoo but like |
16:27 |
Fleckenstein |
rustup |
16:28 |
Fleckenstein |
in C(++) you simply refrain from using utility libraries and write everything yourself, in Go the standard library is bloated, in Node you bring the bloat to production. I think Rust has a pretty good solution regarding dependencies |
16:28 |
Guest54 |
look, if rust ppl can't be bothered to package their build environment in debian, maybe it's not comfortable enough for a lazy person like me |
16:29 |
Guest54 |
i mean i can have python that is long outdated before it will crap out on me |
16:29 |
Guest54 |
if ppl don't use new features |
16:29 |
Fleckenstein |
rustup can do a lot more |
16:29 |
Guest54 |
well, cargo seems to only *download* the dependencies and compile the stuff, what's the problem with backwards compat there? |
16:30 |
Fleckenstein |
sure change it to 2018 and see |
16:30 |
Fleckenstein |
painless cross compilation and switching toolchains is what rustup is for |
16:30 |
Fleckenstein |
also it's more debian's fault, arch linux has latest rust |
16:30 |
Guest54 |
is this a “you need to have new enough tools because they change all the time” or is the language simply too young to have settled into a plateau and it is justified? |
16:31 |
Fleckenstein |
no, your compiler is just super outdated |
16:31 |
MTDiscord |
<ROllerozxa> debian moment |
16:31 |
Fleckenstein |
like imagine not having a version that was released 2 years ago? |
16:32 |
Guest54 |
imagine not needing super up to date hipster bling because your software is not designed by 1000 monkeys on 1000 typewriters? :P |
16:32 |
Guest54 |
like i can have coreutils or gcc from 2015 and it will *mostly* work |
16:32 |
Guest54 |
i won't get new features |
16:32 |
rubenwardy |
if you're using a typewriter that might be the problem |
16:32 |
Guest54 |
should change to a different one |
16:32 |
Guest54 |
can't multiply myself by 1000×1000 after all |
16:32 |
Fleckenstein |
what if you want to run a shell script that uses new coreutils features |
16:33 |
Fleckenstein |
(whatever that's supposed to be) |
16:33 |
Guest54 |
hahahahaha |
16:33 |
Fleckenstein |
I had this issue recently |
16:33 |
Fleckenstein |
I tried running neofetch on RedStarOS |
16:33 |
Guest54 |
what was the feature? some bashism? |
16:33 |
Fleckenstein |
bash was too old |
16:33 |
Guest54 |
it's hairy because OS X ships ancient bash |
16:33 |
Fleckenstein |
i had to compile it from source |
16:33 |
Guest54 |
this is why i usually write shell scripts against POSIX sh and test with dash, busybox ash and bash in POSIX mode |
16:34 |
|
Talkless joined #minetest |
16:34 |
Fleckenstein |
and for that i had to compile the modern versions of all the other stuff from source |
16:34 |
Fleckenstein |
like autotools, m4, gmake, gcc9 |
16:34 |
Guest54 |
so what was the feature? |
16:34 |
Fleckenstein |
idk, it didn't work with old bash |
16:34 |
Guest54 |
well bash is a stupid shell anyways |
16:34 |
Fleckenstein |
yea but software moves |
16:34 |
Guest54 |
sh is too, but it is at least everywhere, almost posixly correct (as if, lol) |
16:34 |
Fleckenstein |
and it's not wrong to rely on modern software |
16:35 |
Desour |
rolling release distros like arch are often called to ship cutting edge packages, but it's actually just stable edge (as long as you don't build git AUR packages). debian, ubuntu and co. on the other hand are rusty edge. these rusty edges really hurt and are really awkward to use |
16:35 |
Guest54 |
depends on who you want to appeal to |
16:35 |
Fleckenstein |
why do you not want to use up to date software |
16:35 |
Guest54 |
Desour depends on the maintainer really. arch takes ages to get stuff into unifont, debian has them almost immediately. |
16:35 |
Fleckenstein |
and i mean |
16:35 |
Guest54 |
the question is rather, can you do that? |
16:35 |
Fleckenstein |
up to date meaning not 2 years out of date |
16:35 |
Guest54 |
for example, my shell scripts will run on old smartphones that have some ancient busybox |
16:36 |
Guest54 |
which i know, because i once needed that |
16:36 |
Guest54 |
if i need something that would lead me to “oh the user needs to compile a new bash if they don't have it” either i fake it using stringly typed weirdness or i just don't use shell |
16:36 |
Fleckenstein |
yea but i can compile rust for anything as well |
16:36 |
Fleckenstein |
while using lots of modern rust features |
16:37 |
dmj |
calcul0n: Thanks for recommending I check out Pandorabox as an example of successful chat/IRC integration. If anyone has any other examples, I'd be interested to see them. |
16:37 |
Fleckenstein |
if i have a modern rust version installed, i can build for old systems |
16:37 |
Fleckenstein |
this is why we compile in the first place |
16:37 |
Fleckenstein |
bundling and performance |
16:37 |
Guest54 |
Fleckenstein i kinda think that the user experience of ”if you have some random python 3.x this stuff could just work” is better than “yeah but you CAN compile this if you put the effort in it” |
16:37 |
Fleckenstein |
or if you just tell me your host triple |
16:38 |
Guest54 |
well it works if you change the thing to 2018 |
16:38 |
Guest54 |
or does it? |
16:38 |
Fleckenstein |
try |
16:38 |
Guest54 |
i guess this is a trick question |
16:38 |
Guest54 |
error: failed to select a version for the requirement `clap = "=4.2.1"` |
16:38 |
Guest54 |
candidate versions found which didn't match: 3.2.23, 3.2.22, 3.2.21, ... |
16:39 |
Fleckenstein |
remove Cargo.lock |
16:39 |
Guest54 |
but it was there |
16:39 |
Guest54 |
isn't that a bad idea |
16:39 |
Guest54 |
to install any random ass dependency |
16:40 |
Fleckenstein |
Cargo.lock has the state of the latest build |
16:40 |
Fleckenstein |
latest successful build |
16:40 |
Guest54 |
well i get the same error and a new Cargo.lock when i try again |
16:40 |
Fleckenstein |
interesting, i can compile with edition=2018 |
16:40 |
Guest54 |
from a fresh directory? |
16:40 |
Fleckenstein |
yes |
16:41 |
Fleckenstein |
the dependencies have their own edition |
16:41 |
Fleckenstein |
rust has cross edition compatibility |
16:41 |
Fleckenstein |
rust is designed for developers |
16:41 |
Guest54 |
well i see how this is necessary, but it is overkill for the task at hand |
16:41 |
Guest54 |
it reminds me of how i tried to learn go by trying to replace a calendar shell script that i wrote that is maybe 100 lines max |
16:41 |
Guest54 |
wait let me se |
16:41 |
rubenwardy |
does the server list allow CORS? |
16:41 |
Guest54 |
e |
16:42 |
rubenwardy |
I'd do this as a web page with client-side JS, would be super portable that way |
16:42 |
Guest54 |
well, if not, having it do that might be nice? |
16:42 |
Fleckenstein |
rubenwardy i want something usable, not something portable |
16:42 |
Guest54 |
indeed it would, only that you could not use it in shell scripts, which is ofc how i use it, which is why i do it |
16:43 |
Guest54 |
yeah so the shell calendar is 59 lines of bourne shell, which includes a badly cobbled together c header inclusion thingy |
16:43 |
Guest54 |
after like 100 lines of go i got do date parsing and i just … stopped |
16:44 |
Desour |
Guest54: fyi, you don't have to use cargo. you can also just directly run rustc. so why don't you just write your own build system? |
16:44 |
Fleckenstein |
or just install a modern compiler |
16:45 |
Guest54 |
i do have my own build system (redo), but last time i checked i also have my own minetest-servers implementation and it is interesting to look at the one of Fleckenstein, i don't really need to run it |
16:45 |
Guest54 |
so i can basically give uninformed takes on this thing without actually losing out on functionality! |
16:46 |
rubenwardy |
oh is this supposed to be for cli? Assumed it was just for server-owners to debug stuff |
16:46 |
Fleckenstein |
how is not being able to download a piece of software that came out 2 years ago not an issue on your side tho |
16:46 |
Fleckenstein |
rubenwardy yes, it's just a minetest server list cli |
16:46 |
Guest54 |
rubenwardy well i did use it to figure out where my friends were or where mods were used |
16:46 |
Fleckenstein |
Guest54 I'd love to hear your takes on my code |
16:47 |
Guest54 |
the take is: i am not a rustacean, don't expect anything |
16:48 |
Fleckenstein |
informed or uninformed hehe |
16:48 |
Guest54 |
“we are ashamed when we are not uniform” my ethics teacher used to say |
16:48 |
Fleckenstein |
ah I should head out to CCC |
16:48 |
Guest54 |
some time later lots of people bought t-shirts with the school logo on it |
16:49 |
Fleckenstein |
will be back in a couple minutes |
16:49 |
Guest54 |
Fleckenstein goes to the cuddly catgirl convention |
16:49 |
Desour |
!cat |
16:49 |
MinetestBot |
http://i.imgur.com/rBJgj7d.jpg |
16:51 |
Guest54 |
rubenwardy ; curl -sI 'https://servers.minetest.net/list' |grep -i access-control |
16:51 |
Guest54 |
access-control-allow-origin: * |
16:51 |
Guest54 |
btw |
16:51 |
Guest54 |
or did you just add that |
16:56 |
rubenwardy |
i didn't |
16:57 |
MTDiscord |
<luatic> (in response to lizzy) yea I had the same in client JS |
16:57 |
Guest54 |
amazing: when you load a world with the ”new mineclonia” and then want to go back to the old one, it just crashes. |
17:00 |
MTDiscord |
<luatic> (in response to muurkha proposing deduping using a hash set) this is the way to go. |
17:00 |
MTDiscord |
<luatic> I'd always prefer a well-implemented sorted algorithm over abusing a dynamic set implementation - in this case, a B-Tree - to do the sorting for you. |
17:01 |
MTDiscord |
<luatic> Theoretically they have the same runtime complexity, but practically you can expect the constant factors of sorting to be much slower. |
17:01 |
Guest54 |
i wonder if lizzy has already learned of probabilistic datastructures |
17:01 |
Guest54 |
a lot of people spend a lot of thought about how to find an application for bloom fliters |
17:01 |
Guest54 |
filters |
17:02 |
MTDiscord |
<luatic> Hash sets allow you to dedupe in expected amortized linear time - way better than the linearithmic time of sorting. |
17:03 |
Guest54 |
i have once written an implementation of the okcupid matching algorithm that used bloom filters |
17:03 |
Guest54 |
it worked very well, but i could not understand the failure modes, so i did not use it |
17:03 |
MTDiscord |
<luatic> So if you have very few unique values, say m of n, first deduping using a hash set then sorting the remaining values will give you O(n + m log m) vs O(n log n); the constant factors of hash sets are also very good. |
17:03 |
Guest54 |
can you give me the big o notation for sleepsort hehe |
17:04 |
MTDiscord |
<luatic> O(inf)? |
17:04 |
Guest54 |
hehehehehe |
17:04 |
Guest54 |
sleep sort is infinitely practical, if you want to sort 10 times faster, just divide your input by 10 |
17:04 |
Guest54 |
thus you become a 10× engineer |
17:04 |
mrkubax10 |
is there something like on punch entity callback? |
17:05 |
Guest54 |
(you need to multiply yourself by 10 to offset the /10 runtime) |
17:05 |
MTDiscord |
<luatic> No, you'll have to override/hook on_punch for each entity. |
17:05 |
MTDiscord |
Command sent from Discord by Lars: |
17:05 |
MTDiscord |
!next |
17:05 |
MinetestBot |
Another satisfied customer. Next! |
17:05 |
Guest54 |
mrkubax10 this seems like an X/Y problem. what exactly are you trying to do? |
17:06 |
Desour |
sleepsort is O(1) |
17:06 |
mrkubax10 |
I'm implementing electric sword, if you use it while uncharged it won't take much damage but when it's charged then it takes full damage |
17:07 |
MTDiscord |
<luatic> @ROllizzxy (she/her) Duplicates are BTW not a reason to reject sorting algorithms. Many algos (e.g. mergesort or heapsort) handle them completely fine. It's just that quicksort, if implemented improperly (e.g. using the Lomuto partitioning scheme) will degrade to quadratic runtime. With proper Hoare or three-way partitioning (and proper pivot picking!) it is fine though. See here |
17:07 |
MTDiscord |
https://github.com/TheAlgorithms/Lua/blob/main/src/sorting/quicksort.lua for a reference implementation I wrote in Lua. |
17:07 |
MTDiscord |
<luatic> (I have a WIP blog article on the pitfalls of quicksort) |
17:07 |
mrkubax10 |
I already implemented simillar behavior for pickaxe, axe etc using on_punchnode callback and replacing item with "active" version when tool is charged and reverting back to inactive afterwards |
17:08 |
MTDiscord |
<luatic> Ah right, now I remember the third pitfall I forgot to mention: You need to be careful about the order in which you quicksort the subarrays to get logarithmic space complexity. |
17:08 |
|
Fleckenstein joined #minetest |
17:09 |
Fleckenstein |
> Fleckenstein goes to the cuddly catgirl convention |
17:09 |
Fleckenstein |
so true bestie |
17:09 |
Desour |
mrkubax10: is it an electric sword similar to this one: https://www.youtube.com/watch?v=V8h8snfYidg ? |
17:10 |
mrkubax10 |
lol |
17:14 |
Fleckenstein |
luatic are you sure that building a vector with 12000 elements and then deduping & sorting it is better than inserting into a B-Tree that ends up with 36 elements? |
17:20 |
MTDiscord |
<luatic> Fleckenstein: No, first insert into a hash map |
17:20 |
MTDiscord |
<luatic> hash set* |
17:20 |
Guest54 |
luatic you going to put your semgrep rules in the utils directory? |
17:20 |
MTDiscord |
<Fleckenstein> then put that into a vec, then qsort? |
17:21 |
MTDiscord |
<luatic> yes |
17:21 |
MTDiscord |
<Fleckenstein> thankies :3 |
17:21 |
MTDiscord |
<luatic> The hash set will end up with 36 elements just as well, and the constant factor might very well be lower than that of the B-Tree |
17:21 |
MTDiscord |
<luatic> np |
17:21 |
MTDiscord |
<luatic> in fact for 36 elements, your B-Tree would probably be just a single root node X) |
17:21 |
MTDiscord |
<luatic> so your B-Tree would practically be just a single sorted array you're inserting into / searching values in |
17:22 |
Fleckenstein |
is it any different with a hashmap? |
17:22 |
Fleckenstein |
*set |
17:27 |
Guest54 |
ROllerozxa btw, regardless of the moral rights to the name – i just checked it, i started and finished my work on the as-of-yet-unpublished unicode renderer entirely before the new mineclonia changed the name to, well, mineclonia. i have still not published it (but i should soon probably), but a bunch of people including cora were aware of me |
17:27 |
Guest54 |
doing that work and claiming “dead project” when i am doing work for mcl_signs (you can guess which game this belongs to) is a bit of a stretch. |
17:28 |
Guest54 |
(besides, as far as i know everyone elses unicode rendering craps out on either very long text (due to using texmods) or if you start using some random characters beyond latin-1, so i assume it is not idle busywork) |
17:28 |
Guest54 |
i mean specifically lua unicode rendering in minetest obv |
17:29 |
Guest54 |
then again a bunch of people have uncritically believed the “irrlicht is dead” meme ;) |
17:29 |
Guest54 |
(regardless of the reasons for forking, it is very much alive, the author just does not believe in making frequent releases) |
17:29 |
rubenwardy |
the last release with features was over 10 years ago |
17:30 |
rubenwardy |
November 2012 |
17:30 |
MTDiscord |
<luatic> Fleckenstein: Well with a hash map you'll have expected amortized O(1) insertion and lookup |
17:31 |
MTDiscord |
<luatic> Whereas for a sorted array it's O(n) insertion and O(log n) lookup |
17:31 |
Guest54 |
well, usually ”dead” means ”someone is not working on it anymore” and AFAIK cutealien is doing enough stuff right now |
17:32 |
MTDiscord |
<luatic> Guest54: I want to put my semgrep rules somewhere, but I would rather skin a cat than PR the engine utils dir |
17:32 |
Guest54 |
luatic it is a useful thing everyone should have though |
17:32 |
MTDiscord |
<luatic> It'd be great if we could have some utils repo |
17:32 |
Guest54 |
do it then |
17:32 |
Guest54 |
semgrep-rules-for-minetest-mods |
17:32 |
Fleckenstein |
payload.list.iter().flat_map(HashMap::keys).collect::<HashSet<_>>().into_iter().sorted().collect::<Vec<_>>().iter().format(", ") |
17:32 |
Guest54 |
i may have one too |
17:32 |
Fleckenstein |
i feel like there should be a more ergonomic way to do this |
17:33 |
Guest54 |
my rule resulted in cora fixing like 20 crashes recently or so and me finding a lot more |
17:33 |
MTDiscord |
<luatic> This is not unergonomic by my standard lol |
17:33 |
Guest54 |
i am still unsure how to deal with that |
17:33 |
Fleckenstein |
wait i can drop te second collect |
17:33 |
Guest54 |
maybe you should write it on separate lines first |
17:33 |
Fleckenstein |
rustfmt does that for me |
17:33 |
Guest54 |
i mean i don't put my pipelines on one line either |
17:34 |
MTDiscord |
<luatic> Guest54: I think this should be a semgrep repo under the minetest org |
17:34 |
MTDiscord |
<luatic> or even a more broad utils repo under the minetest org, though I'm not sure of that |
17:34 |
MTDiscord |
<luatic> semgrep feels too specific, utils too broad 🙃 |
17:34 |
Guest54 |
luatic this only works if you don't have to upgrade everything in lockstep, which you might |
17:34 |
MTDiscord |
<luatic> oo I can actually create repos under the Minetest org |
17:35 |
Guest54 |
for example, if some fun-hater changes an API again, adding a semgrep rule can at least help the poor victims of the aggression to fix the breakage while swearing revenge |
17:35 |
Guest54 |
that is why the rules should be widely disseminated |
17:35 |
|
appguru joined #minetest |
17:35 |
Fleckenstein |
thunderbird as an IRC client? |
17:36 |
Fleckenstein |
is it any good? |
17:36 |
Guest54 |
i should probably not have brought up irrlicht. the only thing i wanted to say was “i started doing work on mineclonia (the old project) 2 weeks before the new project called itself that and claiming i am no longer active just as i show up again doing stuff is a bit of a dick move”. |
17:37 |
Fleckenstein |
unfortunate timing |
17:38 |
Guest54 |
well the thing is cora knew that |
17:38 |
appguru |
Fleckenstein: It gets the job done |
17:38 |
Guest54 |
i did, of course, show her my unicode thingy (i mean, i showed it everyone else too) |
17:38 |
appguru |
It's actually surprisingly usable TBH |
17:39 |
appguru |
sometimes I have this weird bug where (presumably after a disconnection) I don't see any messages (including my own) but otherwise it's fine |
17:39 |
Fleckenstein |
> i decided to fork it with her and reboot the old mineclonia project which has been abandoned for a year (-ryvnf in discord DM, 04/05/2023) |
17:39 |
Fleckenstein |
i don't think you should assume bad faith |
17:42 |
Guest54 |
Fleckenstein i am not claiming ryvnf knew anything, but when cora told me that the first thing i was like “ok if you use a different name” |
17:43 |
Guest54 |
anyways, i'm sure this is not demotivating at all |
17:43 |
Fleckenstein |
have you talked about this with cora? |
17:44 |
Fleckenstein |
or should I ask her about it? |
17:45 |
Guest54 |
look, you can ask her all you want, i use a shitty webirc client because i am still not on my own laptop, so i don't have any logs. |
17:45 |
Guest54 |
but don't pester her |
17:45 |
Guest54 |
neither ryvnf nor cora are bad people, they are both capable etc. pp. |
17:45 |
Fleckenstein |
yea im good friends with cora, dont worry |
17:46 |
Fleckenstein |
im mostly neutral on this issue |
17:46 |
Guest54 |
also i think that the response to “i am doing stuff again” from people who were disappointed in me (for different reasons) before can understandably be “i don't believe you, don't stop me doing stuff” |
17:46 |
Guest54 |
Fleckenstein thinking about it, maybe better don't involve yourself |
17:46 |
Guest54 |
i mean it's not as if cora and me can't talk ourselves |
17:47 |
Fleckenstein |
yea that's better |
17:52 |
|
PrairieWind joined #minetest |
17:52 |
|
PrairieWind joined #minetest |
18:03 |
|
appguru1 joined #minetest |
18:07 |
MinetestBot |
[git] Desour -> minetest/minetest: Add make_irr ceec560 https://github.com/minetest/minetest/commit/ceec560779e43813dd1c212557160f4dee4910ed (2023-04-11T18:06:15Z) |
18:07 |
MinetestBot |
[git] Desour -> minetest/minetest: Use smart-ptrs in GUIEngine b201c03 https://github.com/minetest/minetest/commit/b201c036259a2c2893e54712a8e3e891ad764b71 (2023-04-11T18:06:15Z) |
18:07 |
MinetestBot |
[git] Desour -> minetest/minetest: Get rid of global dummySoundManager 1dd13da https://github.com/minetest/minetest/commit/1dd13da37db32972810b942966d5cdd233215f92 (2023-04-11T18:06:15Z) |
18:17 |
Guest54 |
Warr1024 today i realized what ”eggcorn” refers to and i was enlightened. very nice! |
18:17 |
|
PrairieWind joined #minetest |
18:17 |
|
PrairieWind joined #minetest |
18:33 |
appguru |
Guest54: So I cobbled something together based on what I found |
18:33 |
appguru |
https://gist.github.com/appgurueu/083944e26709e35dbaf5042ceee3ef8b |
18:33 |
Guest54 |
uh oh |
18:34 |
appguru |
argh wait a min I think it's borken |
18:34 |
Guest54 |
i strongly suggest you refactor that to use either a recursive build system or restructure the code so that it has something like that |
18:34 |
rubenwardy |
might be easier to use "https://content.minetest.net/packages/" .. path .. "/download/ |
18:35 |
rubenwardy |
actually no, you want to make sure you don't redownload releases |
18:35 |
Guest54 |
then again, let's make it work first, then make it fast :D |
18:35 |
rubenwardy |
you also don't want to download every release |
18:35 |
Guest54 |
well, if you don't want to redownload, i may be right about the recursive build system |
18:35 |
rubenwardy |
just the latest |
18:36 |
Guest54 |
(you can't really do downloading things well with a toposort-based mess) |
18:38 |
appguru |
what |
18:38 |
appguru |
why would toposort be a mess |
18:39 |
appguru |
also aren't recursive build systems just implementations of toposort as a recursively implemented reverse postorder? |
18:40 |
Guest54 |
IMO the important thing in recursive build systems is an interleaving of dependency resolution and dependency tracking and build steps that makes specific problems very easy to use |
18:40 |
Guest54 |
solve |
18:40 |
Guest54 |
i mean |
18:41 |
Guest54 |
you can approximate these problems with the traditional make-like way, but it basically break down when you want to change the dependencies while you are running the thing |
18:42 |
Guest54 |
which is, counterintuitively, actually something very common. |
18:42 |
Guest54 |
(at least if you are acting on wobbly ground truth, like a constantly changing dataset) |
18:43 |
Guest54 |
appguru you can do this all very comfortably yourself without a build system in any case, as long as you have three functions you can call during a build step |
18:45 |
Guest54 |
1) one function that gathers prerequisites for a target (e.g. downloaded artifact) and redoes the current step in the future if any of those have changed since the last time the function was run for the same target 2) one function that gathers NE prereqs (you prob do not have them unless you can predict future release names) 3. one function that |
18:45 |
Guest54 |
takes arbitrary bytes and re-runs the current build step if it is invoked in the future with a different input |
18:46 |
Guest54 |
but don't build that now, it will only distract you |
18:46 |
rubenwardy |
I definitely feel like you're overcomplicating this |
18:47 |
Guest54 |
well, as far as i am aware this is the simplest way to both reduce spurious re-downloads and download everything you want. |
18:48 |
Guest54 |
you can get very close with a much simpler solution if you either accept you will not have an up-to-date download (i.e. the world freezes) or you download stuff a bit too often if the stars align |
18:48 |
Guest54 |
(which is why i am saying to not do the complex thing) |
18:49 |
Guest54 |
as far as i see it, pretending the world freezes will work as long as no releases are deleted between time to check and time to use |
18:53 |
|
proller joined #minetest |
18:54 |
Fleckenstein |
https://media.discordapp.net/attachments/563966858462625822/1095266816902828032/FtSgIkSWYAAkb0t.jpg |
18:54 |
Fleckenstein |
Guest54 this reminds me of you |
18:55 |
Guest54 |
Fleckenstein yes, software version numbers are a lie |
18:56 |
Guest54 |
semantic versioning, more like romantic versioning |
18:56 |
Fleckenstein |
omg >w< |
18:56 |
Guest54 |
you have a version number X.Y.Z and the first part changes whenever you hate your users a bit more |
18:56 |
Guest54 |
the other parts go up when your love and affection returns, but go to zero as soon as the hate for people who like non-breaking changes reaches a, well, breaking-point |
18:57 |
MinetestBot |
[git] rubenwardy -> minetest/minetest: Remove formspec_default_bg_color/opacity settings (#13419) 2fc7eb3 https://github.com/minetest/minetest/commit/2fc7eb3ea26af60feadc182a9d469d630314665b (2023-04-11T18:57:36Z) |
18:57 |
Guest54 |
lizzy, it is a truth universally acknowledged, that a single man in possession of a good program, must be in want of a version number. |
18:58 |
Fleckenstein |
well it's good I'm neither single nor a man |
18:58 |
Fleckenstein |
git hashes are good enough |
18:58 |
Guest54 |
that was a modified pride and prejudice quote |
18:59 |
Fleckenstein |
i havent watched in way too long |
19:01 |
Guest54 |
anyways, i should go eat something |
19:02 |
Guest54 |
also i think the original quote is about having a fortune and wanting a wife, so it can only be the most biting sarcasm |
19:02 |
Fleckenstein |
bon appetit |
19:04 |
Guest54 |
s'il vous plaît pardonnez-moi lizzy, je ne parle pas la langue de la lune (merci quand même) |
19:05 |
Guest54 |
i once helped a user who was speaking only spanish to get to the clamity nether roof alive and well |
19:05 |
Guest54 |
using google translate |
19:07 |
Fleckenstein |
yea |
19:07 |
Fleckenstein |
i use DeepL to communicate with russian people |
19:07 |
Fleckenstein |
don't you know a person who worked on DeepL or something |
19:08 |
Guest54 |
did i say that? |
19:09 |
Guest54 |
“know” is wrong when i have been socially reclusive so much |
19:09 |
Guest54 |
in any wase, i have to go, see ya |
19:09 |
|
sparky4 joined #minetest |
19:10 |
Fleckenstein |
https://mister-muffin.de/p/BOIa.png |
19:10 |
Fleckenstein |
cya |
19:10 |
Guest54 |
good that you cover up who said that hehe |
19:11 |
Fleckenstein |
yea you told me to not leak your name |
19:11 |
Fleckenstein |
on this chat app |
19:11 |
Guest54 |
i will give link to a funny vid in return |
19:11 |
|
___nick___ joined #minetest |
19:11 |
Fleckenstein |
flameshot has a nice censoring feature |
19:12 |
Guest54 |
Fleckenstein i believe this is a song about kalman filters https://yewtu.be/watch?v=_LjN3UclYzU |
19:12 |
Fleckenstein |
will listen later |
19:13 |
Fleckenstein |
still at the cuddly catgirl convention |
19:13 |
Guest54 |
it also serves as an explanation of kalman filters |
19:13 |
Guest54 |
it may be that it fits the crowd you are hanging out with hehe |
19:14 |
MTDiscord |
<RisingLeaf> Guest54: wow, someone atually using invidous |
19:14 |
Guest54 |
well it does not have ads by default |
19:44 |
|
___nick___ joined #minetest |
19:45 |
|
PrairieWind joined #minetest |
19:45 |
|
PrairieWind joined #minetest |
19:47 |
|
___nick___ joined #minetest |
20:03 |
|
bodiccea_ joined #minetest |
20:04 |
|
Guest5582 joined #minetest |
20:04 |
|
Guest5582 joined #minetest |
20:31 |
|
sparky4 joined #minetest |
20:55 |
|
proller joined #minetest |
21:09 |
|
TheNamelessWonde joined #minetest |
21:12 |
|
Guest54 joined #minetest |
21:12 |
|
TheNamelessWonde left #minetest |
21:23 |
|
TheSilentLink joined #minetest |
21:24 |
TheSilentLink |
why doesn't pulling the docker container from registry.gitlab.com/minetest/minetest/server:5.7.0 work? isn't 5.7.0 the latest tag? |
21:26 |
TheSilentLink |
hmm just seen that it points to gitlab not github. Is gitlab still updated? 5.7.0 is missing there |
21:26 |
rubenwardy |
pushed now |
21:27 |
TheSilentLink |
ah yes I see the docker image is still building thank |
21:27 |
TheSilentLink |
thanks |
21:28 |
TheSilentLink |
Also do I need to download the gameid I want to play or will it automatically download it like the client? |
21:44 |
|
libera-staff joined #minetest |
21:55 |
|
Desour joined #minetest |
21:57 |
|
TheNamelessWonde joined #minetest |
22:06 |
TheNamelessWonde |
hi |
22:07 |
|
sparky4 joined #minetest |
22:10 |
|
TheNamelessWonde left #minetest |
22:14 |
|
Guest54 joined #minetest |
22:19 |
|
Desour joined #minetest |
22:21 |
Guest54 |
uh, question: should i try to name mods very general if they solve a general problem or specific? |
22:21 |
Guest54 |
like “utf8” is probably a mean name to squat on if you encode and decode utf8? |
23:34 |
fluxionary |
Guest54: names should be descriptive and memorable if possible. the name utf8 seems suitable for that feature. it's useful to search the CDB to see if there's already anything w/ similar names |