Time |
Nick |
Message |
00:00 |
Gustavo6046 |
I think MCl5 doesn't have an IRC bridge, soo https://git.minetest.land/MineClone5/MineClone5/issues/213 |
00:03 |
erlehmann |
umbrella issues are a bad idea from a project management POV, but what do i know |
00:03 |
erlehmann |
Gustavo6046 can you make hopperdupe more reliable please? |
00:04 |
Gustavo6046 |
hopperdupe? |
00:04 |
erlehmann |
its so much work |
00:05 |
erlehmann |
yeah, when the hopper dupes your items randomly |
00:05 |
Gustavo6046 |
erlehmann, yeah it's generally better to have each change as its own thread or issue, but they're a cluster of small changes that probably don't need a lot of individual attention so I figured this was fine |
00:05 |
erlehmann |
i think you are downplaying your contributions |
00:05 |
Gustavo6046 |
larger changes will have their own issues and PRs |
00:05 |
Gustavo6046 |
plus, it's an excuse to use markdown tables :D |
00:05 |
erlehmann |
but ok |
00:05 |
Gustavo6046 |
as for hopper dupes, I'm unaware of those |
00:05 |
erlehmann |
lol markdown |
00:05 |
erlehmann |
oh |
00:05 |
erlehmann |
well |
00:05 |
Gustavo6046 |
i mean tables in general |
00:06 |
erlehmann |
ok so about hopperdupe, just get a stack of hoppers |
00:06 |
erlehmann |
build a tower |
00:06 |
erlehmann |
then dig them again |
00:06 |
erlehmann |
then do it again and again |
00:06 |
erlehmann |
at some point you will have 1 hopper more than before |
00:06 |
Gustavo6046 |
o.o |
00:06 |
erlehmann |
implying a dupe |
00:06 |
Gustavo6046 |
that is bad |
00:06 |
erlehmann |
yes, it should be triggered more reliably |
00:07 |
Gustavo6046 |
no! |
00:07 |
Gustavo6046 |
I think it's a hopper node sucks in a hopper item |
00:07 |
Gustavo6046 |
but one that is already being picked up |
00:07 |
erlehmann |
oh you are fast lol |
00:07 |
erlehmann |
yes that's it |
00:07 |
erlehmann |
i have to do precise movements |
00:07 |
Gustavo6046 |
is there a grace time between an item being picked up (and counting to inventory) and despawning in which a hopper can suck it in? |
00:07 |
erlehmann |
to get the dupe |
00:07 |
erlehmann |
but the towering thing works fine |
00:07 |
Gustavo6046 |
I will make it reliable... reliably impossible :D |
00:07 |
erlehmann |
but people will hate you for it! |
00:08 |
erlehmann |
:P |
00:08 |
Gustavo6046 |
I take it! xD |
00:08 |
erlehmann |
ok well i give you one more info |
00:08 |
Gustavo6046 |
thanks erleh for shining that insight on me! |
00:08 |
Gustavo6046 |
oh |
00:08 |
erlehmann |
someone broke it in mineclone5 |
00:08 |
erlehmann |
or mineclone2 |
00:08 |
erlehmann |
but hopperdupe is not in mcla i think |
00:08 |
Gustavo6046 |
hmm |
00:08 |
erlehmann |
that should narrow it down |
00:08 |
Gustavo6046 |
you want me to merge them to keep the codebases "in sync"? |
00:08 |
Gustavo6046 |
I was thinking to figure a way to detect if any given item entity was "taken" |
00:09 |
erlehmann |
no, i want you to figure out how to dupe more stuff lol |
00:09 |
erlehmann |
dw i'll make a really mean antidupe too |
00:09 |
erlehmann |
i figured out that anvilduped nodes have an easy to detect corrupted value in their meta |
00:10 |
Gustavo6046 |
ah ha! |
00:10 |
Gustavo6046 |
item_entity.collected |
00:10 |
Gustavo6046 |
nvm |
00:10 |
Gustavo6046 |
that's for orbs |
00:10 |
erlehmann |
please, if you ask who has told you the dupe |
00:10 |
erlehmann |
claim it was the player ASKI |
00:11 |
erlehmann |
i have a grudge |
00:11 |
erlehmann |
he asked me how to cheat |
00:11 |
erlehmann |
:P |
00:11 |
erlehmann |
and was like “if you do not tell me how to cheat, i shoot your friend with arrows of harming” |
00:11 |
erlehmann |
ok so |
00:11 |
Gustavo6046 |
huh |
00:11 |
|
Verticen joined #minetest |
00:11 |
erlehmann |
it's a little kid |
00:11 |
Gustavo6046 |
_removed is set to true in the collection subroutien in ENTITIES/mcl_item_entity/init.lua |
00:11 |
erlehmann |
my revenge was, i mentioned it earlier |
00:12 |
erlehmann |
making holes in the bedrock roof on kay27 server |
00:12 |
Gustavo6046 |
lol |
00:12 |
erlehmann |
and putting signs there implying ASKI had made the holes |
00:12 |
Gustavo6046 |
ahaha |
00:12 |
Gustavo6046 |
nice |
00:12 |
erlehmann |
oh and one hole has a waterfall |
00:12 |
Gustavo6046 |
that's a way to exact your revenge |
00:12 |
erlehmann |
yes i hope ppl go on ASKIs nerve about how to break bedrock |
00:13 |
erlehmann |
i might actually have broken the most amount of bedrock among the mcl* game servers lol |
00:13 |
erlehmann |
not sure |
00:13 |
|
AliasAlreadyTake joined #minetest |
00:13 |
erlehmann |
if you find a big hole in the roof on kays mcl5 server at zerozero, say hi from me ^^ |
00:13 |
erlehmann |
after i made it, i actually patched it up again |
00:13 |
erlehmann |
and hid a lot of tnt there |
00:14 |
erlehmann |
and put a button somewhere |
00:14 |
erlehmann |
i stood nearby when someone wondered what the button did |
00:14 |
erlehmann |
it blew up the roof of course! |
00:14 |
Pexin |
this is why keep all your items in backpacks |
00:15 |
Gustavo6046 |
hehehe |
00:16 |
erlehmann |
keep all your bedrock in your pocket |
00:16 |
erlehmann |
Gustavo6046 so about hopperdupe |
00:16 |
erlehmann |
can you reliably trigger it? |
00:17 |
erlehmann |
mmhhh |
00:17 |
Gustavo6046 |
I haven't tried |
00:17 |
erlehmann |
i think only one of the three anvil dupes is unfixed |
00:17 |
erlehmann |
might need a new dupe |
00:17 |
Gustavo6046 |
is it the stacking one? |
00:17 |
Gustavo6046 |
...are you suggesting me to sneakily introduce a bug? |
00:17 |
erlehmann |
hey, copying books is an intended game mechanic |
00:18 |
erlehmann |
i mean books stack |
00:18 |
Gustavo6046 |
one so cryptic and invisible in the code that it'll never be actually fixed |
00:18 |
erlehmann |
so i have a stack of 25 books |
00:18 |
Gustavo6046 |
hmmm |
00:18 |
Gustavo6046 |
I think I'll apss |
00:18 |
Gustavo6046 |
pass |
00:18 |
Gustavo6046 |
erlehmann, ah |
00:18 |
erlehmann |
and then i put an enchanted book in the second slot |
00:18 |
erlehmann |
and then i have 25 enchanted books |
00:18 |
erlehmann |
pretty simple lol |
00:18 |
Gustavo6046 |
right |
00:18 |
erlehmann |
get your MAX LEVEL enchantments while you still can |
00:18 |
erlehmann |
wuzzy claimsed it was a mistake lol |
00:18 |
erlehmann |
:P |
00:18 |
Gustavo6046 |
lol |
00:18 |
Gustavo6046 |
I can't |
00:19 |
erlehmann |
you can't ENCHANT? |
00:19 |
Gustavo6046 |
I can! |
00:19 |
erlehmann |
nice |
00:19 |
Gustavo6046 |
Just don't have enough book cases for the max level stuff yet |
00:19 |
erlehmann |
just dupe some books |
00:20 |
erlehmann |
using some other dupe |
00:20 |
erlehmann |
e.g. hopperdupe |
00:20 |
Gustavo6046 |
I think I'll pass |
00:20 |
erlehmann |
funniest dupes are the sawing table dupes actually |
00:21 |
erlehmann |
like cut wood into tiny pieces, but everyone of them has the same burntime as the input itemstack and stuff like that |
00:23 |
kabou |
Gustavo6046 I made a composter, but I have a problem getting it to work with hoppers |
00:24 |
erlehmann |
https://github.com/minetest-mods/moreblocks/pull/173 |
00:24 |
Gustavo6046 |
kabou, that might be the case if a composter does not have an inventory internally. |
00:24 |
Gustavo6046 |
I'll look into that later |
00:24 |
erlehmann |
ha, kabou i told you it should have one! |
00:24 |
kabou |
well, brewing stands do not interact with hoppers either afaics |
00:24 |
kabou |
composters have an additional issue |
00:25 |
erlehmann |
look, banners have an inventory too |
00:25 |
kabou |
they only accept items that are compostable |
00:25 |
erlehmann |
yeah what's the issue with that |
00:25 |
erlehmann |
the items do not go into the inventory |
00:25 |
erlehmann |
oh wait |
00:25 |
erlehmann |
you need TWO inventories |
00:25 |
erlehmann |
one input, one output |
00:25 |
kabou |
how to get hoppers to only push items that are compostable into composters? |
00:25 |
erlehmann |
new container type? |
00:26 |
erlehmann |
also where is group compostable |
00:26 |
erlehmann |
that contains the chance |
00:26 |
erlehmann |
wouldn't that be cool |
00:26 |
erlehmann |
i mean stuff is flammable too |
00:27 |
kabou |
erlehmann you're probably correct |
00:27 |
erlehmann |
nice |
00:27 |
Gustavo6046 |
do you need to do get_luaentity() on an item entity in order to get item-specific fields? |
00:27 |
erlehmann |
refactoring incoming |
00:27 |
kabou |
so GROUPS.md needs updating |
00:27 |
Gustavo6046 |
like fields defined in the item's code |
00:27 |
erlehmann |
kabou, make items have a group compostable, then make a container type that can not contain specific things, like shulkers. a hopeer will not put a shulker into a shulker (anymore). |
00:28 |
Gustavo6046 |
erlehmann, does the hopper stack dupe work in mcl5? |
00:28 |
erlehmann |
i hope that helps |
00:29 |
kabou |
that means updating all items to have a group compostable value and updating mcl_hoppers to know about it |
00:29 |
erlehmann |
Gustavo6046 i told you it is hard to trigger |
00:29 |
erlehmann |
Gustavo6046 i am pretty sure it works, have you tried? |
00:29 |
Gustavo6046 |
erlehmann, no I didn't try, I'm saying ebecause there seems to be code that would make it impossible for hoppers to suck in items already collected by the player |
00:29 |
Gustavo6046 |
the collection code sets _removed=true on an item entity |
00:29 |
erlehmann |
well i guess it's a race then |
00:29 |
Gustavo6046 |
and the hopper code checks if it's set |
00:29 |
Gustavo6046 |
a race condition? |
00:29 |
erlehmann |
yes |
00:29 |
erlehmann |
or was it changed recently? |
00:29 |
Gustavo6046 |
well, turns out hoppers set the itemstring to "" |
00:29 |
Gustavo6046 |
and the collection code ALSO checks for that |
00:29 |
Gustavo6046 |
collection by player that is |
00:30 |
Gustavo6046 |
but alright, I'll set _removed to true in hopper code too |
00:30 |
erlehmann |
1 item 2 hoppers lol |
00:30 |
erlehmann |
no no no |
00:30 |
erlehmann |
you need to recreate |
00:30 |
erlehmann |
check that it works first |
00:30 |
erlehmann |
do not take my word for it |
00:30 |
erlehmann |
i have been wrong before! |
00:32 |
Gustavo6046 |
well, in either case the fact _removed isn't set to true when a hopper collects an item is still concerning |
00:32 |
|
v-rob joined #minetest |
00:32 |
erlehmann |
please check first |
00:32 |
Gustavo6046 |
because in the future, a commit might unwarily trigger a regression which reintroduces the hopper dupe! |
00:32 |
Gustavo6046 |
so I'll do it either way |
00:32 |
erlehmann |
before you steal all the items |
00:32 |
erlehmann |
NOOOO you should test |
00:32 |
erlehmann |
it was a mistake to ask you to improve the feature |
00:33 |
erlehmann |
i will never ask you to make a dupe better again! |
00:33 |
erlehmann |
oh hmm |
00:33 |
erlehmann |
maybe one |
00:33 |
erlehmann |
can you improve firedupe? |
00:33 |
Gustavo6046 |
what in the... |
00:33 |
Gustavo6046 |
oh is this game broken |
00:33 |
Gustavo6046 |
I don't want it to be broken anymore |
00:33 |
kabou |
Gustavo6046 https://minecraft.fandom.com/wiki/Hopper#Container_interactions |
00:33 |
erlehmann |
you probably didn't even know waterdupe |
00:33 |
erlehmann |
the best dupe i knew only needed cobble and wood lol |
00:34 |
kabou |
consider those when refactoring/improving hoppers |
00:34 |
erlehmann |
hoppers, or shall we call them “dupers” |
00:34 |
Gustavo6046 |
kabou, well, the current state of the code has it so that sideways hoppers only put items into containers beside them |
00:34 |
Gustavo6046 |
I think |
00:34 |
Gustavo6046 |
yeah |
00:35 |
kabou |
I'm about to fall asleep |
00:35 |
Gustavo6046 |
aw |
00:35 |
kabou |
hope to to speak you guys soon again |
00:36 |
Gustavo6046 |
see you kabou! |
00:37 |
Gustavo6046 |
erlehmann, it seems from the chest code that double chests have two separate invs, top_inv and bottom_inv |
00:37 |
kabou |
Gustavo6046 check out https://git.minetest.land/Mineclonia/Mineclonia/pulls/281 if you want to help me think about how to get composters to work with hoppers |
00:37 |
kabou |
good night everyone! |
00:37 |
Gustavo6046 |
kabou, erlehmann gave some good ideas, I just think they need investigation |
00:37 |
Gustavo6046 |
see you! :) |
00:37 |
Gustavo6046 |
hey, that's Mineclonia, not MCl5 |
00:38 |
kabou |
oh I have a PR for mineclone2 as well |
00:38 |
Gustavo6046 |
uh, I think mcl2 is kinda dead |
00:38 |
kabou |
kay27 already merged the PR for mineclone5 |
00:38 |
Gustavo6046 |
I prefer mcl5's development style |
00:38 |
Gustavo6046 |
ah |
00:38 |
Gustavo6046 |
neat! |
00:39 |
kabou |
updates are here: https://git.minetest.land/kabou/MineClone5/src/branch/composters |
00:40 |
kabou |
anyway, i'm falling over rn |
00:40 |
kabou |
bye! |
00:40 |
Gustavo6046 |
aw |
00:40 |
Gustavo6046 |
cya! |
00:40 |
Gustavo6046 |
sleep well! |
00:40 |
kabou |
nice alking to you |
00:40 |
Gustavo6046 |
same! ^^ |
00:40 |
kabou |
talking |
00:43 |
erlehmann |
<Gustavo6046> I prefer mcl5's development style |
00:43 |
erlehmann |
well |
00:43 |
erlehmann |
kay27 merged kabous hoppers immediately |
00:43 |
erlehmann |
whereas mcl2 and mcla wait until the submitter is actually finished with the feature lol |
00:54 |
Gustavo6046 |
well, he could have added WIP: to the title |
00:54 |
Gustavo6046 |
I did with my changes till I felt like they were good enough |
01:00 |
erlehmann |
Gustavo6046 i think you misunderstand |
01:00 |
erlehmann |
https://git.minetest.land/MineClone5/MineClone5/pulls/210 |
01:00 |
erlehmann |
> WIP: mcl_composters initial commit #210 |
01:00 |
ShadowBot |
https://github.com/minetest/minetest/issues/210 -- Cannot connect to local (stand alone) server "failed to emerge player" |
01:01 |
erlehmann |
thanks for nothing, shadowbot |
01:01 |
erlehmann |
Gustavo6046 since you like kay27 development style of moving fast and merging half-finished stuff, i bet you have no issue with this behavior |
01:01 |
erlehmann |
:P |
01:01 |
erlehmann |
i am jokings of course |
01:04 |
|
olliy joined #minetest |
01:09 |
onehittoaster |
For the past 25 years I have developed software using hand-crafted, (no autoconf bullshit) makefiles. Today I tried premake (based on lua). I am seriously considering adopting premake. |
01:17 |
erlehmann |
onehittoaster try redo |
01:18 |
erlehmann |
onehittoaster http://news.dieweltistgarnichtso.net/bin/redo-sh.html (thank me later) |
01:21 |
onehittoaster |
um, no. bash is fine for shell scripts; I'm not going to use it for a complex build-system with lots of transitive build steps. |
01:21 |
erlehmann |
i think you are mistaken |
01:22 |
erlehmann |
onehittoaster first, this has nothing to do with bash |
01:22 |
erlehmann |
you can, in fact, write your dofiles in lua |
01:22 |
erlehmann |
if you so desire |
01:23 |
erlehmann |
second, premake seems to have similar failure modes as cmake. |
01:23 |
erlehmann |
basically, every build system that claims to generate a complete dependency graph before the build is lying to you |
01:23 |
erlehmann |
bc it is impossible for the general case |
01:24 |
erlehmann |
well, forget about it |
01:24 |
onehittoaster |
If I were only ever going to target Linux, I owuld just use a makefile like I always have. However, for my next project, I want to retain the ability to build for windows and mac (someday). cmake looks like a pita to learn. premake seemed more elegant. |
01:24 |
onehittoaster |
erlehmann: be thankful that you've never had to use bazel / blaze. :) |
01:24 |
onehittoaster |
I would assume anyway. |
01:26 |
erlehmann |
look, there are a bunch of tools that are faster, more reliable, easier to learn and easier to write build scripts for than make or cmake |
01:27 |
erlehmann |
that i managed in about 400 lines of shell is just because of portability. some people write their build system in go and that makes go a build-dependency of all of their projects. |
01:27 |
erlehmann |
which i consider impractical to a ridiculous extent |
01:28 |
erlehmann |
onehittoaster i have a question, do you program in C or C++? |
01:30 |
erlehmann |
onehittoaster if so, please tell me if premake can solve the problem outlined in this blog post: https://web.archive.org/web/20170326021857/http://news.dieweltistgarnichtso.net/posts/redo-gcc-automatic-dependencies.html |
01:30 |
onehittoaster |
Mostly C++. I've not writen straight-up C in a long time. I wrote an OS kernel in C about 15 years ago. You could boot it with grub, but I never finished it. |
01:31 |
Gustavo6046 |
I don't like C++ |
01:31 |
onehittoaster |
erlehmann: I have no idea if premake can handle that, but I suspect not. However, the problem described in that article is not important to me at this time. |
01:32 |
erlehmann |
why not? |
01:32 |
erlehmann |
if your build system does not handle this case, all incremental builds may be wrong |
01:33 |
erlehmann |
ever recompiled minetest after you changed something in the source and it was for some reason not in the binary until you made a clean rebuild? |
01:33 |
erlehmann |
this type of thing |
01:33 |
onehittoaster |
Nope. I just nuke it and rebuild from scratch. "-j32" and wait about 1 minute. |
01:34 |
onehittoaster |
There are only two things that I use that take a long time to build, and I don't recompile them often: firefox and tensorflow. |
01:35 |
erlehmann |
i have only 2 processors, not 32 |
01:35 |
onehittoaster |
ah. |
01:35 |
erlehmann |
which is why i am upset with build systems that give wrong output (make, cmake) or are slow (like ninja) |
01:35 |
onehittoaster |
I only recently acquired 32. For many years my daily-driver was a core i5 (2.8 GHz, 4 cores) from 2010. |
01:36 |
onehittoaster |
How often do you update your libc/libstdc++ while concurrently building other projects though? |
01:36 |
erlehmann |
rarely, but you probably miss the biggest impact |
01:36 |
erlehmann |
target files depend on build rules |
01:37 |
erlehmann |
if you change the build rules, a target needs to be rebuilt, right? |
01:37 |
erlehmann |
(if you disagree here, i'd like to know why) |
01:38 |
onehittoaster |
I have a personal project that has a dependency like that. But it only takes 6 minutes to build on my old box, and less than 1 on my new box, so "make clean" was fine for me. I understand that your concern is not one for me. |
01:38 |
onehittoaster |
I don't disagree. I admit that this is a failing of make. |
01:38 |
erlehmann |
well, if *all* builds you make are clean builds, then you do not have this kind of problem |
01:38 |
erlehmann |
it is weird though, i usually only see this when ppl to embedded software |
01:39 |
onehittoaster |
I've sometimes moved special build rules into a shell script, and make that shell script a dependency of the build rule, so that touching the script triggered a rebuild of the other files. |
01:39 |
erlehmann |
cursed |
01:39 |
onehittoaster |
but this was mostly about packing assets into a tar file that was then encoded into a .o and statically linked into a binary. |
01:39 |
erlehmann |
my entire website is built with redo hehe |
01:40 |
erlehmann |
i have written a tar packing implementation for it to have it build in a reproducible manner |
01:40 |
onehittoaster |
the binary would use libarchive to extract files from the embedded tar file on the fly (was a built-in http server in a larger C++ program, and the tar file contained the static assets) |
01:40 |
onehittoaster |
the thing that is annoying me about premake is that I see no easy way to have it emit custom "make TARGET" targets, like "make test". |
01:41 |
onehittoaster |
If I were to create the makefile directly, that is trivial. "make test", "make lint", "make clang-format", "make run", etc.... |
01:41 |
onehittoaster |
they just execute shell commands. |
01:41 |
onehittoaster |
and sometimes check dependencies first. |
01:42 |
onehittoaster |
premake doesn't seem to have a mechanism to jam stuff like that into the ephemeral makefiles that it creates when I run "premake5 gmake". |
01:42 |
onehittoaster |
meh. |
01:42 |
erlehmann |
as i said, you can write your dofiles in lua |
01:42 |
erlehmann |
wait, doesn't windows have sh nowadays? |
01:42 |
erlehmann |
my friend has sh i bet |
01:43 |
erlehmann |
because git |
01:43 |
erlehmann |
git is half c half shell scripts half black magic |
01:43 |
erlehmann |
that makes 150% cursed software |
01:43 |
onehittoaster |
no idea. I've not ran windows on bare metal in 7 years. All of the PCs at my home run Linux (Gentoo or Ubuntu) |
01:45 |
onehittoaster |
I have NT4, W2k, XP and W7 in QEMU images if I need them, but I've not fired those up in years either. |
01:45 |
onehittoaster |
I've never even seen a live windows 10 system. ever. I once saw windows 8 and got ill form it. |
01:45 |
onehittoaster |
from |
01:48 |
Gustavo6046 |
what is your goal with using gentoo? |
02:00 |
MTDiscord |
<savilli> a samurai has no goal, only a path |
02:12 |
onehittoaster |
Goal with Gentoo? IDK. My first distro was slackware (1? kernel was 1.3.20). I tried redhat but hated it. In 2004 someone introduced me to gentoo and I just kinda started using it. |
02:16 |
erlehmann |
https://github.com/minetest/minetest/compare/master...erlehmann:fix-localtime-2?expand=1 |
02:28 |
|
v-rob joined #minetest |
02:33 |
|
jingkaimori joined #minetest |
02:39 |
|
JackFrost joined #minetest |
02:43 |
jingkaimori |
Are there any tile modifier to overlay a texture onto another with position movement like this? |
02:50 |
jingkaimori |
https://i.bmp.ovh/imgs/2022/02/30e6ab1593e93880.png |
02:57 |
|
lemonzest joined #minetest |
03:01 |
|
Gustavo6046 joined #minetest |
03:01 |
MTDiscord |
<GreenXenith> Probably use combine |
03:29 |
|
queria^clone joined #minetest |
03:32 |
|
jingkaimori joined #minetest |
03:32 |
jingkaimori |
how can I retrieve CGUITTFont from client device? |
03:33 |
|
queria^clone joined #minetest |
03:54 |
|
v-rob joined #minetest |
04:14 |
|
v-rob joined #minetest |
04:36 |
|
olliy joined #minetest |
04:43 |
|
RhineDevil joined #minetest |
05:00 |
|
MTDiscord joined #minetest |
05:53 |
|
jingkaimori joined #minetest |
06:01 |
|
riff-IRC joined #minetest |
06:10 |
|
RhineDevil joined #minetest |
06:12 |
|
asdflkj_sh joined #minetest |
07:02 |
|
jvalleroy joined #minetest |
07:11 |
|
v-rob joined #minetest |
07:20 |
|
calcul0n joined #minetest |
07:20 |
|
fling joined #minetest |
07:25 |
|
v-rob joined #minetest |
07:46 |
sfan5 |
g_fontengine->getFont(), you can then do a dynamic_cast<> to CGUITTFont* |
07:47 |
sfan5 |
generally this is only needed if you need a feature that is exclusive to it, IGUIFont contains basic font rendering |
08:02 |
|
jingkaimori67 joined #minetest |
08:03 |
|
appguru joined #minetest |
08:04 |
|
jingkaimori65 joined #minetest |
08:04 |
|
jingkaimori52 joined #minetest |
08:14 |
|
jingkaimori joined #minetest |
08:22 |
|
___nick___ joined #minetest |
08:32 |
|
Markow joined #minetest |
09:16 |
|
jingkaimori joined #minetest |
09:26 |
|
GNUHacker joined #minetest |
10:17 |
|
specing joined #minetest |
10:18 |
|
Noclip[m] joined #minetest |
10:50 |
|
freshreplicant[m joined #minetest |
10:50 |
|
gemmaro[m] joined #minetest |
10:50 |
|
wsor4035 joined #minetest |
10:50 |
|
queria[m] joined #minetest |
10:50 |
|
_Zaizen_[m] joined #minetest |
10:50 |
|
programmerjake joined #minetest |
10:50 |
|
unexploredtest[m joined #minetest |
10:50 |
|
zehka[m] joined #minetest |
10:50 |
|
mister-e[m] joined #minetest |
10:50 |
|
tochigi joined #minetest |
10:50 |
|
craigevil[m] joined #minetest |
10:51 |
|
omichalek[m]1 joined #minetest |
10:51 |
|
mugli[m] joined #minetest |
10:51 |
|
Amo[m] joined #minetest |
10:54 |
|
proller joined #minetest |
11:38 |
|
mazes_83 joined #minetest |
11:52 |
|
GNUHacker joined #minetest |
11:54 |
|
Megaf joined #minetest |
12:10 |
|
appguru joined #minetest |
12:14 |
|
GNUHacker joined #minetest |
12:22 |
|
Fixer joined #minetest |
12:40 |
|
tech_exorcist joined #minetest |
12:57 |
|
erle_web joined #minetest |
12:58 |
erle_web |
i have used callgrind to figure out where the media loading is spending its time. the answer seems to be: if the cache is full, >97% of the time is SHA1. |
12:58 |
|
Toni[m] joined #minetest |
12:58 |
|
nogajun[m] joined #minetest |
12:59 |
erle_web |
which makes sense, as after the hashing you compare and skip the rest. |
12:59 |
|
runningdroid[m] joined #minetest |
13:00 |
MTDiscord |
<Warr1024> Seems like it would make sense to use murmurhash or something instead, if that time is concerning. How much do we expect adversarial input here, and how bad are the negative consequences, anyway? SHA1 is sort of not secure enough if it is a concern, and not fast enough if it isn't. |
13:01 |
erle_web |
the time is not concerning |
13:01 |
erle_web |
there simply is not much optimization potential |
13:02 |
erle_web |
Warr1024 i have planned to make an adversarial SHA1 example anyway hahaha |
13:03 |
erle_web |
to figure out what the engine does if i give it two things with the same hash |
13:04 |
MTDiscord |
<Sublayer plank> how good is murmurhash compared to xxhash in terms of speed and uniqueness? |
13:05 |
|
GNUHacke_ joined #minetest |
13:06 |
erle_web |
please don't change the hash function on a whim. you'll invalidate everyone's cache. and who says the other hashes are practically faster? the bottleneck might simply be reading in the bytes! |
13:06 |
|
lorddavidiii[m] joined #minetest |
13:07 |
erle_web |
> MMH-3 function belongs not to the class of strong cryptography |
13:08 |
erle_web |
https://stackoverflow.com/questions/5216736/hashing-murmurhash |
13:08 |
erle_web |
> I used Murmur hash to hash around 800 000 string values, and this cause many conflicts (collision), that around 17 collision (different strings give the same hash value), is this normal, any one know the quality of murmur hash function |
13:08 |
erle_web |
lol |
13:08 |
MTDiscord |
<Warr1024> Oh my god, people could lose their CACHE! |
13:08 |
MTDiscord |
<Warr1024> You're right, that would be horrible. |
13:08 |
erle_web |
indeed. i am very smart! :P |
13:09 |
MTDiscord |
<Sublayer plank> me who has .cache in ramdisk: oh no! anyways... |
13:10 |
erle_web |
Warr1024 did you ever experiment with texture atlases? |
13:10 |
MTDiscord |
<Warr1024> murmurhash is an actual hash function, not a cryptographic message digest. Obviously it shouldn't be used for cryptographic purposes, or anywhere that you expect adversarial input. |
13:10 |
MTDiscord |
<Warr1024> I haven't messed much with atlases |
13:10 |
MTDiscord |
<Warr1024> do you mean like using [sheet? |
13:10 |
MTDiscord |
<Warr1024> or like an internal engine thing? |
13:11 |
erle_web |
yeah sprite sheets |
13:11 |
|
definitelya joined #minetest |
13:11 |
MTDiscord |
<Warr1024> Heh, sublayer plank, I also keep my MT cache (along with many others) on tmpfs :-) |
13:11 |
erle_web |
minetest is full of adversarial inputs tthough |
13:12 |
erle_web |
i am better than all of you (except kilbith), because i kept a whole minetest installation in tmpfs! |
13:12 |
erle_web |
but then the power ran out, so i may not do it again lol |
13:12 |
MTDiscord |
<Warr1024> I was a bit interested in sheets at one point, but there were a lot of maintainability drawbacks to using them, and I don't see much benefit. |
13:13 |
erle_web |
well, if you have a shit ton of textures and they are rarely changet it *might* help. but i am not interested as long as it is not automatable. |
13:13 |
MTDiscord |
<Warr1024> I don't see the point in keeping all of MT in tmpfs because I won't want to routinely clean out most of it... |
13:13 |
erle_web |
oh it was just some compilation experiment |
13:13 |
erle_web |
i wanted to ditch it eventually |
13:14 |
|
GNUHacker joined #minetest |
13:14 |
erle_web |
i mean i am already too dumb to get a proper crack graphic for a node that has a texture wrapped around itself |
13:14 |
erle_web |
the crack overlay overlays the entire texture and not the face that is mined |
13:14 |
MTDiscord |
<Warr1024> I actually copy MT src into tmpfs to compile it, then copy the bin back to disk. I don't feel like having to clean up obj files and crap :-/ |
13:14 |
erle_web |
which is unfortunate |
13:14 |
erle_web |
any idea? |
13:14 |
erle_web |
nice |
13:15 |
MTDiscord |
<Warr1024> I think using [sheet and making each face a separate UV might be the sanest way to do what you're talking about |
13:15 |
MTDiscord |
<Warr1024> In general I optimize the way I handle textures for maintainability first, i.e. I prefer to keep textures in a format optimal for me to work on, not necessarily for network transfer, caching, or rendering |
13:16 |
MTDiscord |
<Warr1024> besides, texture atlases only really benefit caching and network xfer, if MT just chops them up in memory anyway. |
13:16 |
MTDiscord |
<Warr1024> far as I know you can't have context-specific crack textures either, so making a pre-wrappped version of that probably won't work either. |
13:17 |
MTDiscord |
<Warr1024> Really in the grand scheme of things, games and mods should by default use simple and compact textures, i.e. 16px only, and higher-res stuff should really be just for texturepacks. Correspondingly of course we need better texture pack compositing support so they actually work with the way people use mods :-| |
13:19 |
erle_web |
well in my case the wraparound was for maintainability |
13:19 |
erle_web |
the mineclonia christmas chests |
13:24 |
MTDiscord |
<Warr1024> You can still maintain the texture file as a wraparound, e.g. if you want to make it easier to edit the texture. I think you just use [sheet or whatever to chop it up. Then of course your UV map needs to use multiple materials to attach each one, which kinda sucks, esp if you've already got it setup the other way... |
13:25 |
erle_web |
here https://git.minetest.land/Mineclonia/Mineclonia/pulls/212/files |
13:25 |
erle_web |
these are the textures |
13:25 |
erle_web |
i should probably use |sheet then |
13:25 |
erle_web |
[sheet |
13:26 |
erle_web |
btw, the idea to overlay some noise made the textures much nicer looking |
13:27 |
erle_web |
and easier to edit |
13:27 |
erle_web |
looks like this in-game btw: https://git.minetest.land/attachments/5c8a8412-6ae1-41dd-83ab-0e6f3773cd10 |
13:28 |
erle_web |
i did not expect it to *do* anything, but it lead to people spamming chests and snow around christmas hahah |
13:31 |
erle_web |
kachegrind seems pretty cool |
13:34 |
erle_web |
btw, callgrind also tells me that the most thing minetest does during mod loading is executing lua code |
13:34 |
erle_web |
who would have thought! |
13:34 |
erle_web |
:D |
13:36 |
MTDiscord |
<Sublayer plank> what a shocker, it executed lua code during mod loading? I would have never known! |
13:38 |
erle_web |
what i mean is: optimizing lua code is probably going to help more than obsessing about spritesheets |
13:39 |
erle_web |
try it yourself! http://kcachegrind.sourceforge.net/html/Usage.html |
13:41 |
|
lemonzest joined #minetest |
13:41 |
erle_web |
brb recompiling minetest with debug info |
13:46 |
MTDiscord |
<Warr1024> I don't suppose there's a way to get a combined view of C++ and Lua calls, is there? Like, to find out where time is being spent between the 2 of them. |
13:48 |
erle_web |
i have no idea how, but you can see the exposed functions |
13:49 |
erle_web |
this is pretty cool |
13:50 |
erle_web |
yeah so i am looking at a callgrind run of minetest executing devtest now. |
13:50 |
erle_web |
1fps during it lol |
13:51 |
erle_web |
according to this, mapgen is much more expensive than everything else |
14:01 |
erle_web |
Warr1024 this is the view i have right now https://mister-muffin.de/p/diWU.png |
14:28 |
|
Taoki joined #minetest |
14:42 |
|
Fixer joined #minetest |
14:57 |
|
lemonzest joined #minetest |
15:07 |
|
kamdard joined #minetest |
15:43 |
|
asdflkj_sh joined #minetest |
15:44 |
|
kabou joined #minetest |
15:58 |
|
v-rob joined #minetest |
16:08 |
|
v-rob joined #minetest |
16:13 |
|
Yad joined #minetest |
16:23 |
|
erlehmann joined #minetest |
16:24 |
|
Hawk777 joined #minetest |
16:32 |
|
onehittoaster joined #minetest |
16:34 |
|
calcul0n joined #minetest |
16:37 |
|
GNUHacker joined #minetest |
16:45 |
|
tech_exorcist joined #minetest |
16:57 |
erlehmann |
i think i may indeed be able to speed up media loading with a full cache |
16:57 |
erlehmann |
without changing the server |
16:57 |
erlehmann |
i'll have to investigate |
16:59 |
erlehmann |
nope, forget it |
17:02 |
erlehmann |
oh, i have something actually |
17:08 |
|
v-rob joined #minetest |
17:17 |
|
sparky4 joined #minetest |
17:18 |
|
sys4 joined #minetest |
17:25 |
erlehmann |
a blast from the past https://web.archive.org/web/20111012063056/http://test.mine.bz/blog |
17:29 |
|
GNUHacker joined #minetest |
17:31 |
|
definitelya_ joined #minetest |
17:32 |
onehittoaster |
Challange: Code a minetest-like game that runs decently on a 486 dx2 @66 MHz, using VGA at 320x200 256-color mode. It can run using a dos-extender or on an ancient version of Linux. |
17:32 |
|
lemonzest joined #minetest |
17:32 |
erlehmann |
> The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware. It runs playably on a laptop with Intel 945GM graphics. |
17:32 |
onehittoaster |
doesn't have to be fancy, does not require networking. |
17:32 |
erlehmann |
https://web.archive.org/web/20111010002614/http://test.mine.bz/ |
17:32 |
erlehmann |
and indeed, i have a laptop with intel 945GM graphics |
17:33 |
erlehmann |
celeron55 is keeping promises hehehe |
17:35 |
rubenwardy |
c55 estimates be like "a day" |
17:35 |
|
Fleckenstein joined #minetest |
17:35 |
erlehmann |
; lspci |grep VGA |
17:35 |
erlehmann |
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) |
17:36 |
erlehmann |
i have exactly the target hardware. coincidence? :D |
17:36 |
|
sobkas joined #minetest |
17:36 |
celeron55 |
erlehmann: nice find, the archived blog |
17:37 |
celeron55 |
the server that holds that blog is sitting on a chair next to me, one day i'll re-publish it in some way |
17:38 |
celeron55 |
erlehmann: "fairly old hardware" is a moving target, though |
17:38 |
erlehmann |
celeron55 with mobile and stuff like reform it's not really |
17:39 |
erlehmann |
if minetest had blown up to want like 16G RAM minimum it would not run on phones |
17:40 |
erlehmann |
celeron55 i only found it because on github, my minetest repo still had the url in the description as a link and i was like “oh?” |
17:40 |
erlehmann |
celeron55 i have used callgrind on minetest. is it true that 75% of mapgen time is light calculation? |
17:41 |
erlehmann |
or am i reading the output wrong |
17:41 |
erlehmann |
i thought, after the localtime() stuff i should probably investigate to figure out the structure of minetest |
17:41 |
erlehmann |
to get free fps in the process |
17:41 |
erlehmann |
ideally |
17:42 |
|
adam_mc joined #minetest |
17:42 |
erlehmann |
i mean, i bet the structure of most programms is while true { if poll() || poll() then poll() } or something; |
17:42 |
rubenwardy |
16GB is by no means fairly old hardware |
17:43 |
erlehmann |
“old” is less important than “affordable” |
17:43 |
v-rob |
light calculations are pretty bad |
17:46 |
celeron55 |
light calculations are a recursive system going into 4 bit depth in 3d space |
17:46 |
celeron55 |
it's naturally expensive |
17:48 |
v-rob |
It would be worse with colored lighting |
17:49 |
erlehmann |
celeron55 given that on the GM945 the realtime shadows from the irrlicht demo code work fine, why should they not be used? (i guess there is a reason, bc they are relatively simple to setup) |
17:49 |
v-rob |
I mean, we should probably be glad light calculations aren't slower than they are |
17:50 |
erlehmann |
(they also look better than the shadows i get on a thinkpad x390 with shadows feature) |
17:50 |
v-rob |
Probably because they aren't voxel-based |
17:51 |
Hawk777 |
I suppose one point is that lighting actually matters for non-visual reasons (e.g. mob spawning, at least I assume some mob mods care about light levels), so the server also needs to know light levels, and the server might not have a GPU at all. |
17:52 |
erlehmann |
wait, you misunderstand me |
17:52 |
erlehmann |
i mean why aren't they used. for purely visual reasons. |
17:53 |
Hawk777 |
Well, if lighting matters for game logic reasons, isn’t it better that what you see and what impacts gameplay are the same thing? |
17:53 |
erlehmann |
you can look at irrlicht demo 08 for that. smooth, nice shadows, minimum of gpu or cpu activity. |
17:53 |
Hawk777 |
Rather than “hey it looks really dark over here, but actually nothing can spawn here because according to the server’s lighting model it’s illuminated”? |
17:53 |
celeron55 |
erlehmann: you are talking about attempting to integrate fixed pipeline shadows with specially generated lighting. nobody wants to do that, nobody understands the black magic to do that (if it's possible), and nobody wants to understand it |
17:54 |
erlehmann |
Hawk777 minetest recently gained a shadows feature that is different from map light calculation and is purely visual. |
17:54 |
celeron55 |
erlehmann: shaders have been the way to do stuff in games for about 20 years now |
17:54 |
celeron55 |
erlehmann: you seriously have to learn and do it yourself if you want it |
17:54 |
Hawk777 |
Oh. Well I’ll just step out then; I admit I haven’t had time to play in a good few months now. |
17:54 |
celeron55 |
erlehmann: the will and knowhow to make it does not exist |
17:55 |
erlehmann |
ok! |
17:55 |
v-rob |
Just about everything in Irrlicht is doing stuff in a way that's about 20 years old now. |
17:55 |
celeron55 |
(and i don't know if it's possible at all) |
17:55 |
erlehmann |
v-rob that doesn't mean it's bad though, if it is performant. but i guess if it's hard to use … |
17:56 |
erlehmann |
the thing is, on the beefiest machine i know (thinkpad x390), the shader shadows look still noticeably blocky |
17:56 |
v-rob |
I don't think we use Irrlicht properly enough to even use half of Irrlicht's features. Especially now that hecks removed the half that we can't use anyway :) |
17:56 |
erlehmann |
s/know/have/ |
17:57 |
erlehmann |
yeah, like the unit tests lol |
17:58 |
erlehmann |
i'm pretty sure hecks was more about “is this in use” than “could this ever be used” with at least some of the stuff, but i don't think it matters in the long run. |
17:59 |
v-rob |
In theory, all of Irrlicht will be removed at some point. |
17:59 |
* v-rob |
waves hand towards the far, far future |
17:59 |
erlehmann |
doesn't matter if you then can figure out what *approach* is good |
18:00 |
erlehmann |
bc you can copy that over to whatever you are using then |
18:00 |
v-rob |
At the very least, I know the Irrlicht GUI will burn when I get there. Bwa ha ha ha! |
18:00 |
v-rob |
It deserves it. |
18:00 |
erlehmann |
i agree. |
18:00 |
erlehmann |
though i wonder, did you ever contribute to irrlicht upstream? |
18:00 |
v-rob |
Nope |
18:01 |
erlehmann |
i mean it is still in active development, the dev just rarely makes releases because they are work |
18:01 |
rubenwardy |
I looked into it, but it's svn and sourceforge. So big nope |
18:01 |
erlehmann |
haha what |
18:01 |
rubenwardy |
depends on your definition of active |
18:01 |
erlehmann |
i mean i even use github just for minetest, although it's probably not as bad as sourceforge |
18:01 |
erlehmann |
active as in, not dead lol |
18:02 |
v-rob |
Irrlicht reminds me of Slackware. Slackware had a release just a few weeks ago, but the previous release was in 2016. And both Irrlicht and Slackware are both ancient. |
18:03 |
jonadab |
I guess my standards for "ancient" are somewhat warped by my exposure to the NetHack community. |
18:04 |
erlehmann |
celeron55 i am learning and doing stuff myself. i'll have one test ballon per topic to see if anyone is even interested. i have the devtest nodes that no one wants for “is improving devtest wanted” (current assumption: probably not, i'll have to put it on contentdb), the localtime() thing will be for “are performance fixes wanted”, if i ever get to rendering, i'll consider the shadow stuff. you are correct, i |
18:04 |
erlehmann |
have to learn it myself! |
18:04 |
v-rob |
Well, if I'm ever developing 3D stuff for Windows 95, I'll look into Irrlicht. |
18:04 |
erlehmann |
i mean, not no one. i got one approval! |
18:06 |
|
RhineDevil^ joined #minetest |
18:15 |
|
Kimapr joined #minetest |
18:35 |
|
sparky4 joined #minetest |
18:35 |
|
Verticen joined #minetest |
19:16 |
|
olliy1or joined #minetest |
19:23 |
|
olliy joined #minetest |
19:32 |
|
Markow joined #minetest |
19:56 |
|
v-rob joined #minetest |
19:59 |
|
Gustavo6046 joined #minetest |
20:00 |
Gustavo6046 |
hello! :o |
20:05 |
definitelya_ |
0/ |
20:14 |
Gustavo6046 |
:D |
20:15 |
|
GNUHacker left #minetest |
20:15 |
erlehmann |
Gustavo6046 so about the load times |
20:15 |
erlehmann |
97% of the time is sha1() |
20:16 |
|
onehittoaster joined #minetest |
20:16 |
Gustavo6046 |
o.o |
20:16 |
MTDiscord |
<Sublayer plank> oh so it is a large contributing factor to long loading times? I thought you said it wasn't... |
20:17 |
|
onehittoaster joined #minetest |
20:17 |
Gustavo6046 |
oh my |
20:17 |
erlehmann |
look |
20:17 |
Gustavo6046 |
we need a better sha1 algorithm |
20:17 |
erlehmann |
the reason is because first you compare the hashes |
20:17 |
erlehmann |
and then you skip EVERYTHING else |
20:17 |
Gustavo6046 |
or use the hashes more cleverly |
20:17 |
erlehmann |
if your hash matches |
20:17 |
Gustavo6046 |
or both |
20:17 |
erlehmann |
i know a solution |
20:17 |
Gustavo6046 |
or we could use a heuristic |
20:18 |
Gustavo6046 |
like a micro-mash, that's just 6 bits long or something, that we use to divide into "buckets" |
20:18 |
erlehmann |
look i have created a build system, i am pretty much an expert in freshness calculation |
20:18 |
erlehmann |
oh my stop |
20:18 |
Gustavo6046 |
:( |
20:18 |
Gustavo6046 |
is my idea bad? |
20:18 |
Gustavo6046 |
but ye apologies, go ahead |
20:19 |
erlehmann |
remember the hashes |
20:19 |
erlehmann |
maybe they are recalculated too often |
20:19 |
erlehmann |
i wlll check that right now |
20:21 |
|
kabou joined #minetest |
20:22 |
MTDiscord |
<Sublayer plank> what if we switched to a faster non-cryptographic hashing algorithm? |
20:22 |
erlehmann |
then i will make sure you have collisions |
20:23 |
erlehmann |
(before someone else does) |
20:23 |
erlehmann |
look, as far as i can see, the hashes are content-addressing here |
20:23 |
erlehmann |
so that means you really don't want collisions |
20:25 |
erlehmann |
i think i found the problem |
20:25 |
erlehmann |
if i am correct, a *lot* of stuff is hashed when not necessary. if i am incorrect, shame on me. |
20:28 |
erlehmann |
subplayer plank Gustavo6046 have you looked at how the client checks the hashes? |
20:28 |
erlehmann |
start with IClientMediaDownloader::tryLoadFromCache |
20:28 |
erlehmann |
it's kinda obvious where it goes wrong |
20:29 |
Gustavo6046 |
not yet |
20:29 |
Gustavo6046 |
and C++ tends to be a pain to work with |
20:29 |
Gustavo6046 |
compared to, say, plain C, or even Rust |
20:29 |
Gustavo6046 |
uh what is that "even" doing there |
20:30 |
Pexin |
don't make me throw perl at you |
20:30 |
Pexin |
because I won't. it scares me. |
20:30 |
erlehmann |
look, i am pretty sure you can make IClientMediaDownloader::checkAndLoad a tiny bit smarter |
20:34 |
Gustavo6046 |
Pexin, right, good point, reading Perl is much worse than C++ xD |
20:34 |
Gustavo6046 |
erlehmann, yes! I can try |
20:35 |
erlehmann |
Gustavo6046 ok so first order of business, make it always load cached media without hashing. that's the upper bound. you can't get faster than that. figure out if it speeds up loading the game, if it does not, you do not need to optimize the function. |
20:36 |
erlehmann |
only once you have figured out if optimizing this function would *actually* speed up the loading you have enough grounds to make it smarter |
20:37 |
erlehmann |
i believe you can just comment out the parts that hash and check the content |
20:37 |
erlehmann |
and then build it |
20:37 |
erlehmann |
Gustavo6046, will you do that? my builds take forever, since cmake sucks |
20:37 |
erlehmann |
also i am building some other PR right now |
20:37 |
Gustavo6046 |
I'll try |
20:37 |
Gustavo6046 |
yeah building is so sloooow |
20:37 |
Gustavo6046 |
I might have to rely on CI |
20:37 |
|
Kazeta joined #minetest |
20:39 |
Kazeta |
Hi |
20:39 |
Gustavo6046 |
Hello! o/ |
20:40 |
Kazeta |
Any good mods for minetest? |
20:40 |
|
Talkless joined #minetest |
20:40 |
erlehmann |
Kazeta be a bit more specific |
20:40 |
erlehmann |
i can list a bunch of bad mods if you want |
20:40 |
erlehmann |
i even made some myself! |
20:40 |
Gustavo6046 |
Absolutely! Start by looking into Technic. Also, keep in mind you don't have to play the default game, Minetest Game, which is more like a demonstration anyways; you can try a more familiar experience with MineClone 5 or Mineclonia, or something completely new with something like NodeCore. |
20:41 |
rubenwardy |
Kazeta: https://content.minetest.net/ |
20:41 |
erlehmann |
or repixture! |
20:41 |
Kazeta |
OK |
20:41 |
rubenwardy |
See Top Mods, and Highest Reviewed |
20:43 |
Gustavo6046 |
I feel like some of the reviews aren't very thought out |
20:46 |
|
v-rob joined #minetest |
21:04 |
|
v-rob joined #minetest |
21:27 |
|
Yad joined #minetest |
21:34 |
|
v-rob joined #minetest |
21:47 |
|
Oksanaa joined #minetest |
22:15 |
|
proller joined #minetest |
22:16 |
|
specing_ joined #minetest |
22:20 |
|
LibreGNU joined #minetest |
22:27 |
MTDiscord |
<luatic> erlehmann: Is it perhaps verifying cache integrity by rehashing the cached files? |
22:38 |
erlehmann |
luatic it is rehashing the files on every load as i see it |
22:39 |
erlehmann |
the correct implementation would be to cache that hash and only recalculate it when the last-modified date changed |
22:39 |
|
Gustavo6046 joined #minetest |
22:40 |
erlehmann |
i bet some fun-haters will have lobotomized their file systems and will soon tell me that their file system says every file was created shortly after the moon landing |
22:44 |
|
v-rob joined #minetest |
22:59 |
|
Verticen joined #minetest |
23:08 |
Pexin |
erlehmann: the SPIRIT of the file has Always been part of us. |
23:11 |
|
v_rob joined #minetest |
23:12 |
|
Megaf joined #minetest |
23:40 |
RhineDevil^ |
Gustavo6046: <Gustavo6046> I know it sets a worrying precedent, but I honestly, seriously, non-sarcastically don't know what kind of dystopian future would come from this. |
23:40 |
RhineDevil^ |
I wholeheartedly agree |
23:40 |
Gustavo6046 |
I think capitalism is a much bigger, much more all-encompassing reality than data privacy violation, and one we've thoroughly failed to get rid of for centuries already. |
23:41 |
Gustavo6046 |
The world is depresing, honestly. |
23:41 |
Gustavo6046 |
I guess that means I am healthy and sane-minded. |
23:41 |
RhineDevil |
Gustavo6046: My idea about the whole thing is more specific |
23:41 |
RhineDevil |
I think human nature is both egoistic and collectivist |
23:41 |
Gustavo6046 |
It's hard to be specific with the whole complexity of society. |
23:42 |
RhineDevil |
And I think capitalism as we know it is based only on one side of it |
23:42 |
Gustavo6046 |
I don't think human nature is inherently egoistic, but rather only as a result of the existence of currency. |
23:42 |
RhineDevil |
Nah it is, but it is also capable of collective thinking |
23:42 |
Gustavo6046 |
Trying to appeal to egoism and exploit it to encourage collectivism, through financial incentives to collectivist behaviour, is only going to fall short. |
23:42 |
Gustavo6046 |
Because that turns the collectivist behaviour into the means to an end, rather than the ends themselves. |
23:43 |
Gustavo6046 |
This psychological phenomenon is well studied, and is also (in part) why school sucks. |
23:43 |
RhineDevil |
I never talked about financial incentives |
23:43 |
RhineDevil |
My idea is way bigger |
23:43 |
Gustavo6046 |
I know, but the idea is generalizable. |
23:43 |
Gustavo6046 |
That's a tangible example for argument and explanation's sake.; |
23:43 |
RhineDevil |
Nah depends |
23:43 |
RhineDevil |
I think the whole idea stands in creating a positive feedback |
23:44 |
RhineDevil |
If you let people experience a good feedback from their action, they'll slowly adapt to it |
23:44 |
RhineDevil |
And this can be done in many ways |
23:44 |
RhineDevil |
That's a general idea, I'll let you digress about what could I mean into this |
23:45 |
RhineDevil |
*what could it mean into practice |
23:45 |
Pexin |
there are some who believe that all of human history has been allowed to happen to prove a point: that without guidance, we are selfish short-sighted and self-destructive. and that every iteration of mistakes people keep making over the ages is another attempt to find their path. and it must be allowed to continue until nobody - past, present, heaven or earth, can legitimately point and say, "but but but |
23:45 |
Pexin |
but they haven't tried THIS yet!" |
23:45 |
Pexin |
but anyway, hey look, a voxel game! |
23:46 |
RhineDevil |
Pexin: not getting what your point is, speak clearly |
23:46 |
* Pexin |
plays with digimal legos |
23:46 |
RhineDevil |
Gustavo6046: I won't dig deeper than what I said, the enemy listens |
23:47 |
Gustavo6046 |
RhineDevil, I have spoken a lot of MArxist thought lately |
23:48 |
RhineDevil |
Gustavo6046: I don't believe in political theory, I believe in political practice |
23:48 |
Gustavo6046 |
Pexin, I think that human history has happened not to prove a point, because that isn't what creates history. What creates history is usually the ruling class, and the ruling class is usually the few humans who DID happen to be greedy enough to exploit everyone else to begin with. |
23:48 |
RhineDevil |
Well said |
23:49 |
Gustavo6046 |
RhineDevil, political practice is impossible without first understanding the underlying gears in motion. And then you realize that these very gears were built to make any political practice that tries to spin against the gears impossible. |
23:49 |
Pexin |
hows that working out for you |
23:49 |
Pexin |
s/you/us |
23:50 |
Gustavo6046 |
Political practice, at least of the kind that actually improves society in a way that makes it more equal and just, is impossible until you change the system. And changing the system is impossible, until you understand it and its shortcomings. |
23:50 |
Gustavo6046 |
Political theory does not move the world, but it moves people, and it educates them about the world around them, especially if said educatoin comes from people outside the framework of thought that the political system itself restrictively enforces under command of the ruling class. |
23:51 |
RhineDevil |
Gustavo6046: the gears are explained (partically) by psychology, not by people trying to predict how the future will be |
23:51 |
RhineDevil |
*partially |
23:51 |
RhineDevil |
Gustavo6046: it's foolish thinking that the people are or can be educated |
23:51 |
Gustavo6046 |
Psychology applies at an individual level. But strategy is much more high level than that. |
23:51 |
Gustavo6046 |
The ruling class is not stupid. |
23:52 |
Gustavo6046 |
They use strategy. |
23:52 |
RhineDevil |
Nah they use psychology |
23:52 |
Gustavo6046 |
Of the masses, yes. |
23:52 |
Gustavo6046 |
So that they never catch onto the strategy they use. |
23:52 |
Gustavo6046 |
For instance, they lopside the distribution of emphasis in social issues in order to distract the working classes from the true struggles they should prioritize, the class struggles. |
23:53 |
RhineDevil |
Now we're talking the same language |
23:53 |
Gustavo6046 |
They use geopolitical tension as an opportunity to glorify themselves, to hide their unfairly advantaged position under a veil of humanitarianism and progressivism. |
23:53 |
Gustavo6046 |
Hell, even the Nazis veiled themseleves under humanitarianism and progressivism to mollify their public image, before the end of WW2 and the ensuing revelation of their horrors and their true faces. |
23:54 |
RhineDevil |
Anyway as I was saying, there are no "gears" in motion. there is an enthropy that can be influenced on a certain extent |
23:54 |
RhineDevil |
And that's all |
23:54 |
Gustavo6046 |
Remember that back then, eugenics was a cool thing, and it was considered scientific. |
23:54 |
RhineDevil |
*to a certain extent |
23:54 |
Gustavo6046 |
Nowadays science has rejected eugenics, not just as a knee-jerk reaction. |
23:55 |
RhineDevil |
actually eugenics IS a cool thing, but not that kind of eugenics |
23:55 |
Gustavo6046 |
wat |
23:55 |
Gustavo6046 |
you mean like, social Darwinism? |
23:55 |
RhineDevil |
no |
23:55 |
RhineDevil |
I mean like genetic engineering |
23:56 |
Gustavo6046 |
what other kind of eugenics is there then? all I know is passive social Darwinsim (people dying for being stupid) and "active social Darwinism" (people being killed for being different). |
23:56 |
Gustavo6046 |
the latter is also known as, among other things, racial hygiene, and a lot of other names |
23:56 |
Gustavo6046 |
some try to downplay it, others are much more sraight to thep oint |
23:56 |
Gustavo6046 |
the point* |
23:56 |
RhineDevil |
I know that and I'm not talking about that |
23:56 |
Gustavo6046 |
I wouldn't call genetic engineering eugenics in the traditional sense :p |
23:57 |
Gustavo6046 |
Eugnenics was from an era before genes were well understood |
23:57 |
RhineDevil |
I'm talking about fixing uncurable issues before they're going to happen |
23:57 |
Gustavo6046 |
There was only a vague understanding of inheritability, based on Mendel's work |
23:57 |
RhineDevil |
That was the problem |
23:57 |
Gustavo6046 |
Now that we understand genes, it's not proper to call it eugenics anymore. We have adjusted our ideas away from what was eugenics. |
23:57 |
RhineDevil |
Everyone from that era had a really vague understanding on how things worked |
23:57 |
Gustavo6046 |
So please don't call genetic engineering eugenics :P |
23:58 |
Gustavo6046 |
(Just like you shouldn't call all sorts of Marxist thought Stalinism!) |
23:58 |
Gustavo6046 |
Anyway, incurable issues? |
23:58 |
RhineDevil |
Gustavo6046: some would say eliminating certain traits from humanity would be eugenics, but what if these traits were actually harmful? |
23:58 |
Gustavo6046 |
RhineDevil, yes, but the devil (no pun intended, RhineDevil) is in the details |
23:59 |
RhineDevil |
What if we could build a better humanity by removing these traits from embryos instead of doing butchery experiments on people? |
23:59 |
Gustavo6046 |
I completely agree with what you said, but some people can twist the definition of "harmful" |
23:59 |
Gustavo6046 |
What does it mean for a trait to be harmful? You might think it's pretty unambiguous, it's things that make people's lives worse. |
23:59 |
RhineDevil |
Of course Gustavo6046, but that's why I say eugenics isn't inherently bad |
23:59 |
Gustavo6046 |
But what if some people redefine that in a way that appeases to their exclusionist thoughts? |