Time |
Nick |
Message |
00:57 |
|
kamdard joined #minetest |
00:57 |
|
v-rob joined #minetest |
01:03 |
lissobone |
Mo'ning! |
01:15 |
|
smk joined #minetest |
01:40 |
|
v-rob joined #minetest |
03:24 |
Swift110-mobile |
Hey |
03:39 |
|
YuGiOhJCJ joined #minetest |
03:43 |
|
Lesha_Vel joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
04:12 |
|
Alias joined #minetest |
04:26 |
|
Edgy2 joined #minetest |
04:27 |
|
fluxionary joined #minetest |
04:44 |
|
YuGiOhJCJ joined #minetest |
04:55 |
|
alex_ joined #minetest |
05:14 |
|
Lesha_Vel joined #minetest |
05:23 |
|
Boingo joined #minetest |
05:30 |
|
est31 joined #minetest |
05:32 |
hare_hare_yukai |
why do i see this variable using for true/false check in an if statement |
05:32 |
lissobone |
Which one? |
05:32 |
hare_hare_yukai |
when they want it not true they assign it "" |
05:32 |
lissobone |
oh that's just lua |
05:32 |
hare_hare_yukai |
some part in ctf |
05:33 |
hare_hare_yukai |
why not false |
05:33 |
hare_hare_yukai |
why ""? |
05:33 |
lissobone |
maybe it's for nodes or itemstacks? |
05:33 |
lissobone |
or not? |
05:33 |
hare_hare_yukai |
no its just a local variable thats assigned false at the start |
05:33 |
lissobone |
where is it? |
05:33 |
lissobone |
tell me the mod, source file and line |
05:33 |
hare_hare_yukai |
mods/ctf/ctf_modebase/match.lua |
05:34 |
hare_hare_yukai |
line:46 |
05:34 |
lissobone |
restart_on_next_match = false? |
05:34 |
hare_hare_yukai |
restart_on_next_match = "" |
05:35 |
hare_hare_yukai |
i mean why is this assigned "" |
05:35 |
lissobone |
my version doesn't have the "" assignment for some reason |
05:35 |
lissobone |
maybe i need a newer version |
05:35 |
hare_hare_yukai |
oh maybe im just missing something |
05:37 |
lissobone |
https://en.wikipedia.org/wiki/Ruben_Vardanyan_(politician) |
05:37 |
hare_hare_yukai |
lmfao |
05:37 |
hare_hare_yukai |
why? |
05:37 |
lissobone |
ruben wardy |
05:38 |
hare_hare_yukai |
my face when |
05:38 |
|
calcul0n joined #minetest |
05:38 |
lissobone |
i've updated |
05:39 |
hare_hare_yukai |
on the latest version its the same |
05:39 |
lissobone |
"[NOTICE] Server will restart after this match is over. " .. restart_on_next_match |
05:39 |
lissobone |
It's concatenated, though it's an empty string. |
05:39 |
lissobone |
restart_on_next_match = param and (" ("..param..")") or "" |
05:40 |
lissobone |
Looks like it can have the value of the command parameter for an optional extra message. |
05:40 |
lissobone |
That's the culprit. |
05:42 |
|
est31 joined #minetest |
05:49 |
|
mmuller joined #minetest |
06:10 |
|
jaca122 joined #minetest |
06:26 |
|
Sobinec joined #minetest |
06:58 |
|
mrkubax10 joined #minetest |
07:03 |
|
Lesha_Vel joined #minetest |
07:16 |
|
definitelya joined #minetest |
07:25 |
|
s20 joined #minetest |
07:50 |
|
lissobone left #minetest |
08:14 |
|
TomTom_ joined #minetest |
08:20 |
|
appguru joined #minetest |
08:32 |
MTDiscord |
<luatic> lissbone, hare_hare_yukai: "" is truthy in lua |
09:22 |
|
lissobone joined #minetest |
09:36 |
|
est joined #minetest |
09:58 |
|
Sobinec joined #minetest |
10:05 |
|
lissobone joined #minetest |
10:05 |
lissobone |
men, i need ur immediate assistance |
10:06 |
lissobone |
when i start minetest it attempts to make a window (this may greatly help when studying the source) and then closes it and throws an error: X Error of failed request: GLXBadContextTag |
10:07 |
lissobone |
cuz i just installed trisquel gnu+linux-libre |
10:09 |
erle |
lissobone i try to help |
10:09 |
lissobone |
maybe something with the libraries |
10:09 |
lissobone |
but i have all mesa stuff installed |
10:09 |
erle |
lissobone, ensure you have glxinfo |
10:09 |
erle |
do you have it |
10:10 |
erle |
ensure you have curl, then execute the following command: glxinfo |curl -F 'arg=<-' https://mister-muffin.de/paste |
10:10 |
lissobone |
oh yeah i see it |
10:10 |
erle |
write the url to the chat |
10:10 |
lissobone |
i have already executed it |
10:10 |
lissobone |
i see cool numbers |
10:10 |
erle |
for me the output is this https://mister-muffin.de/p/RZIx.txt |
10:11 |
erle |
you see it has opengl 1.4 and shaders and stuff |
10:11 |
erle |
and opengl es 2 |
10:12 |
lissobone |
https://mister-muffin.de/p/KjZk.txt |
10:12 |
lissobone |
let's compare |
10:12 |
celeron55 |
you could also install and run glxgears. if it doesn't work, then minetest surely won't work as no 3d graphics work at all. if it works and minetest does not, then the issue is something more involved |
10:12 |
lissobone |
hmmmm the gears work fantastically |
10:12 |
lissobone |
like swiss clockwork |
10:12 |
lissobone |
(almost literally) |
10:12 |
lissobone |
2500 FPS |
10:13 |
muurkha |
wow |
10:13 |
erle |
okay, so for me this says: OpenGL renderer string: Mesa DRI Intel(R) 945GM x86/MMX/SSE2 |
10:13 |
erle |
for you this says: OpenGL renderer string: llvmpipe (LLVM 15.0.7, 256 bits) |
10:14 |
lissobone |
sorry i was busy observing the gears |
10:14 |
erle |
isn't that … uh … software rendering? |
10:14 |
lissobone |
i'm back |
10:14 |
lissobone |
maybe it is software rendering |
10:14 |
celeron55 |
yeah llvmpipe is software rendering provided by the OS |
10:14 |
celeron55 |
i'm not sure if MT will generally work with that or not |
10:14 |
lissobone |
it worked before, i think |
10:14 |
erle |
celeron55 it should |
10:15 |
erle |
i can have even very slow shadows (haha shadows are always slow in minetest) with LIBGL_ALWAYS_SOFTWARE |
10:15 |
erle |
lissobone, start the gears with LIBGL_ALWAYS_SOFTWARE=1 glxgears |
10:15 |
celeron55 |
are more details available about the GLXBadContextTag error? |
10:15 |
erle |
do they have the same fps? |
10:15 |
erle |
or way less? |
10:15 |
erle |
then try to start minetest with: LIBGL_ALWAYS_SOFTWARE=1 minetest |
10:15 |
lissobone |
not much less, i just don't go all the way up to extreme graphics settings |
10:16 |
lissobone |
quite bearable: usually 40 FPS |
10:16 |
celeron55 |
i think generally if you run glxgears with hardware rendering you'll have vsync lock it at 60fps |
10:16 |
erle |
if that *does not* work, there is an issue with the software renderer (or minetest, if someone broke mesa software rendering compat, which would be an amazing feat hehe) |
10:17 |
lissobone |
i'm using the same 5.7.0 version like before, it just (for some reason) throws this error specifically on trisquel |
10:17 |
lissobone |
hold on, i can eggshelly try to compile it myself and debug it with gdb |
10:17 |
lissobone |
hold on lemme first start the gears |
10:17 |
erle |
yeah so does it start with LIBGL_ALWAYS_SOFTWARE=1 or does it throw the same error? |
10:18 |
lissobone |
glxgears are at the same 2500 FPS |
10:18 |
lissobone |
minetest throws the same error |
10:18 |
erle |
then it might be that your software rendering is pretty powerful |
10:18 |
erle |
but also that it is somehow borked lol |
10:18 |
celeron55 |
are you using the build of minetest that you made on your previous system, on the new system? |
10:18 |
celeron55 |
you should definitely rebuild it if your OS has been updated |
10:18 |
erle |
wow good question |
10:18 |
lissobone |
it's the one trisquel provided |
10:18 |
lissobone |
yeah i should |
10:18 |
erle |
maybe trisquel sucks and you should compile yourself |
10:18 |
lissobone |
i already did that before, i think |
10:19 |
lissobone |
no, trisquel doesn't suck much (we'll see about that once i compile minetest) |
10:19 |
erle |
i have *never* seen an app fail with mesa software rendering |
10:19 |
erle |
lets see how much gears i get |
10:19 |
erle |
what resolution where your 2500 fps gears? |
10:20 |
lissobone |
uhhhh |
10:20 |
lissobone |
if i do it fullscreen (1920x180) it becomes 370 fps |
10:20 |
lissobone |
1800* |
10:20 |
lissobone |
1080* |
10:20 |
erle |
look, i get 30 fps for fullscreen glxgears on a 1400x1050 on my thinkpad |
10:20 |
erle |
minetest also gets 20 to 30 fps if i'm not stressing it |
10:21 |
erle |
i guess you probably *can* run minetest in software rendering mode |
10:21 |
erle |
your computer may become hot though |
10:21 |
lissobone |
i've ran it like this for months already |
10:21 |
lissobone |
it's good |
10:21 |
erle |
i mean minetest for me in not-software-rendering-mode |
10:21 |
erle |
lissobone are you *sure* trinsquel is providing the drivers for your graphics card? |
10:21 |
erle |
it might be a binary blob |
10:21 |
erle |
i mean at least the firmware might be |
10:22 |
lissobone |
yeah it did provide all the drivers |
10:22 |
lissobone |
i installed it now and it doesn't like something |
10:22 |
lissobone |
trisquel is fully free, there are no binary blobs |
10:22 |
lissobone |
if there are, please report them |
10:23 |
|
Sobinec joined #minetest |
10:23 |
erle |
lissobone what GPU do you use? |
10:23 |
lissobone |
'/usr/lib/x86_64-linux-gnu/libGLU.so', needed by 'lib/Linux/libIrrlichtMt.so.1.9.0.10'. Stop. |
10:23 |
lissobone |
something around nvidia gtx 960 |
10:24 |
lissobone |
i don't remember the name correctly |
10:24 |
lissobone |
but it has 960 in the name |
10:24 |
lissobone |
libGLU is missing: irrlicht demands it |
10:24 |
erle |
does it have a free driver? |
10:24 |
lissobone |
yeah, otherwise i wouldn't be writing this in pidgin |
10:25 |
Krock |
locate libGLU.so and symlink the thing if you have .0 version |
10:25 |
erle |
if you have no libglu1-mesa or so (that's the debian name), install it? |
10:25 |
lissobone |
oh yeah i already have it |
10:25 |
lissobone |
just not the dev files |
10:25 |
lissobone |
compiling |
10:26 |
erle |
i mean if i am not mistaken that library detects what opengl extensions you have, so you should kinda have it |
10:26 |
erle |
oh dev files i see |
10:26 |
lissobone |
i've built irrlicht |
10:26 |
lissobone |
now compiling minetest |
10:26 |
|
Sokomine joined #minetest |
10:26 |
erle |
you have a much faster computer than i have |
10:26 |
lissobone |
cool |
10:26 |
lissobone |
how to slow a computer down? |
10:27 |
erle |
press the POWER button, it can slow it down to 0 |
10:27 |
lissobone |
but what about fractions between 0 and 1? |
10:27 |
erle |
you can use cpulimit(1), but it's pretty ghetto |
10:27 |
erle |
there is probably a better way |
10:27 |
Krock |
lissobone: echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq >/dev/null |
10:28 |
erle |
Krock, will 0 set it to the slowest freq? |
10:28 |
erle |
you can also use chcpu to disable CPUs |
10:28 |
Krock |
that or ignore the write command. in latter case, tr perhaps 800 |
10:28 |
lissobone |
minetest is compilin' |
10:28 |
erle |
on a modern computer you should be able to disable every one but the first CPU |
10:29 |
lissobone |
yeah i've seen that option in the bios |
10:29 |
erle |
no, you can do it *at runtime* |
10:29 |
lissobone |
that's unfortunately nonfree and not very replaceable |
10:29 |
erle |
in linux |
10:29 |
lissobone |
oh really? |
10:29 |
erle |
i can make my core duo a core mono with one single trick |
10:29 |
lissobone |
and in hurd? |
10:29 |
erle |
man chcpu |
10:29 |
erle |
maybe it has that too? |
10:29 |
erle |
oh, it's part of util-linux lol |
10:29 |
erle |
oh you are running minetest on GNU/hurd amazing |
10:30 |
lissobone |
sorry, not yet (i was just curious) |
10:30 |
erle |
i mean you aren't running it quite yet |
10:30 |
erle |
oh also one very important thing for online gaming |
10:30 |
lissobone |
i am yet to fully study the gnu hurd source code and let the freedom flow through me |
10:30 |
erle |
google “en passant” |
10:30 |
erle |
very important thing |
10:30 |
erle |
if you think someone is cheating in an online game |
10:30 |
erle |
first check if it was maybe “en passant” |
10:30 |
ROllerozxa |
haha |
10:31 |
ROllerozxa |
google en passant |
10:31 |
erle |
it is very important! |
10:31 |
erle |
source: chess.com |
10:31 |
erle |
:P |
10:31 |
lissobone |
very cool feature |
10:31 |
erle |
yes en passant is amazing |
10:31 |
erle |
you can get so many chess noobs with it! |
10:32 |
lissobone |
i never knew chess developers hid it somewhere in the source code |
10:32 |
lissobone |
thank you for enlightening me chess brother |
10:32 |
erle |
i'm not your brother |
10:32 |
erle |
probably |
10:32 |
erle |
i have a bunch of siblings |
10:32 |
erle |
but i think they'd physically come over with their computer problems |
10:32 |
ROllerozxa |
wait I'm supposed to say the line |
10:32 |
ROllerozxa |
holy hell |
10:33 |
ROllerozxa |
new response just dropped |
10:34 |
erle |
lissobone also try the exploit where you advance on the last line to a rook and then do a rochade/castling move (because the rook has not moved) |
10:34 |
lissobone |
why is it an exploit? |
10:34 |
lissobone |
it looks like a clever hack |
10:34 |
erle |
i am not entirely sure if this is legal |
10:35 |
erle |
i mean a promoted pawn gets *replaced* by a rook? or does it get *turned into* a rook? |
10:35 |
erle |
did the rook ever move or not |
10:35 |
lissobone |
in physical chess, it may or may not be the same rook |
10:36 |
erle |
https://www.futilitycloset.com/2009/12/11/outside-the-box/ |
10:36 |
erle |
> So, legal, right? Alas, after much debate in Dutch and Belgian chess columns, FIDE revised its rules to refer to a rook “on the same rank.” Some people have no imagination. |
10:36 |
erle |
damn FIDE |
10:36 |
lissobone |
but in digital chess, i think it has to be random if both have been taken down |
10:36 |
lissobone |
almost compiled mine tes t |
10:36 |
erle |
why isn't it called mesetint |
10:36 |
erle |
that's a good anagram |
10:37 |
erle |
and meaningful |
10:37 |
lissobone |
i think it used to |
10:37 |
lissobone |
minetest_game used to be called like that |
10:37 |
erle |
nice |
10:37 |
erle |
i did not know! |
10:37 |
lissobone |
but now it's just minetest_game |
10:37 |
erle |
i looked for minetest anagrams yesterday |
10:37 |
erle |
using an(1) |
10:37 |
lissobone |
nestimet |
10:38 |
lissobone |
82% |
10:38 |
erle |
the percentages given by cmake are generally lies |
10:38 |
celeron55 |
yeah i originally called minetest_game mesetint, but if i recall correctly people complained about that name too much |
10:38 |
erle |
i complained about it and was dismissed |
10:39 |
erle |
celeron55 what was the complaint? |
10:39 |
erle |
it's an awesome name |
10:39 |
celeron55 |
don't remember |
10:39 |
lissobone |
"Built target minetest". |
10:39 |
erle |
giving it a horrible name after complaints is like NGE did it |
10:39 |
celeron55 |
it was a different time |
10:39 |
erle |
people were like “give us a sequel to neon genesis evangelion” |
10:39 |
erle |
so the viewers get “end of evangelion” |
10:39 |
erle |
where everyone dies |
10:40 |
erle |
and turns into fanta |
10:40 |
erle |
._. |
10:40 |
lissobone |
yoooo minetest's up |
10:40 |
erle |
lissobone, now install LimeCone 2 |
10:40 |
erle |
does it start btw |
10:40 |
lissobone |
thanx guys withou t you i could not have gotten the determination to compile it myself |
10:41 |
lissobone |
aye it starts just like bef4 |
10:41 |
erle |
we did nothing but point out you are running your CPU hot |
10:41 |
lissobone |
isn't much hot |
10:41 |
erle |
lissobone is smoking the llvmpipe |
10:41 |
erle |
what kind of cpu do you have anyway |
10:41 |
lissobone |
meth |
10:41 |
celeron55 |
if you have a modern high performance cpu, minetest will run just fine using llvmpipe. but it's kind of wasteful still |
10:42 |
celeron55 |
the gpu would do the same job with less energy |
10:42 |
lissobone |
it's something like intel i5-[iforgot] |
10:42 |
lissobone |
lemme che chk |
10:42 |
erle |
LANG=C lscpu |grep 'Model name' |
10:42 |
erle |
Model name: Intel(R) Core(TM) Duo CPU T2400 @ 1.83GHz |
10:42 |
erle |
that's fast enough for everything actually except *really* shitty websites like the discord login page |
10:42 |
lissobone |
ntel(R) Core(TM) i5-3570 CPU @ 3.40GHz |
10:43 |
erle |
and how many cpu |
10:43 |
lissobone |
Intel* |
10:43 |
lissobone |
4 |
10:43 |
erle |
you are far ahead of me then |
10:43 |
erle |
enjoy! |
10:43 |
erle |
lissobone, do you know this? https://maizure.org/projects/decoded-gnu-coreutils/ |
10:43 |
lissobone |
i'm not enjoying my cpu as much as i enjoy (almost) full freedom |
10:43 |
celeron55 |
that i5-3570 is almost ideal for llvmpipe. lots of single thread performance |
10:44 |
lissobone |
nope i don't know this yet |
10:44 |
celeron55 |
but it's a bit old |
10:44 |
erle |
it's pretty cool https://maizure.org/projects/decoded-gnu-coreutils/tac.html |
10:44 |
erle |
celeron55 if no one fucks it up, minetest will run on “a bit old” computers forever |
10:44 |
erle |
i mean that is actually the main value proposition for everyone i know who does not have a “gaming pc” |
10:45 |
celeron55 |
(and by "a bit old" i mean it was released in 2012 :D) |
10:45 |
celeron55 |
(probably 10x faster than erle's cpu though) |
10:45 |
erle |
i can watch youtube, run minetest and i *could* run sway, but i think i only tried once |
10:46 |
erle |
lissobone what's your fav minetest game |
10:47 |
lissobone |
oh yeah i've seen that one about coreutils code structure overview on its gnu.org/software page |
10:47 |
lissobone |
i just never got to take a closer look at it |
10:47 |
lissobone |
i doubt if i have a single favorite game |
10:48 |
lissobone |
warr1024 did a pretty good job at nodecore, but at the same time certain modpacks for mesetint can constitute for full games on their own |
10:48 |
erle |
nodecore is both fascinating and evil |
10:48 |
lissobone |
i've never asked for any help while playing it |
10:49 |
erle |
celeron55 muurkha do you two actually like the nodecore way of things? |
10:49 |
erle |
a was very amused when someone pointed out that in nodecore every mistake is your own damn fault |
10:49 |
erle |
whereas in exile it is the fault of the environment (yeah, sure!) |
10:49 |
lissobone |
when i play nodecore with friends, i sometimes feel a little bad for spoiling their experience |
10:50 |
lissobone |
they just end up running around doing random stuff while i make concrete foundations for houses |
10:50 |
celeron55 |
i haven't gotten far at all in nodecore. i get bored very quickly in it |
10:50 |
erle |
i like repixture. it's like the teletubbie version of minetest mods. |
10:51 |
celeron55 |
i guess i'm more of an environment than a game mechanics person |
10:51 |
lissobone |
i remember one game |
10:51 |
erle |
celeron55 i think that is the duality of nodecore players. either you get bored/frustrated or you build smelters out of nodes and computers out of prisms. |
10:51 |
erle |
celeron55 ig “inside the box” is also not your thing? |
10:51 |
lissobone |
it's called ketchupland |
10:51 |
erle |
what |
10:51 |
lissobone |
i never got its point |
10:52 |
lissobone |
https://content.minetest.net/packages/danil_2461/ketchupland/ |
10:52 |
MTDiscord |
<luatic> have you considered the possibility that it might not have a point? |
10:52 |
lissobone |
but the environment is funny |
10:52 |
MTDiscord |
<luatic> @danil_2461 explain KetchupLand |
10:52 |
MTDiscord |
<danil_2461> Uhhh Umm Err |
10:52 |
MTDiscord |
<danil_2461> what |
10:52 |
celeron55 |
i've played inside the box enough to get the feel for it but again, it's not really a way to spend a lot of time |
10:52 |
celeron55 |
+for me |
10:52 |
MTDiscord |
<luatic> lissobone doesn't get the point of ketchupland (and neither do i; is there a point to begin with?) |
10:52 |
MTDiscord |
<danil_2461> me neither |
10:52 |
lissobone |
i gathered a few tomatoes |
10:52 |
MTDiscord |
<danil_2461> get ketchup, do stuff, have fun ig |
10:53 |
MTDiscord |
<danil_2461> and mine |
10:53 |
lissobone |
the inventory also looks fun |
10:53 |
erle |
let me point out that lizzy once made a modification of mineclone 2 in which you could milk other players |
10:53 |
erle |
i think to have fun there does not need to be a point |
10:53 |
MTDiscord |
<danil_2461> i made that i thjnn |
10:53 |
MTDiscord |
<danil_2461> i dont even remember |
10:53 |
erle |
like you point a bucket at another player and it gets filled up (like with cows) |
10:54 |
erle |
she also added moaning sounds and windows xp error sounds |
10:54 |
erle |
it was pretty much pointless |
10:54 |
erle |
except for a laugh |
10:54 |
lissobone |
i made a gachimuchi mod with van darkholm sound effects and leather armor |
10:54 |
erle |
what is gachimuchi |
10:54 |
erle |
who is van darkholm |
10:54 |
erle |
wait let me look it up |
10:54 |
erle |
after all you prb looked up en passant |
10:54 |
lissobone |
gachimuchi is muscular men in japanese |
10:55 |
lissobone |
van darkholm is an artist |
10:55 |
lissobone |
a performance artist |
10:55 |
lissobone |
he gets hired for people to fulfill their fantasies. Their deep, dark fantasies. |
10:55 |
erle |
wikipedia says gachimuchi is gay porn actor |
10:55 |
erle |
and van darkholm is kink.com adjacent |
10:55 |
erle |
gib mod |
10:56 |
lissobone |
you're off base |
10:56 |
lissobone |
gachimuchi is an art genre |
10:56 |
erle |
i wish there was a vore mod that was like pacman. some people are ghosts and some are pacman. |
10:56 |
erle |
the pacman has to vore the pills and the ghosts have to vore the pacman |
10:56 |
lissobone |
it involves muscular men and music remixes where sounds are replaced by manly moans (and slaps) |
10:56 |
lissobone |
vore |
10:56 |
erle |
it would be a funny 4 player game |
10:56 |
erle |
1 pacman and 3 ghosts |
10:56 |
lissobone |
please don't remind me of anything inflation-related |
10:56 |
lissobone |
btw is there an inflation mod? |
10:57 |
erle |
> please don't remind me of anything inflation-related |
10:57 |
lissobone |
i made a sex mod recently |
10:57 |
erle |
> btw is there an inflation mod? |
10:57 |
erle |
come on |
10:57 |
erle |
you are setting us all up for failure here |
10:57 |
erle |
either we remind you or we don't |
10:57 |
lissobone |
i set up a landmine |
10:57 |
lissobone |
and i will force you to step on it |
10:58 |
erle |
if you keep making threats i will report you to the admins of this discord! |
10:58 |
lissobone |
btw where are the discord-like mods on irc? |
10:58 |
lissobone |
moderators |
10:58 |
lissobone |
i've seen one on a minetest server |
10:58 |
erle |
wdym |
10:58 |
lissobone |
before him i thought that discord moderators were a joke |
10:59 |
lissobone |
the ones who say "no spamming" and "no caps" and ban and kick for "staff disrespect" and other things |
10:59 |
lissobone |
and who are generally unfunny |
10:59 |
lissobone |
familiar with such? |
10:59 |
erle |
no |
10:59 |
erle |
respect must be earned |
11:00 |
erle |
i am never on discord |
11:00 |
erle |
not only it is non-free |
11:00 |
lissobone |
me neither, i don't even have an account there |
11:00 |
erle |
my computer lagged on the login web page |
11:00 |
lissobone |
but i used to have it |
11:00 |
lissobone |
btw why don't you enable librejs? |
11:00 |
erle |
which is generally a sign of an incompetent webdev |
11:00 |
erle |
like i know web development, i do it sometimes |
11:00 |
MTDiscord |
<rollerozxa> "umm I don't use disckord because it is non-free 🤓" |
11:01 |
erle |
ROllerozxa i wanted to try it out, but i can not register an account if my computer slows to a crawl from some assclowns probably mining bitcoins in my browser or so |
11:01 |
lissobone |
umm i like to 🤓 people with whom i don't agree 🤓🤓🤓 |
11:01 |
lissobone |
don't try it |
11:02 |
lissobone |
maybe try it with some custom client, but i still don't recommend interacting with it |
11:02 |
celeron55 |
discord is like element/matrix but more polished and very proprietary |
11:02 |
erle |
haha yes matrix is so damn unpolished and slow lol |
11:02 |
lissobone |
the web client is just as nonfree as the desktop version |
11:02 |
erle |
it's a bit funny |
11:02 |
lissobone |
btw what about jami? |
11:02 |
erle |
like sometimes when i want to amuse myself i used to go to the mojang bug tracker |
11:02 |
erle |
but later, only the matrix bug trackers (for element and synapse) would provide humor |
11:03 |
lissobone |
i'll go shopping (will return soon) |
11:03 |
erle |
with bugs like ”exiting a channel with 5000 users lags the server” or so |
11:03 |
erle |
(not a real bug, but the style of one) |
11:03 |
celeron55 |
erle: what's your guess on which megacorporation will buy discord |
11:03 |
erle |
celeron55 microsoft always buys everything |
11:03 |
erle |
it will be microsoft discord before the decade is over |
11:03 |
celeron55 |
yeah but amazon bought twitch. it's not always microsoft |
11:03 |
erle |
i bet a single vegan burger on it |
11:04 |
MTDiscord |
<rollerozxa> I'm gonna make a wild guess... yahoo |
11:04 |
erle |
also microsoft has no real chat service right now, do they? |
11:04 |
erle |
i mean they killed emesen! |
11:04 |
celeron55 |
but yes, microsoft is a pretty good guess |
11:04 |
erle |
have you seen the new github slogan lol |
11:04 |
celeron55 |
they have a gaming platform with xbox and minecraft and all, and discord is targeted toward that |
11:04 |
erle |
> The AI-powered developer platform to build, scale, and deliver secure software. |
11:05 |
erle |
like yeah, when i think github, i think “AI” and “secure” LOLOL |
11:05 |
erle |
also thebiggest button above the fold is “start a free enterprise trial” |
11:06 |
celeron55 |
the github landing page when not logged in is like a frigging movie |
11:06 |
erle |
yeah lol |
11:06 |
MTDiscord |
<rollerozxa> also yeah, the discord webapp is average modern webdev slop, literally scrolling in discord channels would lag |
11:06 |
muurkha |
can you imagine if Microsoft was hosting both Minetest's source control system and Minetest's official chat system? |
11:06 |
MTDiscord |
<rollerozxa> (on my old computer) |
11:06 |
muurkha |
and decided it infringed Minecraft's copyright |
11:07 |
erle |
what i don't get about chat services … besides whatsapp and the numerous other things using xmpp or being derived from xmpp (nintendo switch, fortnite, EA origin) – everything not built on xmpp has AMAZINGLY shitty bugs |
11:07 |
erle |
like you are on a train and go through a tunnel and your message gets delivered thrice or not at all |
11:07 |
erle |
a simple monotonous counter at each end makes computers handle that |
11:07 |
muurkha |
that's kind of the fault of the XMPP protocol |
11:07 |
erle |
but still stuff like slack and discord and so on have these bugs |
11:08 |
celeron55 |
discord feels pretty reliable though. doesn't help with the fact that it's proprietary thoguh |
11:08 |
muurkha |
Slack and Discord and Matrix have the freedom to change the protocol to fix them |
11:08 |
muurkha |
IRC and XMPP don't |
11:08 |
erle |
muurkha how is it the fault of xmpp if xmpp has none of these bugs and the others have all these bugs? |
11:08 |
muurkha |
IRC has the same problem |
11:08 |
erle |
muurkha xmpp pretty much evolves, but i think you don't get the point i was making here |
11:08 |
muurkha |
you can work around it using a bouncer |
11:09 |
erle |
muurkha i was complaining that everything built on xmpp has proper stream management and everything not makes the same stupid mistakes that can be already solved even without xmpp (in theory) |
11:09 |
erle |
like i bet you know how to make a chat client with at-most-once-delivery semantics. uh, send an id for each message or so. |
11:10 |
erle |
slack for some reason does not know, as an institution |
11:10 |
erle |
i mean whatsapp is not xmpp |
11:10 |
erle |
but i think they used it as a base at some point |
11:10 |
celeron55 |
xmpp has a pretty bad public image, i'm not exactly sure why. as a protocol it's probably pretty polished by this point |
11:10 |
muurkha |
XMPP is a protocol design from 01999. it's built on the assumption that the topology of the internet changes when there's a power outage, which is rare |
11:10 |
erle |
uh what |
11:11 |
erle |
celeron55 it's used behind the scenes for all kinds of in-game gaming chats |
11:11 |
muurkha |
an XMPP server is like a POP server rather than an IMAP server |
11:11 |
erle |
muurkha wdym |
11:11 |
muurkha |
it holds your messages for you until you connect to receive them |
11:11 |
erle |
well, i recently was offline for months and i got my messages |
11:12 |
muurkha |
this is fine if you have one computer |
11:12 |
erle |
you may not be familiar with newer developments |
11:12 |
erle |
when did you last look at xmpp internals? |
11:12 |
muurkha |
years ago, indeed |
11:12 |
erle |
yeah, so the thing is, xmpp is like http, people throw extensions at it and see if it works |
11:12 |
erle |
and like http, it works generally (like many die and the surviving ones are mostly supported by everyone) |
11:13 |
muurkha |
I don't think http works generally |
11:13 |
erle |
that is the core criticism of the matrix devs basically, they want a system out of one design (but are incapable to provide it, look at the spec to see why, it contradicts itself at some points) |
11:13 |
muurkha |
most of my http links from ten years ago are dead because http makes links fragile due to its design |
11:14 |
erle |
so xmpp vs matrix is basically “provide a minimal system with extensions” vs “provide everything, but everyone must upgrade in lockstep” |
11:14 |
erle |
muurkha yeah, but new http headers generally work |
11:14 |
celeron55 |
i don't see how the protocol could help making links not fragile |
11:14 |
muurkha |
you mean they don't break existing implementations? |
11:14 |
erle |
yes |
11:15 |
erle |
for an example of my assertion, look at encryption. you can generally have interoperable chat encryption with fingerprint verification in xmpp land. you literally can not have it in matrix land, unless you are using a very small range of clients (element and what else?). |
11:15 |
muurkha |
celeron55: Freenet, for example, or IPFS |
11:15 |
erle |
IRC will never ever develop further |
11:16 |
muurkha |
I don't even know how to do fingerprint verification in Element |
11:16 |
erle |
yeah lol |
11:16 |
celeron55 |
those are p2p, no? |
11:16 |
celeron55 |
so you're arguing against http's server model |
11:16 |
erle |
celeron55 i think ipfs is content-addressed storage |
11:17 |
erle |
https server model is fragile, but easy to implement. content-addressed storage is useful for interplanetary distances and to tell megacorps to go to hell. |
11:17 |
muurkha |
celeron55: if by "P2P" you mean "the protocol is designed to help making links not fragile" yes |
11:17 |
muurkha |
nostr is another recent example |
11:17 |
erle |
muurkha https://xmpp.org/extensions/xep-0313.html |
11:17 |
erle |
> Automatic history synchronization between multiple clients. |
11:17 |
erle |
> So-called 'infinite' scrollback, whereby a client automatically fetches and displays historical messages naturally in the message log as the user scrolls back in time. |
11:18 |
erle |
that's the imap model right? |
11:18 |
celeron55 |
well p2p is probably a good way to make links not fragile, that's for sure. at least links that don't get garbage collected somehow due to lack of resources |
11:18 |
muurkha |
erle: yes, this seems like a non-XMPP protocol running over XMPP. like you can access Matrix over HTTP |
11:18 |
erle |
i think the content-addressable thing is much more foundational than the p2p thing. you can have p2p stuff that dies as well. see the 90s p2p network. |
11:20 |
erle |
muurkha well, it's an extension and clients support it. the wider assertion i am making is “most people who want a design for a chat protocol that is not decided by many stakeholders but by a single entity end up making something that privileges that single entity and also contains easy-to-prevent bugs” |
11:20 |
celeron55 |
i really don't see how you could make storage that can't die |
11:21 |
erle |
celeron55 it's important to make sure that even if stuff dies you get some thing out of it |
11:21 |
erle |
like take cdb |
11:21 |
erle |
if it dies, minetest is a bit less valuable |
11:21 |
muurkha |
celeron55: certainly it is true that storage can always die, but the problem with http-URL-based naming is that even if the storage has survived, the links die |
11:21 |
erle |
but if it downloaded mods from a content-addressable p2p network, any user still having a mod would be enough to spread it again |
11:21 |
erle |
because the name does not point to a server |
11:21 |
erle |
but to the content |
11:22 |
celeron55 |
muurkha: so you're saying, content should be addressed by hash, so that the url format does not matter? |
11:22 |
muurkha |
it wouldn't even have to be a p2p network in the usual sense; it could be a content-addressable network of five data centers |
11:22 |
muurkha |
celeron55: no, the URL format needs to contain some kind of stable identifier that doesn't break when a server somewhere goes down or gets bought or reorganizes its filesystem |
11:23 |
erle |
celeron55 there are AFAIKS layers of indirection in ipfs so that users don't have to remember hashes |
11:23 |
|
mrkubax10 joined #minetest |
11:23 |
muurkha |
a hash is one possible way to do it |
11:23 |
erle |
muurkha btw, do you enjoy PoC||GTFO and if so, do you know similar publications? it reminds me of your notes, but wackier |
11:23 |
celeron55 |
well, i don't see anything else than a hash as a working solution |
11:24 |
muurkha |
other alternatives include public key hashes, the actual content itself (like data: URLs), and names assigned by a blockchain |
11:24 |
erle |
celeron55 in the offline world, we have non-hashes. take a library book. it has an isbn, probably. |
11:24 |
erle |
the name does not point to the location, but the identity |
11:24 |
celeron55 |
a blockchain managing human-readable names for hashes sounds like something that could work |
11:25 |
muurkha |
that's namecoin I think |
11:25 |
erle |
you lost me at ”a blockchain” :P |
11:25 |
muurkha |
shut up erle |
11:25 |
muurkha |
my friend Aaron pointed out that Bitcoin solved the problem of Zooko's Triangle |
11:25 |
erle |
muurkha do you mean entirely or “shut up with the snark”? |
11:25 |
muurkha |
the latter |
11:25 |
muurkha |
http://www.aaronsw.com/weblog/squarezooko |
11:26 |
celeron55 |
of course we could have something like dns, but for content |
11:26 |
celeron55 |
but people would sometimes clean it up, breaking links |
11:26 |
celeron55 |
becaue that's what people do |
11:26 |
celeron55 |
if they get the chance to do it |
11:26 |
celeron55 |
+s |
11:26 |
erle |
celeron55 you might like this list https://en.wikipedia.org/wiki/InterPlanetary_File_System#Applications |
11:27 |
muurkha |
celeron55: you could also have people vote on what they think a name should refer to |
11:27 |
muurkha |
the people you poll about it might depend on who you think is trustworthy |
11:28 |
celeron55 |
well what is the killer app for ipfs that will cause ipfs to overthrow http in the long term? |
11:28 |
muurkha |
so you might have different people come to different conclusions at the same time, which might be okay |
11:28 |
muurkha |
I don't think there is one |
11:28 |
muurkha |
I think HTTP will continue to be dominant, and we will continue to see the dream of global hypertext displaced by the slow fire that is the Web |
11:29 |
muurkha |
like a Library of Alexandria going up in flames every day, for the rest of your life |
11:29 |
celeron55 |
i can see ipfs becoming useful when people start living on mars. but that'll take at least a century |
11:29 |
erle |
the internet is self-destructing paper, assange said that i think |
11:29 |
erle |
you hope the monks scribble faster than stuff burns up |
11:30 |
erle |
celeron55 it can be useful much earlier if you have no good uplink. antarctica. war. |
11:30 |
muurkha |
yes but what they're scribbling is MAKE MONEY FAST |
11:30 |
erle |
muurkha depressing |
11:30 |
muurkha |
IPFS is already apparently useful, Library Genesis is using it |
11:30 |
erle |
imageboards are just exaggerating that process to produce memes |
11:31 |
erle |
stuff scrolls away when it reaches page 10 (or 20, or 30 …) |
11:31 |
erle |
and only if it gets reposted, it survives |
11:31 |
muurkha |
imageboards mostly aren't people trying to cheat each other tho |
11:31 |
erle |
oh, people on imageboards lie, cheat & steal |
11:31 |
erle |
but it's not about capitalism mostly |
11:31 |
erle |
https://web.archive.org/web/20110521214956/https://squaretriangle.jottit.com/faq |
11:32 |
muurkha |
Dan Kaminsky responded: https://dankaminsky.com/2011/01/13/spelunk-tri/ |
11:32 |
muurkha |
I'm pleased to see that this jottit page hasn't been lost |
11:32 |
erle |
> What if you've lost your key or it gets stolen? Be more careful. What if you lose your PGP key or it gets stolen? Not much you can do about it. |
11:32 |
muurkha |
the Internet Archive won't last much longer |
11:32 |
erle |
muurkha i have two scripts i use a lot, wayback and wayback_save |
11:32 |
erle |
what's the deal with the IA |
11:32 |
erle |
is it getting dismantled? |
11:32 |
muurkha |
maybe five, ten, twenty years |
11:32 |
celeron55 |
it is a fact that maintaining some information being available on the internet requires hard work and money. i'm not sure if universally lessening the work and money requirement would be beneficial, but making it so that real people could decide who gets to host stuff with less work and less money could be useful |
11:32 |
muurkha |
governments burn libraries, that's what the deal is |
11:33 |
erle |
indeed |
11:33 |
erle |
they do |
11:33 |
erle |
in germany, many people know about the nazi book burnings. but few people know what was burned exactly. meaning the nazis won, in a sense. |
11:33 |
muurkha |
celeron55: yeah, the problem is that if real people host the stuff, it doesn't matter if the links to it are broken |
11:34 |
muurkha |
so that's the sense in which I think http doesn't work generally |
11:35 |
erle |
for example, i think the nazis burned the archive of a german institute for sex reserach (which contained works about gay/trans/inter topics) :( |
11:36 |
erle |
research |
11:36 |
celeron55 |
given that this is #minetest, the question here could be, should minetest be more content addressable |
11:36 |
erle |
https://en.wikipedia.org/wiki/Institut_f%C3%BCr_Sexualwissenschaft |
11:36 |
muurkha |
it would be pretty great to have Minetest identify mods with ssh keys |
11:36 |
muurkha |
instead of with HTTP URLs |
11:37 |
erle |
celeron55 i would definitely like if mods and games were content-addressable. more than once i had the problem that either something was not on cdb anymore or the version on cdb broke some dependency, because the name stayed the same, but the payload changed.j |
11:37 |
erle |
that latter thing is a hard problem |
11:37 |
erle |
and i doubt people should be encouraged to depend on hashes of mods |
11:37 |
muurkha |
an actual content-hash for dependency pinning would be great |
11:37 |
erle |
i doubt it |
11:38 |
muurkha |
but its ergonomics would require significant work to be usable |
11:38 |
erle |
yeah, it's another ”do not put crayons up your nose” scenario |
11:38 |
erle |
if you do it without the ergonomics stuff, it will just reduce compat |
11:38 |
erle |
but the first thing, stuff being unavailable … |
11:38 |
celeron55 |
people will want to work with mods in their regular file browser though, so naming mods as hashes there would be really bad ux |
11:39 |
erle |
obviously |
11:39 |
celeron55 |
however, things like nixos get away with such things |
11:39 |
celeron55 |
it's a pita but with benefits |
11:39 |
muurkha |
yeah, in general any kind of hash-based naming system has some kind of human-readable indirection layer on top of it |
11:39 |
erle |
i think it would be nice if you could install several versions of a mod too. |
11:40 |
muurkha |
with ssh the public keys of the servers I trust are saved in .ssh/known_hosts along with their (hashed) hostnames |
11:40 |
celeron55 |
minetest actually does content based addressing in once place: the client-side media cache |
11:40 |
celeron55 |
it's a very natural use case |
11:40 |
erle |
indeed it is |
11:40 |
muurkha |
I never type the public keys and almost never read them; I just type the hostnames, and the ssh client looks up the corresponding key for me |
11:40 |
erle |
given many servers share texture packs, but not necessarily filenames (see the mcl “rename every texture” thing) |
11:41 |
erle |
i wonder, is the easy scenario a ”make symlinks to hashes” thing? |
11:41 |
muurkha |
yeah |
11:41 |
erle |
so that users can then – if they so desire – modify which hash a name points to |
11:41 |
muurkha |
the question then is just how you do the initial "introduction" |
11:42 |
celeron55 |
a literal symlink on the filesystem might not be portable enough, but conceptually it's the exact thing needed |
11:43 |
celeron55 |
of course it could be more dynamic than that |
11:43 |
celeron55 |
but it's the minimum |
11:43 |
muurkha |
yeah |
11:44 |
muurkha |
ideally you have a "dependencies.lock" file in your mod which specifies which mods it depends on, built automatically from a "dependencies" file |
11:44 |
muurkha |
each line of dependencies.lock might list a mod name, a public key hash, a version number, and a content hash |
11:44 |
celeron55 |
it's funny to think of the analog as a library where the books are not alphabetically sorted by the author, title or any kind of metadata, but instead by the content of the book, starting from the first sentence |
11:44 |
muurkha |
maybe one or more URLs as well |
11:45 |
muurkha |
if you use a representation of the book in which the relevant content begins with the author's name, then the title, then the colophon and table of contents, it kind of comes to the same thing |
11:46 |
muurkha |
at least in the fiction section |
11:46 |
muurkha |
the only difference would be that the different editions of the same title by the same author would have their order determined by the first typographical error |
11:46 |
erle |
okay, this is where i can do the clickbait thing |
11:47 |
muurkha |
hashes are a bit faster to compare, as in the "HAMT", hash-array mapped trie, so pervasively used in Clojure |
11:47 |
erle |
MAKING MODS DEPEND ON HASHES IS BAD FOR MULTIPLE IMPLEMENTATIONS OF THE SAME THING |
11:47 |
erle |
thanks |
11:47 |
muurkha |
well, you can of course change which version you're using after you install the mod |
11:47 |
erle |
like right now, you can switch out tga_encoder in mineclone 2 for tga_encoder from cdb |
11:48 |
muurkha |
but it's helpful to know which version the author was testing with |
11:48 |
erle |
which is useful, because i am maintainer of the latter and haven't touched the former in a while (since i improved it for mineclone 2) |
11:49 |
celeron55 |
that was quite the theatrical use of caps lock |
11:49 |
erle |
also you have mineclone2 and mineclonia and a mod depending on mineclone2 stuff is probably going to work in mineclonia (regardless of which one) due to the naming |
11:49 |
erle |
celeron55, well i hope it got everyones attention |
11:49 |
muurkha |
yeah, I mean, as with Nix, you want to indirect those connections through some layer of human-readable names. but the names can be private to a particular mod |
11:50 |
erle |
i think pinnings should be done by the user, not the developer. developers suck at this. |
11:50 |
erle |
evidence: mcl2 breaking every texture pack that relies on stable texture names. |
11:50 |
muurkha |
but I still think it's pretty useful to be able to distinguish the dependency version the mod's author tested with, some other version by the same author, or some other version by a different author |
11:50 |
erle |
that is true |
11:51 |
erle |
it is useful, but you risk ending up in npm land |
11:51 |
muurkha |
it'd be nice to have some kind of translation layer for the mcl2 problem |
11:51 |
muurkha |
in computer science we can solve any problem by adding another level of indirection |
11:51 |
erle |
i am convinced that the mcl2 problem can not be fixed with computers |
11:51 |
celeron55 |
there should be an alias listing file for texture packs |
11:51 |
muurkha |
except the problem of too many levels of indirection |
11:51 |
erle |
it is a community problem |
11:52 |
erle |
people from inside the mcl2 community wanted the names to change. people from outside the community did not want it to change. texture pack makers are generally not contributors to mcl2. |
11:52 |
erle |
neither are makers of mods relying on that (they have a remedy though! they can steal the texture names from the existing nodes) |
11:52 |
celeron55 |
i like the fact that MT's extremely plain approach to names and dependencies forces people to think further than their own nose |
11:53 |
erle |
i like it too, but it does not help when someone *deliberately* breaks it |
11:53 |
erle |
as i said, i think it's a community problem |
11:54 |
erle |
that's why i mention the “stakeholder” thing. people who have skin in the game should decide stuff too |
11:54 |
celeron55 |
the computer world has a long history of such a plain approach though. it's pretty much built into the way the C language does linking, both static and dynamic, for example |
11:54 |
celeron55 |
so it is manageable |
11:54 |
celeron55 |
provably so |
11:57 |
lissobone |
some say if you drink too much soymilk you'll become a soyboy |
11:57 |
lissobone |
but why can't one become a femboy this way? |
11:57 |
muurkha |
not enough phytoestrogens |
11:57 |
muurkha |
there are exceptional cases like Emacs and Linux, but most C programs are only a small minority of the system |
11:58 |
muurkha |
and written by a small, well-organized group |
11:58 |
erle |
if i'd start somewhere about compat i'd probably start on a community level with “breaking numerous mods that depend on your stuff is a reason to not get a package approval for your next release” |
11:58 |
erle |
i say this not because i'm an evil controlling person, but because usually there are multiple ways to avoid breaking dependents, the devs just don't care |
11:59 |
erle |
(i did suggest multiple ways to avoid the mcl2 breakage for example and i think you can come up with a bunch too) |
11:59 |
ROllerozxa |
lissobone: dunno let's try |
12:00 |
erle |
lissobone, join ##trans and ask for ingredients to femboy juice ig |
12:00 |
muurkha |
I don't actually know what happens if a new version of glibc has a new function with a shortish name like strlcpy |
12:00 |
muurkha |
and you link a user program with that glibc with a function that already has that name, but with different semantics |
12:00 |
lissobone |
femboy juice |
12:01 |
muurkha |
and glibc internally has calls to that function |
12:01 |
lissobone |
no, i know that soy milk doesn't really feminize (it's very healthy, in fact!) |
12:01 |
muurkha |
forcibly if necessary |
12:01 |
muurkha |
on Linux I think they get linked to the implementation in the main executable, which is why intra-.so function calls are indirected through the .so's PLT? |
12:02 |
erle |
lissobone also for procurement some say that https://diyhrt.cafe is a thing |
12:02 |
muurkha |
but I don't actually know this |
12:02 |
erle |
muurkha gclibc has a LOT of magic to enable stuff to not break |
12:02 |
erle |
i suggest to look into it some time, i don't understand most of it |
12:02 |
muurkha |
things like libjpeg generally just rely on function name prefixes |
12:03 |
celeron55 |
yeah you generally namespace your stuff even though it's not technically required. that happens in the MT ecosystem also |
12:03 |
erle |
my favourite way to handle such stuff as a coder is: if the function meaningfully changes (e.g. you have to update a test case so it passes again) then use a new function name |
12:04 |
erle |
or if it becomes async but was sync before (never forgive!) |
12:04 |
erle |
the new-function-name thing also helps with refactoring your own code |
12:04 |
erle |
i.e. if you have no one else using it |
12:04 |
erle |
you pretty much know where you have updated the references |
12:04 |
muurkha |
like, if you write a function in your own program that happens to be called jsimd_h2v1_downsample_avx2 or jpeg_write_scanlines, you will probably blame yourself |
12:04 |
muurkha |
when your program breaks libjpeg |
12:04 |
celeron55 |
naming is very powerful. it can easily replace versioning in most cases |
12:05 |
celeron55 |
(versioning can't replace naming) |
12:05 |
muurkha |
but then the Debian maintainer will rename your function so your program works again |
12:05 |
erle |
i'd say versioning is a red herring often |
12:05 |
erle |
muurkha depends on the maintainer. i tried to send patches to debian for some minetest stuff that was accidentally broken to unbreak it and the maintainer did not care. |
12:06 |
erle |
too much work for some maintainers |
12:06 |
muurkha |
yeah, if the Debian maintainer stops maintaining it your program will get removed from Debian |
12:06 |
muurkha |
that happened to xpdf recently |
12:06 |
muurkha |
(before it got back in) |
12:06 |
erle |
yeah, but for many programs the maintainer does not have the time or competence to maintain a huge patch directory |
12:06 |
muurkha |
but my point is that users aren't helpless in the face of the issue |
12:06 |
erle |
so they can linger in “i package upstream as well as i can manage” purgatory |
12:07 |
erle |
which is fine, for the most part |
12:07 |
erle |
but it will not get older versions fixed if upstream has something new with a bugfix |
12:07 |
celeron55 |
the simpler the system is, the more users will be able to fix problems themselves |
12:08 |
erle |
“solution fits in head” criterion should be applied to more stuff |
12:08 |
celeron55 |
and, the fact is, there will always be problems. you want problems be fixable |
12:08 |
celeron55 |
+to |
12:09 |
erle |
this is kinda why i hate ”everything must be upgraded in lockstep” systems |
12:09 |
erle |
i don't have the energy to upgrade everything |
12:10 |
celeron55 |
well, the developer probably doesn't have the energy to maintain cross-version compatibility |
12:11 |
erle |
irrlichtmt is a good example for me actually. any good irrlicht feature i find can not be used except if i patch it back again into irrlichtmt. and that is too much work. thus, no stencil shadowing on newer minetest. |
12:11 |
celeron55 |
of course if they used the mentioned simple tactics like adding a function with a new name, it could be easier |
12:11 |
erle |
i haven't tried the ”make an irrlichtmt shim” thing though, i wonder if it is possible |
12:13 |
erle |
celeron55 pretty much every time i suggested the renaming solution people rejected it on, among other reasons, aesthetic grounds. i did, for example, suggest to do it for functions that had their signature changed a lot – to produce function lookup errors instead of more subtle breakage. |
12:13 |
erle |
celeron55 i also suggested for games to rename mods that change their internals a lot, to *obviously* break dependents if the old mod is not there, instead of *subtly* breaking it. |
12:13 |
celeron55 |
the code aesthetics thing is kind of silly. people want their API to look shiny. in reality i think a more engineered approach is better. engineering doesn't need to look good |
12:14 |
erle |
celeron55 the fundamental problem for many people is that at some point they end up with a foo_4() instead of a foo() all over their codebase |
12:14 |
erle |
and there is no foo_1() or foo_2() or foo_3() anymore |
12:14 |
erle |
people *really* seem to hate that |
12:14 |
erle |
as if internal function names are the main thing programs are judged for ;) |
12:14 |
celeron55 |
for an engineered approach to APIs one can simply look at any C library that's a decade or two old |
12:15 |
erle |
well, no technique is effective if it is not used |
12:15 |
erle |
i like how elixir (the erlang VM thingy) does it |
12:15 |
erle |
in elixir, if you change the arity of foo() it is simply a different function |
12:15 |
MTDiscord |
<maintainer_> lissobone Here? |
12:15 |
erle |
add some arguments? sorry, your old code does not find it |
12:16 |
erle |
this is good |
12:16 |
erle |
because then you can look for all foo/2 (arity of 2) and update the code to use foo/3 or so |
12:16 |
erle |
or keep the foo/2 version around forever if you so desire |
12:17 |
erle |
this prevents an entire category of naming confusion errors |
12:17 |
celeron55 |
it really is not a problem to have foo_4() to be the function name. at that point you can just alias it to foo() in the application code. again, this is engineering thinking |
12:18 |
erle |
well, i do actually doubt that any of the people rejecting that solution on purely aesthetic grounds have any clue about software engineering. case in point: there exist problems i have in hobby projects getting solutions approved that “look ugly” but work fine – and i do not have had these problems, ever, at work. |
12:18 |
erle |
i suspect it's simply not fun for most people to apply rigor to writing computer programs |
12:19 |
celeron55 |
an engineer thinks purely as "what is the overall most efficient path to reach all of the end goals" |
12:20 |
erle |
well you can see in minetest how that works |
12:20 |
erle |
^_^ |
12:21 |
celeron55 |
MT's problem is that the end goals tend to be moving targets. it's such an iterative project |
12:21 |
muurkha |
Microsoft likes to add "Ex" to the end of function names |
12:22 |
muurkha |
CreateFile, CreateFileEx |
12:22 |
celeron55 |
however we do have the yearly updating roadmap now and people are mostly on the same page on many things, so it helps |
12:22 |
muurkha |
a problem with foo_4 is that it's pretty hard to guess that function name |
12:22 |
muurkha |
but there are usually lots of options for renaming |
12:22 |
muurkha |
mul_denom -> mul_denominator |
12:23 |
muurkha |
gcoeff -> gcoef |
12:23 |
celeron55 |
you're not going to guess function names in any bigger api anyway |
12:23 |
muurkha |
cornacchia2 -> corn_method |
12:23 |
celeron55 |
i don't like those "typo fix" looking new functions that actually behave differently |
12:23 |
muurkha |
it's pretty common to be able to guess function names in things like Emacs and Mathematica |
12:24 |
muurkha |
it's a lot less of an issue in C++ |
12:24 |
muurkha |
because usually you're guessing class names instead, and there are a lot fewer of those |
12:25 |
celeron55 |
C++ brings a lot more structure to the whole via namespaces, classes, operators and the fact that you can have the same function name with different parameters to have a different implementation |
12:25 |
celeron55 |
it's a completely different world |
12:26 |
celeron55 |
however essentially all of those actually are just a structured way of naming things |
12:26 |
celeron55 |
it's all just a name |
12:26 |
erle |
celeron55 i think the thing about the roadmap is again a stakeholder thing. if you would let server owners and mod developers and developers of non-mainstream minetest clients give an equal say, the roadmap would look much different. |
12:26 |
erle |
celeron55, it would, for example, probably contain ”make the map bigger” (the one item coredevs hate and the playerbase loves) |
12:26 |
celeron55 |
erle: everyone can take part in the discussions |
12:27 |
celeron55 |
erle: someone needs to be responsible though, and making server owners and mod developers responsible doesn't feel right to me |
12:27 |
erle |
celeron55 not everyone is equal though |
12:27 |
erle |
celeron55 i still think it would be a very good idea to take some lessons about APIs and CSMs from cheat clients. not to build in cheat features, but to figure out *why* they arrived at their designs. |
12:27 |
erle |
have you ever tried dragonfire? |
12:28 |
celeron55 |
the one who's going to do the work is going to be the engine developers. in a volunteer project it is important that they have the most say |
12:28 |
celeron55 |
because if you don't, soon you won't have any devs anymore |
12:29 |
erle |
guess i'll have to volunteer some time. |
12:31 |
erle |
celeron55, game-theoretically, i totally see your point. the only things i hate is the thing where devs clearly don't have a clue. |
12:32 |
erle |
for example, if i am not mistaken irrlichtmt contains a race condition that may occur (maybe only on windows?) when a computer does not have constant TSC and a thread switches at just the right (a.k.a. wrong) time. |
12:32 |
erle |
it is clear that a coredev with a computer that has constant TSC will not be able to reproduce that, ever. |
12:33 |
erle |
i mean maybe it was patched |
12:33 |
erle |
but it is obvious to me that someone not having a computer where this bug occurs and no interest in the matter may err here. (like with any topic, actually) |
12:34 |
erle |
also, it is very hard to convince people of such an error on purely theoretical grounds. |
12:35 |
erle |
regardless of how capable they are, the common dev will dismiss it |
12:35 |
erle |
well, maybe not ”regardless”, but you-know-what-i-mean |
12:35 |
erle |
for reference https://en.wikipedia.org/wiki/Time_Stamp_Counter |
12:37 |
erle |
also maybe i misremember and every detail is wrong, who knows. but there is one patch that upstream irrlicht did not want and that patch introduces the bug. |
12:38 |
erle |
but upstream irrlicht is on a level of “let me boot my windows 98 computer to see if it still works” |
12:38 |
erle |
clearly that's an entirely different QA standard ;) |
12:41 |
erle |
luatic do you have any idea how i can convince imagemagick or any other program to produce PNGs with no prefilter? i don't want to have to start up minetest to get the PNGs for my texture transfer size performance tests. |
12:41 |
erle |
and i don't want to do it myself hehe |
13:04 |
celeron55 |
i would expect that to be not possible |
13:04 |
|
lissobone left #minetest |
13:08 |
erle |
celeron55, what did you refer to with the ”not possible”? |
13:10 |
celeron55 |
to get imagemagick to do that |
13:10 |
celeron55 |
i'd probably just extract the parts from MT that do it and make a small program out of it |
13:12 |
MTDiscord |
<luatic> ^ this (you may as well extract them from modlib), it's only a couple lines of code which pretty much only depends on zlib |
13:12 |
erle |
if i can't do better |
13:12 |
erle |
luatic does it run standalone in lua5.1? |
13:13 |
MTDiscord |
<luatic> erle: you'd have to replace minetest.compress with a "pure lua" zlib from luarocks |
13:13 |
MTDiscord |
<luatic> see https://github.com/appgurueu/modlib/blob/5f0dea2780b88d44d85b9704e0e81348c459404d/minetest/png.lua#L406-L483 |
14:05 |
|
appguru joined #minetest |
14:21 |
sfan5 |
as I can see lots of productive discussion (not work) is happening again |
14:28 |
celeron55 |
yeah please don't read any of it |
14:38 |
rubenwardy |
[13:26] <erle> celeron55, it would, for example, probably contain ”make the map bigger” (the one item coredevs hate and the playerbase loves) |
14:38 |
rubenwardy |
Yet this wasn't mentioned at all in the roadmap brainstorm |
14:47 |
|
jaca122 joined #minetest |
14:50 |
|
mrkubax10 joined #minetest |
14:56 |
hare_hare_yukai |
what the fuck i was doing assignment instead of comparison in if statements |
14:56 |
hare_hare_yukai |
bash moment |
14:57 |
MTDiscord |
<luatic> imagine not using a linter that would catch this for you |
14:58 |
hare_hare_yukai |
i code on my toilet paper |
15:04 |
erle |
rubenwardy i am pretty sure the people suggesting that thing have given up on it, given how many times it has been shot down |
15:04 |
erle |
rubenwardy if i would be asked to bet money, i'd bet money against it being done within 3 years |
15:04 |
erle |
oh wait |
15:04 |
erle |
no, i wouldn't because betting money is bad |
15:05 |
erle |
as you can trivially change the outcome ^_^ |
15:06 |
erle |
rubenwardy the problem is also that it isn't really easy to do in a fork. there are so many little things that break outside of ±32767 coords |
15:07 |
erle |
rubenwardy what is the most civilized way to get a copy of cdb in your opinion? (to do semgrep experiments, i.e. i only need one copy) |
15:08 |
celeron55 |
it's generally a bad idea to permanently give up on something in this environment where people come and go and priorities and resources shift over time. it's a good idea to give up on something for a while, but not in the long term |
15:08 |
erle |
basically i want to find out which APIs are mis-used (and also find if my ideas about finding dupes and crashes at scale are correct) |
15:08 |
hare_hare_yukai |
erle: ask nicely? |
15:08 |
hare_hare_yukai |
asking* |
15:08 |
erle |
celeron55 i am not saying it is a good idea to give up on it. it is just what i have noticed. |
15:09 |
erle |
hare_hare_yukai i am asking rubenwardy, who is AFAIK the maintainer (hoster too?) of cdb. i do not know who else i should ask. |
15:09 |
erle |
i am not just going to do wget --mirror because that's probably not nice |
15:10 |
erle |
also rubenwardy provided a cdb dump some time ago i think. there might be one laying around. |
15:12 |
erle |
luatic is there something like “optionally typed lua”, i.e. similar to python type annotations? |
15:13 |
celeron55 |
there are probably multiple ones |
15:14 |
hare_hare_yukai |
dont know how wget --mirror would work anyways |
15:14 |
erle |
celeron55 yeah but what is the best idea? |
15:14 |
erle |
i am not in a hurry |
15:18 |
rubenwardy |
Expanding world limits is exactly the sort of thing that could be a road map goal |
15:21 |
erle |
i agree – but i think the person that needs to be convinced of that is the one person who submitted 3 giant PRs in that direction and was being told “not now” |
15:21 |
erle |
not saying the PRs were particularly good, i have too little expertise |
15:22 |
erle |
maybe i can write them and try to motivate them |
15:22 |
erle |
so about cdb … what “download cdb” method annoys you the least? |
15:27 |
hare_hare_yukai |
just admin ur too lazy to spam his api xd |
15:39 |
|
definitelya joined #minetest |
15:47 |
|
fluxionary joined #minetest |
15:49 |
|
rod_tout_court joined #minetest |
15:50 |
erle |
okay, so regarding productive work https://content.minetest.net/packages/erlehmann/unicode_text/ |
15:51 |
erle |
ROllerozxa if you want to add a screenshot to it, tell me what text i should render ;) |
16:30 |
erle |
uh my README.rst seems to trip up contentdb bad |
16:30 |
erle |
> Instantiation <ins>+</ins><ins>+</ins>+++ |
16:31 |
erle |
> Font Properties <ins>+</ins><ins>+</ins><ins>+</ins> |
16:31 |
erle |
hot parsers in your area |
16:44 |
rubenwardy |
ContentDB doesn't support rst, only markdown |
16:46 |
erle |
rubenwardy then the issue is importing a file named README.rst i guess ;) |
16:49 |
MinetestBot |
[git] Desour -> minetest/minetest: Fix -Wunused-but-set-variable warnings 2ad4c9e https://github.com/minetest/minetest/commit/2ad4c9e0cea19cd54a59cc66c8010cce78eacae7 (2023-09-09T16:48:56Z) |
16:49 |
MinetestBot |
[git] Desour -> minetest/minetest: Fix -Winconsistent-missing-override warnings 7897450 https://github.com/minetest/minetest/commit/7897450b273905fccaf326b650d1106c39cd4f07 (2023-09-09T16:48:56Z) |
16:49 |
MinetestBot |
[git] Desour -> minetest/minetest: Fix -Wmissing-braces warnings in mapblock_mesh.cpp 010d08f https://github.com/minetest/minetest/commit/010d08f6a44005d9293ef25ad9d4b55b2eab4570 (2023-09-09T16:48:56Z) |
16:51 |
MinetestBot |
[git] Zughy -> minetest/minetest: Add settings button icon 798b9ea https://github.com/minetest/minetest/commit/798b9eae4ad7a00aad9103315849022f067d91bc (2023-09-09T16:49:33Z) |
16:51 |
MinetestBot |
[git] rubenwardy -> minetest/minetest: Replace settings tab with button 48ab183 https://github.com/minetest/minetest/commit/48ab1835dada1e860ae6c973e458d022d07a57f2 (2023-09-09T16:49:33Z) |
17:09 |
|
ball joined #minetest |
17:11 |
|
iamweasel joined #minetest |
17:47 |
|
rod_tout_court1 joined #minetest |
17:51 |
erle |
rubenwardy thank you for your review work. it definitely helps me if reviewers have high standards! |
17:52 |
|
mrkubax10 joined #minetest |
17:53 |
erle |
luatic if you look closely at this thing, i think you can see that my kerning is pretty ghetto. any better idea? https://content.minetest.net/uploads/3262624b77.png |
18:17 |
MTDiscord |
<luatic> erle: nein |
18:18 |
rubenwardy |
That doesn't crop very well https://content.minetest.net/thumbnails/2/3262624b77.png |
18:20 |
erle |
rubenwardy i see. any good idea for a sample text that does? some unicode haiku maybe? |
18:20 |
rubenwardy |
It's more ratio and details |
18:22 |
erle |
is this a blocking issue? |
18:22 |
erle |
hmm, maybe i can add some more space |
18:26 |
erle |
rubenwardy, i just added some whitespace (well, blackspace really) to the bottom, that okay for you? https://content.minetest.net/thumbnails/2/bb022d4cdd.png |
18:28 |
MTDiscord |
<luatic> could fill that blackspace with more letters |
18:29 |
erle |
luatic come on give me something |
18:29 |
erle |
surely you have an idea |
18:29 |
erle |
in before zalgo text lol |
18:30 |
erle |
zalgo text will actually not work with unicode_text, because i render all combining characters in the line where they occur |
18:30 |
erle |
so no breaking out of a line using 999 combining characters that are not in sorted order (so your rendering hangs itself) |
18:30 |
erle |
i researched it and some text rendering approaches are really stupid so they have to limit the number of combining characters they render to like 3 or so |
18:31 |
erle |
i believe some terminals do that |
18:31 |
erle |
to clarify: with ”really stupid” i mean that you can supply some kind of adversarial example text that makes them glitch out (worse than zalgo) |
18:33 |
|
mrkubax10 joined #minetest |
18:37 |
|
mrkubax10 joined #minetest |
18:38 |
|
e1z0 joined #minetest |
19:16 |
|
mrkubax10 joined #minetest |
19:17 |
|
Trifton joined #minetest |
19:29 |
|
v-rob joined #minetest |
20:17 |
|
illwieckz joined #minetest |
20:25 |
|
mrkubax10 joined #minetest |
20:25 |
|
liceDibrarian joined #minetest |
21:14 |
MTDiscord |
<luatic> erle: you can't parse html with regex zalgo text |
21:24 |
|
rod_tout_court1 joined #minetest |
21:28 |
hare_hare_yukai |
amogus |
21:36 |
erle |
luatic lol |
22:33 |
|
panwolfram joined #minetest |
22:41 |
hare_hare_yukai |
if i call a function from another mod in a globalstep it would be better to localize it right? |
22:42 |
|
liceDibrarian joined #minetest |
22:44 |
erle |
hare_hare_yukai, define localize |
22:44 |
erle |
hare_hare_yukai, define better |
22:44 |
erle |
hare_hare_yukai, define lua profiler |
22:44 |
hare_hare_yukai |
like in modb |
22:44 |
hare_hare_yukai |
moda.thisfunc = thisfunc |
22:44 |
hare_hare_yukai |
-- then use thisfunc |
22:45 |
erle |
what is your reasoning for better |
22:45 |
hare_hare_yukai |
-- in a globalstep |
22:46 |
hare_hare_yukai |
i just saw it being done in some source code |
22:47 |
erle |
don't cargo cult |
22:47 |
erle |
try to understand |
22:47 |
hare_hare_yukai |
if you tell me wont i understand? |
22:48 |
erle |
i am not sure if i can tell you something qualified here |
22:48 |
erle |
ask luatic or someone else who knows more about lua |
22:49 |
erle |
or, try to work out yourself the performance characteristics |
22:49 |
erle |
by using a lua profiler |
22:49 |
erle |
or a timer function and a ghetto loop |
22:49 |
erle |
but never ever cargo-cult stuff |
22:49 |
erle |
there is so much crap in other mods |
22:49 |
hare_hare_yukai |
how do i use a lua profiler |
22:50 |
hare_hare_yukai |
the code is in a game |
22:50 |
hare_hare_yukai |
for minetest |
22:50 |
erle |
now that is a question i can not give you a good answer to, but i know it is possible to profile this stuff |
22:50 |
erle |
surely someone else knows it. maybe it is on the forums |
23:48 |
ball |
Mornin' |