Time Nick Message 01:25 [MTMatrix] It does 03:12 [MTMatrix] *taps mic* is this thing on? 03:12 [MTMatrix] Aw man, demoted to [MTMatrix] on the same level as the [MTDiscord] users 03:13 muurkha you can promote yourself to IRC. irc.libera.net 03:13 muurkha uh, irc.libera.chat 03:13 muurkha sorry 03:14 [MTMatrix] it's true, I have an IRC account 03:14 [MTMatrix] I just can't be bothered jumping through the hoops to open it when I'm going to open Element as well 05:40 [MTMatrix] in my case, I don't have the resources to run a bouncer as well 05:47 hare_hare_yukai you could run a bouncer on an old phone if you tried 05:48 hare_hare_yukai or some old device 06:19 erle zmv7 cora has fixed the unicode signs mod it seems https://codeberg.org/cora/uc_signs 07:03 [MTMatrix] you can always read the logs on irc.minetest.net instead of a bouncer 07:03 [MTMatrix] But matrix makes it even easier to catch up on 07:24 MTDiscord erle: Will test at the evening 07:25 erle zmv7 it will not work if the first character of a sign is a number, but that's a bug i made when implementing bidi rendering. i will have to fix it in unicode_text. 07:25 erle zmv7 please report back! 07:26 MTDiscord Ok 07:26 erle lol uc_signs stands for ultra cool signs mod 07:26 erle :D 07:26 erle zmv7 are you a server admin or just use it in singleplayer? 07:27 MTDiscord I'm admin on couple edgynet servers, but I test ucsigns in singleplayer 07:28 MTDiscord Though the color of the signs is acid green, hurts an eye a bit 07:31 erle zmv7 complain here i guess https://codeberg.org/cora/uc_signs/issues 10:49 erle MisterE123 i have added a paragraph about coras uc_signs mod and a sentence that you can use unicode_text to also render tengwar and klingon and so on https://github.com/minetest/blog/issues/129 13:09 MTDiscord erle: I tested, now it works 13:09 MTDiscord https://cdn.discordapp.com/attachments/749727888659447960/1152229759435161680/image.png 13:09 MTDiscord https://media.discordapp.net/attachments/749727888659447960/1152229759435161680/image.png 13:11 MTDiscord And the sign is rotated on place, like in minecraft. It uses param2 I see 13:12 MTDiscord Though the feature to edit placed sign is missing... 13:49 erle zmv7 you can probably modify an existing signs lib that has that, with two caveats: it will not work for minetest clients pre-[png (i believe that means pre-5.5) and you should probably not use zstd compression for such small inputs (zstd authors say to use a dictionary if you really want to, but the minetest API does not provide that) 13:50 erle zmv7 alternatively, send cora a patch or open an issue? 14:04 MTDiscord Issue about color or about editing feature? 14:04 erle about both 14:05 MTDiscord hmm if you want. I don't registered in codeberg though 14:12 erle i just tested this with a 24k bytes input texture that is very regular (large checkerboard): zstd on highest compression level (-19 here) makes it 80 bytes, but takes a third of a second for it on my machine. gzip on highest compression level (-9 here) makes it 143 bytes, but is instantaneously. for the purpose of a mod, you don't want to give users the option to stall your server. 14:13 erle with the default compression level zstd takes still longer than gzip, but also produces a larger file. 14:14 erle basically, if your input is small, use zlib/gzip or zstd with a pre-supplied dictionary (e.g. for http headers or so) 14:14 erle but if it's large, zstd can easily flex it's advantages (e.g. larger window size) 14:40 lissobone What is a window? 14:41 rubenwardy an opening in the wall or roof of a building or vehicle, fitted with glass in a frame to admit light or air and allow people to see out. 14:42 lissobone But what is out? 14:43 lissobone If we focus on the window solely, we might forget what's on each side of it. 14:44 celeron55 i'm pretty sure a window doesn't have to have glass or be see-through 14:45 celeron55 before glass was a thing windows were just holes in the wall with a wooden thing to block them. a bit like doors you couldn't fit through 14:46 celeron55 or i guess a fabric could be used to close them as well 14:46 celeron55 that way you got some light in when it was closed 14:47 celeron55 wikipedia tells me parchment was used also 14:51 celeron55 (then, of course in algorithms a window is, well, kind of like a window to a stream of samples, so that you see a finite continuous set of samples. if someone actually needed that definition) 14:52 erle lissobone in this context it is on how much of the data the algorithm can “look” for redundancies. i believe for zlib this can be up to 32k. 14:53 celeron55 (often it's a bit like the working memory of an algorithm) 14:54 erle basically, if you have two very similar things that are >32768 bytes apart, zlib will not utilize that for compression 14:54 erle hmm 14:54 erle not sure if that is correct actually 14:55 erle you can't specify *distances* larger than 32k 15:00 celeron55 deflate sure is lovely in its speed and simplicity. it barely does anything, but still you barely can hope for much better in most cases 15:00 erle in any case, my general advice is: don't compress stuff with zstd for small user-supplied inputs in synchronous code. 15:00 erle because either you'll outperform zlib on size and your users can stall your server or you don't outperform it at all. 15:01 erle bad space-time tradeoff 15:02 erle celeron55 i'm pretty sure that there are a number of clever pre-filters that don't do very much, but all of those depend on the “shape” of your data unfortunately. 15:04 erle burrows-wheeler transform is funny though 15:04 erle as is paeth 15:05 erle uh, for some reason i have a *shell script* named bwt and one named unbwt 15:05 erle why did i ever 15:12 erle i am not convinced 15:12 erle ; printf 'BANANAANNABANABANABANANABAANANBAAANNANANBA' |zlib-flate -compress |wc -c 15:12 erle 28 15:12 erle ; printf 'BANANAANNABANABANABANANABAANANBAAANNANANBA' |bwt |zlib-flate -compress |wc -c 15:12 erle 100% (43/43) 15:12 erle 33 15:13 s20 What 15:13 s20 That thing has gone cuckoo bananas. 15:13 erle s20 apparently, past me thought that this algorithm is so cool that i had to have it implemented in bourne shell https://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transform 15:14 s20 Ah 15:14 erle the output of btw looks like BBNANNNNNNBBBBANNNAABNAAA^?ANAANAAAANAAAAAAA when fed through cat -v 15:14 erle i wonder if i have mis-implemented it somewhere, but i don't care 15:14 erle i have to go 15:16 celeron55 your banana does look like fairly representative data of a tga compressed map 15:16 celeron55 i must say 15:16 celeron55 eh 15:16 celeron55 tga encoded 15:16 erle lol 15:25 muurkha erle: I did a DHTML implementation of the BWT at http://canonical.org/~kragen/sw/bwt 15:26 muurkha for BANANAANNABANABANABANANABAANANBAAANNANANBA it gets BBNANNNBNNNBBBBANNNAANANAAAAAANAAAANAAAAAA 15:26 erle i guess mine is wrong then 15:27 muurkha hilariously, I've seen Paeth's predictor used in PDF files to compress the file offsets where objects are to be found 15:27 muurkha celeron55: I think LZ4 beats deflate in speed and simplicity 15:29 muurkha well, you seem to have stuck a ^? in there 15:29 muurkha maybe as an EOF or start marker or something 15:30 celeron55 but the compression ratio suffers in lz4 considerably 15:30 muurkha the BWT as described in the original paper requires a piece of auxiliary information: the starting point 15:30 celeron55 of course, not always that much 15:31 muurkha yes, LZ4 definitely is often a lot worse than deflate in compression ratio. and I think that'll be true of all purely-byte-based compression schemes 15:31 celeron55 but generally deflate is worth it 15:31 muurkha I mean, schemes that can't use fractional output bytes 15:35 celeron55 and, of course, the most important part of a compression algorithm is the branding. the name "deflate" implies your data is inflated. who would be so crazy as to store and transfer *inflated* data 15:38 muurkha I think that comes from PKZIP; ZIP inherited from its predecessor ARC a practice of giving each new compression algorithm a name short enough to comfortably fit into file listings 15:39 muurkha because in ARC and ZIP (and IIRC contemporary alternatives like LZH) each file in the archive is compressed independently 15:40 muurkha IIRC the original PKZIP only had Store and Shrink, the latter being LZW 15:41 muurkha later versions added Reduce (with four levels) and Implode, which last suggests that either Phil Katz was already having alcohol problems or rather desperate for names already 15:42 muurkha and finally, after a lacuna of some years (again, possibly due to alcoholism) the glorious PKZ204G.EXE appeared, with Deflate, precisely as we know it today 15:43 muurkha someone apparently went through and did the archaeology: https://entropymine.wordpress.com/2019/08/09/survey-of-pkzip-versions-for-ms-dos/ 15:44 muurkha it seems like maybe it was only a year and a half between 1.10 and 1.93α, which was really the alpha of PKZip version 2 18:10 MinetestBot 02[git] 04Wuzzy2 -> 03minetest/minetest: New physics overrides (#11465) 138ebaf75 https://github.com/minetest/minetest/commit/8ebaf753d3c6b50028d097db924a887d98602c18 (152023-09-15T18:10:08Z) 19:41 erle muurkha i'm pretty sure ^? is either the start or the end marker or both. unsure. i have to understand that script. 19:42 erle in any case, my bwt and unbwt scripts are actually the inverse of each other 19:42 erle but do not exactly produce what i want it seems 19:46 erle https://www.youtube.com/watch?v=VtllSYsYoIc 19:46 erle Block League tournament on YouTube 19:47 muurkha I am confident that you can understand my script easily :) 19:47 erle muurkha no, i have to understand my old bwt script 19:47 muurkha that might be harder 19:48 erle well here is it https://mister-muffin.de/p/x593 19:50 muurkha it's not even in rc! 19:50 erle for some reason i chose \177 as the end marker and handled newlines specially. why? 19:50 muurkha looks like ^? is the end marker (line 4) 19:51 erle yeah but why would i 19:51 muurkha misguided respect for the FS/US/RS/GS/QS delimiter set? 19:51 erle could be lol 19:52 erle hehe, that reminds me of item stack meta injection 19:52 erle i think that was done by using \2 and \3? 19:52 muurkha haha 19:52 erle minetest 5.3, source of many illegal items 19:52 muurkha a start or end delimiter is needed if you want to avoid the auxiliary variable I used in my implementation 19:53 erle well for some reason my thing does not produce what expected 19:53 muurkha I wonder if this script works properly if the input contains globs that match files in the current directory 19:53 erle do i have unquoted variables there or what 19:53 muurkha no 19:54 muurkha I just don't remember what "${OUTPUT#"${PREFIX}"}" does if PREFIX=* 19:54 erle haha, shellcheck complains that ${J} is not necessary for arithmetic 19:55 muurkha I think you're handling newlines as RS (?) in order to be able to separate input and output records to sort(1) with them 19:55 muurkha it's not RS, it's SUB 19:55 muurkha ^Z 19:55 erle implicit repeated expansion is surely one of the shittiest things in shell languages, it definitely violates ”solution fits in head” 19:57 muurkha this is as quadratically inefficient as my JS solution, but I think you've at least managed to avoid spawning one or more processes per input character 20:02 erle i definitely tried to be clever 20:02 erle but it is not checked in git and has no unit tests 20:02 erle so i obviously did it as a toy thing and discarded it 20:02 erle i wonder why though 20:05 erle ; printf 'SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES' |bwt 20:05 erle output is "TEXYDST.E.IXIXIXXSSMPPS.B..E..UESFXDIIOIIITS" 20:05 erle which is indeed matching 20:06 erle like this is the example from wikipedia 20:06 erle but for ^BANANA| i get BNN^AAA| 20:07 erle which is wrong 20:07 erle it should be BNN^AA|A according to wikipedia at least 20:07 erle muurkha and idea what i am doing wrong? 20:08 erle hmm 20:08 erle i think maybe the sort order is just different for me! 20:08 muurkha does LC_ALL=C help? 20:09 erle nope 20:09 muurkha you could imagine that |^B might sort differently than |^?^B 20:09 erle hmmmmmmm 20:09 muurkha ^ still comes after uppercase though 20:10 erle i shall output all rotations 20:10 erle i mean the script already uses LC_ALL=C sort 20:11 erle okay this is weird 20:11 erle the sorting table just has 1 entry too much 20:12 erle ohhh i see 20:12 erle i add the end marker 20:12 erle and then i have one character more 20:13 erle hmm 20:16 erle muurkha i got this, i obviously want to bwt the string '^BANANA' and not 'BANANA' or '^BANANA|' 20:16 erle because i implicitly add the end marker 20:16 erle printf '^BANANA' |bwt |cat -v 20:17 erle BNN^AA^?A 20:17 erle which is correct! 20:17 erle still does not explain why i wrote it obv 20:19 erle muurkha any idea what would be a useful in-game text rendering mod that is not just a sign? 20:20 erle i mean, i could make a giant sign that shows some wall of text, but what is there except the in-game chat that is interesting? 20:25 muurkha oh, I wonder why the extra character changes the order that way 20:25 muurkha you clearly didn't intend it to be 8-bit clean so you probably weren't testing compression of tiny TGAs 20:29 erle not realy 20:29 erle it's not much use anyway 20:30 erle i wonder why the texture loading in minetest is not more like browsers. celeron55 any idea? 20:30 erle like if an unknown texture comes, why not generate a placeholder, but also ask the server for what it could be? 20:31 erle there must be a drawback. i mean, flickering could be that drawback obviosly. 20:31 rubenwardy lazy loading 20:31 rubenwardy is the term 20:33 erle rubenwardy yeah but there must be a reason why it does not exist in minetest. i mean 
 it would probably make a lot of racy code much more palatable if dynamic media arriving would *replace* the generated placeholder texture, no? 20:33 rubenwardy the reason it doesn't exist is because it wasn't coded 20:34 erle yeah, but something much more complex was coded 20:34 rubenwardy much of the code relies on having a reference to a texture and doesn't support updating that later on 20:34 erle ah, so no cache eviction possible? 20:34 rubenwardy sending the media up front is less complicated than lazy loading 20:34 erle i see 20:35 muurkha erle: the bwt script could be pedagogically valuable, but IMHO would need some comments 20:35 erle rubenwardy so without the inline textures, how would one actually update a sign entity if you don't want to send the text to *all* players, but just the one in range? have a fast-firing ABM and change the texture name everytime someone arrives in range? 20:36 erle i have conversed with people privately through signs in the past (so we could not accidentally send something to everyone in the chat) 20:37 erle muurkha yeah it's not my best work. it seems i wrote it about a year ago, deep into vit-d-deficit-induced depression. 20:37 erle which may also explain why i have no memories of writing it or using it for anything 20:38 muurkha I've forgotten the vast majority of the code I wrote 20:38 erle yeah, but usually i know the *reeson* i wrote it 20:39 muurkha I definitely don't 20:39 erle take ipscat for example http://news.dieweltistgarnichtso.net/bin/ipscat-sh.html 20:39 erle modifications for gameboy advance ROMs come as IPS files 20:39 rubenwardy make the sign's texture name based on content, not the position/etc of the sign 20:39 rubenwardy so when the content changes the texture should change too 20:40 rubenwardy this results in a memory leak but is the only good way to doit 20:40 muurkha rubenwardy: like a SHA-256? 20:40 rubenwardy sure 20:40 rubenwardy or an incrementing id 20:40 erle rubenwardy i think that's exactly the *first* thing i thought about. but then the problem is: someone comes into range of the sign, but they were not sent the texture. so they see a placeholder texture. 20:40 rubenwardy maybe you could generate a new texture in that case 20:41 erle yes but two problems 20:41 erle first, how to detect that case 20:41 erle second, you can't have it based on the content alone, because you won't overwrite the placeholder 20:42 erle in xmaps, the id of a map is $timestamp.$randomvalue 20:42 erle so they sort by timestamp 20:42 erle roughly 20:42 erle the “how to detect that case best” is what i have not solved 20:43 muurkha erle: I'm looking at my old scratchpad in http://canonical.org/~kragen/sw/inexorable-misc/?C=M;O=A 20:43 erle i mean, xmaps has pretty much the same problem, but i think i send the maps to all players 20:43 erle creating an info leak 20:43 erle but also ensuring everyone got it when they come in range 20:43 muurkha I don't remember writing any of this stuff 20:43 erle for signs though 
 people put coordinates on signs 20:44 erle it would be a disaster to send it to all players 20:44 erle one very successful griefer abused the fact that running in mineclone2 sent particles to all players 20:45 erle that person griefed all bases on old clamity i think. or all but one, but that one was built the day before the server shut down. 20:45 muurkha why did it send particles to all players? 20:46 erle because mineclone2 is an artistic synthesis of many programming styles and differing talernts 20:46 erle talents 20:46 muurkha oh, it was a mistake? 20:46 erle yes 20:46 erle basically, it had two maintainers in the past who were cheat client devs, fleckenstein and cora. those people could catch that stuff and fix it. 20:47 erle because, for example, dragonfire (a cheat client) has a client-side hook for particle spawners as far as i know 20:47 erle so you can pretty much use it to debug your game 20:47 erle this is mostly useful to make sure it does not send unnecessary network packets 20:47 erle but also useful to cheat if you are *not* a maintainer ;) 20:48 muurkha this inexorable-misc code is all reasonably transparent because it has comments and stuff: http://canonical.org/~kragen/sw/inexorable-misc/dependencies.lua 20:48 muurkha interestingly it seems like I used to write a lot more Lua than I do now 20:48 erle nice 20:48 erle muurkha i'd love to see what you could to in minetest mods 20:48 erle you have done a lot of weird things so far 20:49 erle also, do YOU have any idea how to solve the signs problem i presented? 20:49 muurkha the minetest mods I've written so far are extremely basic 20:49 muurkha no, no idea 20:50 erle probably everyone has written basic mods 20:50 erle one of my first mods was a sponge mod 20:50 erle it replaced the air around itself with “sponge air” which rendered like air, but was not a thing water could flow into 20:50 erle and i think sponge air had an abm or so that replaced it with air when no sponge was nearby? 20:51 erle something like that 20:51 muurkha my wife was writing an Italian food mod earlier today. she's taking a nap now 20:52 erle does it have a satiation model 20:52 erle or what does food do 20:53 muurkha I don't think she was planning on writing her own satiation model, if that's what you mean 20:53 muurkha she likes using a particular satiation/stamina mod, I forget which one 20:54 muurkha where running saps your stamina and satiation, and you only heal if your satiation is high enough 20:54 erle muurkha in case you have not seen it, this is one of the most interesting mods i know so far: https://content.minetest.net/packages/Noodlemire/voxelmodel/ 20:54 erle > This mod provides a new method to making 3D models. It comes with voxelmodel.obj, a model consisting of a 17x17x17 grid of overlapping squares. Thus, by simply making different textures for this model, you can make a wide variety of voxelated shapes. 20:55 erle rubenwardy can one suggest tags for other mods? because voxelmodel is definitely one-of-a-kind 20:56 muurkha oh, I do remember why I wrote http://canonical.org/~kragen/sw/inexorable-misc/dumpdb.php 20:57 muurkha my ex-wife was working on a newspaper that got locked out of its hosting 20:57 muurkha they could still update the site via FTP but didn't have a way to get a backup of the database to switch to new hosting 20:59 muurkha you could say it was a cheat client for their database 20:59 rubenwardy erle: that tag is for games 21:00 muurkha haha, the docstring of http://canonical.org/~kragen/sw/inexorable-misc/fix-ftp-argentimes.py explains the situation in more detail 21:00 erle rubenwardy i guess then a bunch of stuff should be un-tagged and some other stuff should be tagged? 21:00 rubenwardy probably 21:01 rubenwardy the fact so many misuse it shows it's not a good tag 21:01 muurkha folksonomies always require a certain amount of janitorial work 21:01 rubenwardy lol, this mod had the tag https://content.minetest.net/packages/zaners123/computertest/ 21:02 erle like i tagged unicode_text one-of-a-kind because no other mod renders unicode and proof-of-concept mods like minetest 2d and text text also used it. 21:02 rubenwardy the fact it's inspired by a MC mod means it's not original 21:02 erle i mean no other mod renders *full* unicode ;) 21:02 rubenwardy lots render text though 21:02 erle indeed 21:02 erle i should untag it 21:03 rubenwardy also this take is probably better replaced with collections 21:03 rubenwardy *tag 21:03 rubenwardy ie: https://content.minetest.net/collections/rubenwardy/cool_original_games/ 21:04 muurkha I feel like tags work better as quasi-collections 21:04 erle so if it's only for unique games, the following also seem in need of a tag-updating: prang, woolen mesh creator, infinite warehouse (inspired by IKEA SCP), minetest 2d (tech demo), text text, railbuilder, sudoku 21:05 erle rubenwardy can there be a tech demo tag please? or is there some other tag that is appropriate 21:05 erle like stuff where minetest 2d and the hexagonal nodes can go in 21:06 erle and voxelmodel 21:06 muurkha it'd be nice if, when browsing a page on the contentdb, you had options like "bookmark as survival | bookmark as education | bookmark as inventory | bookmark as [enter tag here]" 21:06 rubenwardy add to collection 21:06 muurkha yes, but 21:06 rubenwardy at some point, i'll replace that with a js pop up 21:06 rubenwardy to make it quicker 21:06 rubenwardy when you have js enabled 21:07 muurkha with the suggestion that you should name the collection the same thing other people have tagged that mod as 21:07 muurkha and using the popular collection-names under which people have bookmarked mods as the tags that get displayed 21:07 muurkha instead of relying on the mod author to pick tags 21:07 erle at least it's collections and not favourites – in the REWE web shop interface (german supermarket) they only have favourites. so i have a list of favourites called ”bad shit” as a reminder to never buy that stuff again. 21:07 erle oh no, i think the list is just called ”shit” actually 21:08 rubenwardy yeah, ContentDB has favourites - but it's just a fancy UI to make a collection called "favorites" 21:09 muurkha like some epochs of del.icio.us 21:09 erle rubenwardy is there a way to see recent helpful reviews? 21:09 erle i mean positive reviews are mostly boring 21:09 erle maybe even recent positive helpful reviews 21:10 rubenwardy how are you defining that 21:10 rubenwardy most recent list of helpful - unhelpful > 3 ? 21:10 erle i'd just take helpful 21:10 erle take this comment https://content.minetest.net/threads/4617/ 21:10 erle it's not just positive, it contains very useful information 21:11 erle namely that mineclonia does not have the performance problems of mineclone 2 21:11 erle which probably means ancientmariner should just diff a bit to figure out what can be cherry-picked 21:13 erle then again 
 i take that back: this comment is positive and 2 people found it helpful lol https://content.minetest.net/threads/1473/ 21:13 erle “Exellent minecraft like exprience in minetest!” is pretty poor on actual info, given you can already get that from the game description 21:14 erle IMO very funny is a ”Good job Wuzzy!” from last month 21:15 erle rubenwardy what's the reason actually that mineclone2 is still mineclone2 by wuzzy? would it break something to re-assign it or so? 21:24 rubenwardy No, Minetest supports changing the author since 5.5.0 21:24 rubenwardy they just need to make an account and ask me to do transfer the package 22:00 erle rubenwardy would it also redirect the permalink for the contentdb page? 22:00 rubenwardy yes 22:00 erle hey hey ancientmariner note what rubenwardy said 22:01 erle then again 22:01 erle maybe wuzzy wants to reserve the right to veto the next maintainer? no idea 22:01 rubenwardy it handles both client side migration and website redirects 22:11 erle rubenwardy consider the following video evidence of something very weird happening if i don't move my mouse fast enough on the cdb web interface: http://daten.dieweltistgarnichtso.net/video/screencasts/contentdb-dropdown-fail.webm 22:12 rubenwardy can't reproduce, which browser? 22:12 erle firefox. and i *think* it only happens if you clicked the name once before. 22:12 rubenwardy the dropdown box is higher up for me 22:13 rubenwardy aha 22:13 rubenwardy looks like the focus style moves the dropdown downwards 22:13 erle for you too? 22:13 rubenwardy yeah 22:13 MTDiscord Doesn't do it for me anymore on FF or Chrome. Used do, but doesn't anymore 22:14 rubenwardy https://github.com/minetest/contentdb/issues/471