Time |
Nick |
Message |
00:02 |
|
sapier left #minetest-dev |
00:04 |
Zefram_Fysh |
I mostly talk about pipeworks because its tubed items are the only entities in whose programming I'm really involved, that's all. I'm afraid I don't have any more normal example to work with, and I do worry a bit that it might give me a skewed idea of what's good for the entity system in general |
00:11 |
kahrl |
since when does changing something (causing the -dirty suffix to be added to the githash) cause all the files which use the version to be recompiled? |
00:11 |
kahrl |
^ shows how long I've not been coding on minetest :P |
00:13 |
kahrl |
oh, since android support it seems, so I've seen it but not noticed it yet |
00:13 |
kahrl |
and the recent commit by sfan5 fixed some of it |
00:16 |
kahrl |
why does version.h include any other files at all? I specifically made it so it doesn't include anything else, to avoid this exact issue |
00:16 |
kahrl |
the includes are done in version.cpp instead |
00:16 |
kahrl |
s/are/should be |
00:18 |
kahrl |
but I don't know anything about android so I can't fix it |
00:30 |
kahrl |
VanessaE: https://github.com/minetest/minetest/pull/1550 |
00:30 |
kahrl |
I like one-liner fixes :) |
00:30 |
|
Zeno` joined #minetest-dev |
00:35 |
VanessaE |
kahrl: did you test it with some of the more....shall we say...esoteric ways to get deleted? :) |
00:35 |
kahrl |
such as? |
00:35 |
Zeno` |
what are these more erotic ways? |
00:35 |
Zeno` |
err nvm |
00:35 |
kahrl |
lmao |
00:37 |
VanessaE |
kahrl: like being deleted when the server decides it needs to delete "suspicious numbers" of objects in a mapblock :) |
00:37 |
kahrl |
no |
00:37 |
VanessaE |
Zeno`: get your mind out of the sewer, I already had to kick someone out of the server channel earlier ;) |
00:38 |
kahrl |
each of the esoteric ways probably needs its own fix |
00:39 |
VanessaE |
likely yeah |
00:39 |
kahrl |
we can't just disallow m_removed on player objects, because when a player disconnects there needs to be a way of removing the object |
00:40 |
VanessaE |
right |
00:42 |
Jordach |
if it's a playerSAO don't kill it |
00:42 |
kahrl |
are player objects really allowed to be made static? otherwise I don't get how the "suspiciously large" code could delete them |
00:43 |
VanessaE |
neither do I, but somehow it happens. |
00:44 |
VanessaE |
kahrl: https://github.com/minetest/minetest/issues/1425 |
00:45 |
kahrl |
oh, that's a different part of the code, let me check |
00:47 |
|
OldCoder joined #minetest-dev |
00:51 |
Zeno` |
What is the mod *wants* to remove the player object? |
00:51 |
Zeno` |
if* |
00:53 |
kahrl |
Zeno`: why would it? |
00:53 |
Zeno` |
Not sure. I guess, though, the API doc should have a comment that it doesn't work on player objects (just looking at the patch) |
00:54 |
kahrl |
true |
00:56 |
kahrl |
Zeno`: fixed |
00:58 |
kahrl |
VanessaE: what would be the easiest way to reproduce the "suspiciously large" issue? |
00:59 |
VanessaE |
kahrl: I haven't found any pattern to it except perhaps to force some mod to go apeshit and start creating thousands of entities. |
00:59 |
VanessaE |
possibly it's enough to make lots of gravel/sand fall? |
01:00 |
VanessaE |
(if that doesn't trigger a nodeupdate() overflow :P ) |
01:00 |
kahrl |
I tried it with item objects first, but RBA's merge code kicked in :) |
01:00 |
VanessaE |
heh |
01:01 |
VanessaE |
I think you'll have to do something more like modify simple mobs or similar to cause it to go out of control, let's say |
01:01 |
VanessaE |
(no, I don't use it) |
01:02 |
|
nore__ joined #minetest-dev |
01:02 |
|
nore_ joined #minetest-dev |
01:05 |
kahrl |
well or just go into minimal and run /dummyball 50 times |
01:05 |
|
nore_ joined #minetest-dev |
01:07 |
VanessaE |
dummyball? |
01:07 |
VanessaE |
that's a new one to me |
01:11 |
kahrl |
I can get the message "Trying to store id=..." no problem, but how can I get player SAOs into the problematic area when that happens? |
01:12 |
kahrl |
because if there are players there, the mapblocks should not get deactivated, and they aren't when I try it |
01:12 |
VanessaE |
only way I've found to reliably do it is to sign on already in the area. |
01:12 |
VanessaE |
e.g. somehow get the entities to be created, sign off, then sign back on |
01:12 |
kahrl |
ah |
01:12 |
kahrl |
let me test that |
01:12 |
VanessaE |
you join into the overloaded mapblock and kaboom |
01:12 |
VanessaE |
problem of course is reliably overloading a mapblock |
01:13 |
kahrl |
well, it's trivial with /dummyball |
01:13 |
kahrl |
oh wait |
01:13 |
VanessaE |
? |
01:13 |
kahrl |
it deleted the PlayerSAO! yay! |
01:13 |
VanessaE |
:D |
01:14 |
kahrl |
(without reconnecting) |
01:14 |
VanessaE |
finally found a way to reproduce it |
01:14 |
kahrl |
well I'm not sure what I did |
01:14 |
kahrl |
the player that got disconnected was in a completely different area of the map when it happened |
01:15 |
Zeno` |
<kahrl> well I'm not sure what I did <-- that's always encouraging :D |
01:16 |
kahrl |
yeah, isn't it? :) |
01:16 |
VanessaE |
kahrl: welcome to the obscurity of this glitch |
01:28 |
* VanessaE |
watches kahrl blow a vein over this one ;) |
01:31 |
kahrl |
heh |
01:32 |
kahrl |
well, I can't reproduce it :( |
01:33 |
kahrl |
but I noticed that when a player logs out, the server sometimes doesn't recognize that and the player stays until timeout |
01:33 |
kahrl |
very annoying for this test :P |
01:35 |
VanessaE |
yes, I've noticed that too. |
01:35 |
VanessaE |
(the failed logout) |
01:37 |
kahrl |
any ideas? when did it start to happen? |
01:39 |
kahrl |
I'm reluctant to open another issue given the number we have now :/ |
01:42 |
VanessaE |
it's been happening since ShadowNinja's commit. |
01:42 |
Zeno` |
irrlicht shaders are weird; they appear to leak memory but I'm not sure if they really do |
01:42 |
VanessaE |
well the deleted-player issue has been; the failed logouts? I don't know when those started. |
01:43 |
kahrl |
Zeno`: they do |
01:43 |
kahrl |
it's impossible to delete materials without shutting down irrlicht entirely iirc |
01:43 |
Zeno` |
so it's an upstream problem? |
01:43 |
kahrl |
yeah |
01:43 |
Zeno` |
ah, ok, I see now |
02:01 |
Zefram_Fysh |
re missed logouts, it looks to me that there's no attempt in the code to communicate leaving reliably. it's not treated as a game message, it's only detected as connection closing, and the connection protocol only sends an unreliable-packet notification of disconnection |
02:02 |
Zefram_Fysh |
so if the packet gets dropped, the client thinks it's done but the server has no idea that the client has gone away |
02:03 |
|
nore_ joined #minetest-dev |
02:05 |
|
swaaws joined #minetest-dev |
02:07 |
kahrl |
Zefram_Fysh: indeed |
02:08 |
kahrl |
what curious about it is that it even happens on localhost |
02:08 |
kahrl |
what's* |
02:08 |
Zefram_Fysh |
yes, that is curious |
02:08 |
kahrl |
I'm looking at wireshark right now and there is no DISCO packet |
02:08 |
Zefram_Fysh |
apparently loopback networking is quite a faithful simulation of wired networking |
02:08 |
kahrl |
heh |
02:09 |
kahrl |
the client responds with ICMP port unreachable after it has quit, but the server apparently doesn't care about that |
02:09 |
Zefram_Fysh |
hrm |
02:11 |
Zefram_Fysh |
the server *could* pay attention to the ICMP error and infer a client disconnection, but that in itself is not reliable, and using it would rule out some kinds of session recovery |
02:13 |
kahrl |
the problem with sending DISCO packets reliably is that the Connection object is deleted as soon as the client exits |
02:13 |
kahrl |
and there is nobody else around who could resend that packet |
02:13 |
Zefram_Fysh |
I think leaving the game should be treated as a positive game action, with reliable delivery of a TOSERVER_QUIT message. that'd cover clean quitting. if the user just kills the client program then you don't get the notification, but you can't really do anything about that case |
02:14 |
kahrl |
that'd be quite annoying for the user though |
02:14 |
kahrl |
since so many servers are extremely laggy, you don't want to wait another half a minute or so when you just want to quit |
02:15 |
Zefram_Fysh |
yes, an extra round-trip pause. but you could fork off a process to handle the quit notification in the background |
02:15 |
kahrl |
sounds like fun :P |
02:15 |
kahrl |
how'd you do it on windows? |
02:15 |
Zefram_Fysh |
this is what we get for not using TCP |
02:16 |
Zefram_Fysh |
oh, no idea about Windows. ask someone who codes for it. there *are* ways to arrange background processing, but they're quite different from Unix |
02:16 |
kahrl |
there'd be people going like "I exited minetest, why is there still a minetest.exe in task manager? What is this malware?!?!111" |
02:17 |
Zefram_Fysh |
yeah, probably |
02:18 |
kahrl |
I'd say make the server respond to ICMP errors, that's the nearest approximation to the correct thing |
02:19 |
kahrl |
(that is not annoying for the user) |
02:19 |
Zefram_Fysh |
it's a bandaid on the current basically-wrong system. I think the correct thing is to implement our own reliable notification |
02:20 |
VanessaE |
oh nice. here's a new one: |
02:20 |
VanessaE |
terminate called after throwing an instance of 'SerializationError' |
02:20 |
VanessaE |
what(): String too long for serializeString |
02:20 |
VanessaE |
(crashed) |
02:20 |
Zefram_Fysh |
and you'd be amazed how many networks just don't transport ICMP packets |
02:20 |
kahrl |
VanessaE: stop it with your bugs :P |
02:21 |
VanessaE |
and...kaboom |
02:21 |
VanessaE |
twice in a row |
02:22 |
kahrl |
Zefram_Fysh: if I designed it from scratch, I'd use TCP for session management and reliable messages and UDP for the rest |
02:22 |
Zeno` |
a string > 65535 characters... nice |
02:22 |
VanessaE |
nyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyany |
02:22 |
VanessaE |
anyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyan |
02:22 |
VanessaE |
yanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanya |
02:22 |
VanessaE |
nyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyany |
02:22 |
VanessaE |
anyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyanyany |
02:22 |
VanessaE |
FUCK |
02:22 |
VanessaE |
well there's your answer |
02:22 |
VanessaE |
sorry, didn't know it would do THAT |
02:23 |
Zeno` |
so a string > 65535 repeating nyan |
02:23 |
Zeno` |
maybe it has a furball |
02:23 |
VanessaE |
so it appears. |
02:23 |
VanessaE |
it's in a signs_lib sign |
02:24 |
VanessaE |
making a routine piece of metadata |
02:25 |
kahrl |
wait, doesn't that use serializeLongString? |
02:25 |
kahrl |
yes it does |
02:25 |
VanessaE |
kahrl: apparently not. the code: https://github.com/VanessaE/homedecor_modpack/blob/master/signs_lib/init.lua#L478 |
02:26 |
Zeno` |
well, it can't either because serializeLongString() doesn't throw that error :P |
02:27 |
VanessaE |
what is the solution here? |
02:27 |
VanessaE |
the text is already there of course, so it's too late to truncate the input |
02:28 |
VanessaE |
maybe I can just crop it on readback when it reconstructs the sign. |
02:28 |
hmmmm |
phew |
02:28 |
hmmmm |
back |
02:28 |
VanessaE |
wb |
02:29 |
|
^v joined #minetest-dev |
02:29 |
hmmmm |
was away all week |
02:29 |
kahrl |
VanessaE: how did it even save the metadata to the map when it can't serialize it |
02:29 |
VanessaE |
kahrl: beats the hell out of me :P |
02:31 |
kahrl |
can you set a breakpoint on the line that throws that exception and get a backtrace? |
02:32 |
VanessaE |
I haven't the foggiest clue how to do set a breakpoint, but I can backtrace it at least. |
02:32 |
kahrl |
in gdb? |
02:32 |
kahrl |
"break util/serialize.cpp:36" or something like that |
02:33 |
Exio4 |
VanessaE is a spammer |
02:33 |
* Exio4 |
bans VanessaE |
02:34 |
VanessaE |
eh, you would say that now, after I already loaded it to gdb :) |
02:34 |
VanessaE |
(read: it's already running) |
02:35 |
kahrl |
well you can always pause it |
02:35 |
VanessaE |
too late, already crashed it. want the bt anyway? :) |
02:35 |
kahrl |
sure, no worries :) |
02:35 |
VanessaE |
thread apply all ? |
02:35 |
kahrl |
yeah |
02:36 |
VanessaE |
hm, that's not the command. |
02:36 |
VanessaE |
been too long since I ran that. :P |
02:36 |
kahrl |
thread apply all bt full |
02:36 |
kahrl |
(or without the full) |
02:37 |
|
^v joined #minetest-dev |
02:37 |
VanessaE |
got it. |
02:38 |
VanessaE |
http://pastebin.com/vkHu3ACS |
02:38 |
VanessaE |
(long) |
02:39 |
kahrl |
0x000000000059c6c4 in ObjectProperties::serialize |
02:39 |
kahrl |
so it's not node metadata, at least not directly |
02:39 |
VanessaE |
it's the entity. |
02:40 |
VanessaE |
the one the sign bears with the text on it |
02:40 |
VanessaE |
that explains why the text can render before the server dies |
02:40 |
kahrl |
the string that is too long is an insanely long texture name |
02:40 |
VanessaE |
yes |
02:40 |
VanessaE |
all those ^[transform etc etc commands |
02:40 |
VanessaE |
ok I can trim this in my code then |
02:41 |
VanessaE |
but that suggests the server has a ... weakness ;) |
02:41 |
|
Miner_48er joined #minetest-dev |
02:44 |
kahrl |
what happened to the idea of a ^[data modifier that reads a base64-encoded PNG? |
02:44 |
kahrl |
or something along those lines |
02:44 |
VanessaE |
wouldn't work here |
02:44 |
kahrl |
why not? |
02:44 |
VanessaE |
this is realtime interpreting of the text input. |
02:44 |
VanessaE |
local function make_infotext(text_in) |
02:44 |
VanessaE |
local len = strng.len(text_in) |
02:44 |
VanessaE |
local text = string.sub(text_in, 1, math.floor(512, len)) |
02:44 |
VanessaE |
that ought to fix it? |
02:44 |
VanessaE |
er, string.len(). |
02:45 |
kahrl |
what does math.floor do with two arguments? |
02:45 |
kahrl |
oh, math.min |
02:45 |
VanessaE |
oops |
02:45 |
VanessaE |
right, I meant that one |
02:45 |
VanessaE |
not math.floor |
02:46 |
VanessaE |
derp |
02:46 |
kahrl |
but the infotext isn't the problem, right? |
02:46 |
VanessaE |
I'll apply it to both |
02:46 |
kahrl |
that should work, yeah |
02:47 |
|
Eater4 joined #minetest-dev |
02:54 |
VanessaE |
ok let's see if that gets around that bug |
02:55 |
VanessaE |
nope. it go boom. :) |
02:55 |
VanessaE |
but that's ok, I'll figure it out. |
02:55 |
kahrl |
how does the entity construct its texture name when it is loaded? |
02:55 |
VanessaE |
still, does this qualify as my bug or the engine's? ;) |
02:55 |
kahrl |
a WONTFIX engine bug :P |
02:55 |
VanessaE |
it's loaded from the text in the meta and ripped apart one char at a time, then the texture "filename" is built up from that |
02:56 |
kahrl |
maybe 512 is still too long |
02:56 |
VanessaE |
oh I see why |
02:56 |
VanessaE |
forgot to account for the on_activate callback. |
03:12 |
|
kaeza joined #minetest-dev |
03:44 |
VanessaE |
ok, fixed it. |
03:46 |
Zeno` |
should I be worried? I don't want to clearobjects again |
03:46 |
VanessaE |
nope |
03:46 |
VanessaE |
just update... noe |
03:46 |
VanessaE |
now(* |
03:46 |
VanessaE |
... |
03:49 |
VanessaE |
fwiw, https://github.com/VanessaE/homedecor_modpack/commit/03902e5392a10c046123314472a16c8a2787ccf2 |
03:50 |
VanessaE |
ultimately, that break on line 374 is what fixed it, but the trim is still needed as an extra layer of protection against stupid users. |
03:51 |
VanessaE |
s/users/abusers/ |
04:18 |
kahrl |
I've tried it several hundred times now, but I could only reproduce #1425 that one time |
04:24 |
VanessaE |
it's tricky to reproduce :) |
04:56 |
|
^v joined #minetest-dev |
05:47 |
|
casimir joined #minetest-dev |
05:49 |
|
Hunterz joined #minetest-dev |
06:21 |
|
sapier joined #minetest-dev |
06:30 |
sapier |
kahrl Zefram_Fysh the disco message was sent reliably in my first version of protocol fix, celeron did veto as that did delay localhost shutdown for him for a few seconds, that's why disco is now sent unreliable and additionaly connection timeout is decreased to to a subsecond value ... resulting in a quite high chance disconnect message isn't actually sent |
06:31 |
sapier |
you do get a clean shutdown without those changes ... yet it may result in client hang for some seconds on errorneous servers |
06:31 |
Zefram_Fysh |
ah, thanks, that explains it |
06:33 |
sapier |
most likely the disco is sent correct if there's not much to talk for client and server but once there's a lot of traffic disco packet will not manage to get sent |
06:34 |
sapier |
kahrl ... I already do have a tcp/udp mixed implementation ... it never got merged |
06:35 |
kahrl |
maybe in 0.5? |
06:35 |
sapier |
because of noone did evaluate if the protocol mix is really better then using an external protocol e.g. enet |
06:35 |
kahrl |
hmm, I see the disco packet goes through the outgoing queue |
06:35 |
sapier |
you don't need 0.5 for it as it can be done backward compatible |
06:35 |
kahrl |
maybe it could bypass this queue? |
06:36 |
sapier |
so we could add tcp support in one version and drop udp next |
06:36 |
kahrl |
ah |
06:36 |
sapier |
bypassing lower layer internals ... are you serious ;-) |
06:37 |
sapier |
you'd still not have a guarantee for it to be sent |
06:37 |
kahrl |
why not? |
06:37 |
sapier |
unless you send it completely on your own ... which is quite insane as of design perspective |
06:38 |
kahrl |
or just assign it the highest priority, if that's possible |
06:38 |
sapier |
well to be more exact, you still wont have a guarantee for it to reach server |
06:38 |
kahrl |
yeah, but what I was seeing that even on localhost it sometimes isn't even sent |
06:39 |
sapier |
especially localhost is supposed to not send it |
06:39 |
kahrl |
huh? |
06:39 |
kahrl |
you mean singleplayer? |
06:39 |
sapier |
singleplayer and multiplayer server |
06:39 |
kahrl |
yeah, but a second minetest instance connecting to a minetest server on localhost |
06:40 |
kahrl |
I only got disco packets about half the time in this scenario |
06:40 |
sapier |
yes as it's sent unreliable protocol doesn't really care about it beeing sent |
06:41 |
sapier |
switch it to reliable and it's gonna be sent for sure ... at cost of shutdown delay |
06:41 |
sapier |
for what I remember we don't even flush the send unreliable send queue on shutdown |
06:42 |
kahrl |
just replace sendAsPacket with rawSendAsPacket |
06:42 |
kahrl |
? |
06:43 |
sapier |
then a disco might be sent prior reliables to be sent |
06:43 |
kahrl |
does that really matter? |
06:43 |
sapier |
of course |
06:44 |
sapier |
reliables are sent on shutdown |
06:44 |
sapier |
if you send the disconnect prior them to be sent you may loose the last changes |
06:44 |
kahrl |
but if the disco packet is unreliable anyway how does the current code ensure this? |
06:45 |
sapier |
unreliables are always sent after reliable packets |
06:45 |
kahrl |
hmm |
06:45 |
sapier |
but as you mention there might be a whole in there true |
06:46 |
sapier |
e.g. if a reliable packet is lost |
06:46 |
sapier |
still inverting priority will increase risk |
06:47 |
sapier |
unless we delay the disconnect until all reliables are sent ... well ... more safe but almost a guarantee for disconnect to be lost |
06:47 |
sapier |
basically the only sane way is making disconnect a reliable packet |
06:48 |
kahrl |
or use TCP and make the kernel deal with this :) |
06:49 |
sapier |
what would be the difference to making it a reliable packet? ;-P |
06:49 |
kahrl |
if it's a reliable packet you have to keep the old Connection running until the disco is acknowledged |
06:49 |
sapier |
same for tcp |
06:50 |
kahrl |
yeah, but the kernel does that in the background for you |
06:50 |
sapier |
true |
06:51 |
kahrl |
at least you can configure it that way, never really played with the linger options etc. |
06:51 |
sapier |
well as I said I already did implement that variant by now it wasn't agreed on it because noone did evaluat if other protocols might be equal without having to add a second port to firewall |
06:51 |
Zefram_Fysh |
when doing it ourselves on UDP, we could background the closure, just have to do it explicitly |
06:52 |
sapier |
I tried to evaluate it against enet ... but at least by that time enet internal statistics where skrewed up and did result in unbelievable values ... e.g. not even a us jitter |
06:53 |
|
Calinou joined #minetest-dev |
06:53 |
sapier |
and guys ... don't we have more pressing problems then a lost disconnect packet which isn't even noticed by player? ;-) |
06:55 |
kahrl |
well, I noticed it ;) |
06:55 |
sapier |
you're a developer not a player ;-P |
06:55 |
kahrl |
but you are right, I didn't even want to create an issue on github for this |
06:56 |
Calinou |
being a developer and not a player isn't funny |
06:56 |
sapier |
developers have way bigger chance to notice as the do way mor frequent connect disconnect cycles |
06:56 |
Calinou |
it's how you end up with gameplay regressions, sometimes happening due to engine changes. |
06:57 |
sapier |
Calinou: sometimes we can't avoid to change things but it's something we try not to do to often |
06:57 |
sapier |
#1547 seems to be way more relevant then the lost disco |
06:57 |
Calinou |
changing isn't bad, but having unfixable gameplay regression isn't |
06:57 |
Calinou |
eg. jumpable = false doesn't work anymore |
06:58 |
Calinou |
bouncy makes you bounce too high when holding jump key |
06:58 |
sapier |
that's most likely not a intended change did you write a issue yet? |
06:59 |
Zeno` |
I looked at #1547 today and couldn't reproduce (probably because I don't have windows hah) |
06:59 |
kahrl |
when did jumpable = false/true do anything, and what? |
06:59 |
kahrl |
I don't remember that |
06:59 |
sapier |
argh ... since when does github log each label change even those you correct immediatly because you did miss the right one? |
07:02 |
kahrl |
Zeno`: I guess he is using the 32-bit build and it fails after it has eaten the available address space |
07:03 |
kahrl |
but I don't use windows either, so idk |
07:03 |
Zeno` |
I don't think it should use that much RAM right at start though |
07:03 |
Zeno` |
although I get your point... hmm |
07:03 |
sapier |
depends on texture pack used |
07:04 |
sapier |
at least if "start" means login |
07:05 |
Zeno` |
yes, login is what I meant. I know that's when the issue was happening "not long after login" because I was watching the discussion on another network :) |
07:05 |
Calinou |
kahrl, it's a group, prevented jumping while standing on the node with the group |
07:05 |
Calinou |
useful for eg. cushions |
07:05 |
Calinou |
ah, it's disable_jump |
07:06 |
sapier |
if we did now about a hdx texture pack beeing used we'd have a possible reason for it to happen as it's quite easy to fill up 2gb of ram with those |
07:07 |
Zeno` |
it'd be nice to have a bt but by the time I realised what the conversation was about qwrwed had left |
07:07 |
Zeno` |
plus I don't know how I'd get him to supply a bt from windows anyway |
07:08 |
Calinou |
GitHub logs label changes since 2 weeks ago |
07:08 |
sapier |
as irrlicht doesn't support compressed textures we use a lot of memory for them thus hdx packs are basically unusable on 32 bit version ... well as almost noone has a 32 bit os nowadays that's low prio |
07:09 |
kahrl |
the 32-bit version is the only bold one on the download page, so I suspect most people use it |
07:09 |
sapier |
Calinou: if they didn't do it that prominent, e.g. by just adding a small line of text that feature would be actually usefull |
07:09 |
sapier |
kahrl: guess that's a error :-) |
07:10 |
sapier |
at least if the hdx packs are really reason for this bug |
07:10 |
Zeno` |
I've added their nick to my alert list |
07:10 |
Zeno` |
If I see them again tonight I'll ask |
07:11 |
Calinou |
probably shouldn't be logged if changed less than 24 hours after posting |
07:12 |
Zeno` |
Surely VE would have asked them if they were using HDX though (she was involved in the conversation) |
07:12 |
Zeno` |
*shrug* |
07:14 |
celeron55 |
> being a developer and not a player isn't funny > it's how you end up with gameplay regressions, sometimes happening due to engine changes. |
07:14 |
celeron55 |
i think taoki is more of a player than a developer |
07:14 |
celeron55 |
if you're referring to bouncy, that's who broke it :P |
07:15 |
celeron55 |
(afaik) |
07:15 |
Calinou |
me too |
07:29 |
|
PenguinDad joined #minetest-dev |
07:31 |
sfan5 |
sapier: the 32-bit version is in bold on the dl page because some people still use 32bit |
07:31 |
sfan5 |
and working but not optimal is better than not working at all+ |
07:31 |
sfan5 |
s/+// |
07:31 |
sapier |
if you know someone using a 32 bit os you'd be quite unpolite not to tell her/him to update immediatly |
07:32 |
sfan5 |
-> Krock |
07:32 |
sfan5 |
go ahead and try to convince him |
07:32 |
sfan5 |
;) |
07:32 |
sapier |
I assume he's using winxp? |
07:32 |
sfan5 |
yes |
07:33 |
sapier |
quite insane nowadays |
07:34 |
sfan5 |
maybe automatically detecting whether 32-bit or 64-bit would be good idea |
07:34 |
sapier |
why? |
07:34 |
sfan5 |
less thinking for users |
07:34 |
sapier |
it's a compile time decision we don't need to detect ;-) |
07:34 |
sfan5 |
uh |
07:34 |
sapier |
oh you're talking about webpage |
07:34 |
sfan5 |
yes |
07:35 |
sapier |
indeed good idea |
07:36 |
sapier |
https://github.com/minetest/minetest/pull/1457 ok to merge ? |
07:38 |
Calinou |
https://github.com/minetest/minetest/issues/1551 | https://github.com/minetest/minetest/issues/1552 → tag as bug for both |
07:39 |
Calinou |
thanks |
07:39 |
sfan5 |
sapier: looks good |
07:39 |
sapier |
btw if someone wants to fix sqlite I'll not stop her/him ;-) |
07:40 |
sapier |
but be warned sqlite code is far from simple :-) I didn't even find a point to start at when looking at it ... well at least not within reasonable time |
07:40 |
Calinou |
https://github.com/minetest/minetest/issues/1549 → if it isn't a bug, why isn't it closed? |
07:41 |
Calinou |
also, how are you supposed to get back in main menu? |
07:41 |
Calinou |
(does it quit the game, or leave you with blank background?) |
07:41 |
sapier |
it leaves game |
07:41 |
sapier |
it's doubleclick formspec exit added for android |
07:42 |
Calinou |
yes, but for desktop it could be confusing |
07:42 |
Calinou |
shouldn't apply to main menu on desktop, only other formspecs |
07:42 |
sfan5 |
why other formspecs? |
07:42 |
Calinou |
we have Alt + F4, Escape and the X button to close already on desktop :P |
07:42 |
Calinou |
sfan5, to quit them without using keyboard |
07:42 |
sapier |
there's no difference between mainmenu and "other" formspecs ;-P |
07:42 |
sfan5 |
It should be completly disabled on desktop |
07:43 |
sapier |
it's quite simple to add a setting just noone mentioned this to be an issue prior 0.4.11 ... and it's been in there for months at that time |
07:44 |
sfan5 |
Calinou: and who exactly _needs_ that? |
07:44 |
sapier |
android |
07:44 |
sfan5 |
no |
07:44 |
sapier |
yes |
07:44 |
sfan5 |
on desktop |
07:44 |
Calinou |
people who can't touch keyboard for any reason |
07:44 |
Calinou |
eg. busy hand |
07:44 |
Calinou |
it's cool if you can perform an action with both devices, not only just keyboard or mouse |
07:44 |
sapier |
well if there's a setting both of you can be happy ;-P |
07:45 |
sfan5 |
just add a setting |
07:45 |
sapier |
default to false (no double click exit) and true on android |
07:45 |
kahrl |
I don't want so many settings |
07:45 |
sfan5 |
*sigh* |
07:45 |
sapier |
well I prefere a setting to a ifdef |
07:45 |
kahrl |
can we add a setting so I can disable there being a setting for this? |
07:46 |
sfan5 |
that sounds like a good idea |
07:46 |
sapier |
we already have way to many android specific ifdefs spread around code they should be in port layer only but that's not possible by now |
07:47 |
Calinou |
settings are coo |
07:47 |
Calinou |
you don't have to expose all of them in GUI |
07:47 |
Calinou |
but do keep settings |
07:47 |
Calinou |
see how Xonotic does it |
07:47 |
sapier |
well this one won't be exposed on gui for sure |
07:47 |
Calinou |
customization (Xfce) is more popular than lack of customization (GNOME 3) |
07:48 |
sapier |
but having a look at about:config in firefox makes our amount of settings feel way more small ;-) |
08:10 |
kahrl |
sapier: can the includes in version.h be moved to version.cpp? |
08:17 |
casimir |
I just thought that there is some bug crashing the game. When it is intentional then it is no problem at all. |
08:19 |
Calinou |
what did you do to crash it, casimir? |
08:21 |
casimir |
It did not crash, I thought the exiting was a crash. |
08:28 |
|
Jordach joined #minetest-dev |
09:05 |
|
alexxs joined #minetest-dev |
09:25 |
|
Krock joined #minetest-dev |
09:59 |
Taoki |
[10:11:44] <celeron55> i think taoki is more of a player than a developer |
09:59 |
Taoki |
I'm kinda both, I think. I do a little of each, but I think the most time I've spent on Minetest recently was to work on mods. |
10:02 |
Zefram_Fysh |
sapier et al: http://paste.scsys.co.uk/414613 [PATCH] Preserve node predictions until server catches up -- also available as git://git.fysh.org/zefram/minetest/minetest_engine.git branch zefram/prediction_preservation |
10:02 |
Calinou |
well, you caused at least 3 bugs with your physics changes :P |
10:02 |
Calinou |
none of these have been fixed |
10:29 |
|
grrk-bzzt joined #minetest-dev |
10:29 |
|
grrk-bzzt joined #minetest-dev |
10:39 |
Zeno` |
Can '-' be prohibited from being the first character of a playername? |
10:39 |
Zeno` |
it's kind of annoying |
10:39 |
|
ImQ009 joined #minetest-dev |
10:39 |
|
PilzAdam joined #minetest-dev |
10:40 |
Zeno` |
how do I rm those usernames anyway? (those starting with '-')? |
10:43 |
kahrl |
Zeno`: rm -- -username |
10:43 |
|
casimir joined #minetest-dev |
10:43 |
Zeno` |
thank you |
10:44 |
Zeno` |
that '-' makes things difficult |
10:44 |
Zeno` |
maybe it should be disallowed as the first char of a username? |
10:45 |
kahrl |
what about the legitimate players who already have such a username? |
10:45 |
Zeno` |
not sure |
10:45 |
Zeno` |
rm them :) |
10:45 |
PenguinDad |
Zeno`: you could use a modified version of forbidden_usernames to disallow these names |
10:45 |
Zeno` |
PenguinDad, good point |
11:30 |
Zefram_Fysh |
"rm ./-foo" is the even better way to handle a filename beginning with "-". tools vary in how they process "--", but everything handles "./-foo" |
11:52 |
|
Amaz joined #minetest-dev |
12:32 |
|
Amaz joined #minetest-dev |
12:32 |
|
Amaz joined #minetest-dev |
13:17 |
|
Krock joined #minetest-dev |
13:33 |
|
Eater4 joined #minetest-dev |
13:53 |
VanessaE |
sapier: I guess I should have warned you that Zefram_Fysh will pursue a line of thought to its logical conclusion ;-) |
13:53 |
VanessaE |
(which is a good thing) |
14:06 |
|
Ritchie joined #minetest-dev |
14:34 |
|
Amaz joined #minetest-dev |
14:34 |
|
Amaz joined #minetest-dev |
14:39 |
|
proller joined #minetest-dev |
14:39 |
|
Calinou joined #minetest-dev |
14:59 |
sapier |
kahrl I don't know if those includes can be moved bu why is version.h included that often? |
15:04 |
sapier |
Zefram_Fysh: could you do a poll request for this as I have to comment multiple things |
15:04 |
Zefram_Fysh |
I can't create a github pull request |
15:04 |
sapier |
ok then the painfull way |
15:05 |
sapier |
you can't just skip TOCLIENT_REMOVENODE as those could be issued by another client |
15:06 |
Zefram_Fysh |
do clients ever actually talk direct to each other? I don't see any code that would do that |
15:06 |
sapier |
no but their changes could be sent that way |
15:06 |
sapier |
e.g you dig a node, you don't get an update because it's successfull |
15:07 |
sapier |
right after it another client places that node |
15:07 |
Zefram_Fysh |
oh indeed, this system is not specific about why the node was removed |
15:07 |
sapier |
if you just ignore it it's lost |
15:08 |
sapier |
you should just let addnode and removenode do what they do I'm not sure if they're compatibility anyway |
15:08 |
Zefram_Fysh |
I don't think it's lost: ignoring it implies that this client did a dig attempt, which the server will shortly process and won't it send an update after that? |
15:10 |
sapier |
the add node could be triggered by another client |
15:11 |
sapier |
yes if your dig is successfull you wont get a immediate reply |
15:12 |
Zefram_Fysh |
I'll look into that |
15:12 |
sapier |
why do you increment action sequence for things not beeing actions at all? |
15:13 |
sapier |
don't try to create another packet sequence number |
15:15 |
sapier |
don't drop actions if your buffer is full but do a clean disconnect ... it's not supposed to happen so you do error hiding if you drop them |
15:16 |
sapier |
last_action_seq why last and not next or n-a ... just call it action_seq |
15:16 |
Zefram_Fysh |
I'm liberal about which kinds of action get counted because it would be painful to change it later if we later have predictions that need to be tied to a different type of action. I already spotted another kind of prediction to which I'd like to apply the same logic, using the same action sequence number: the client can declare damage, and this damage can be temporarily not shown if there's a race with an HP update from the server |
15:17 |
sapier |
client->last_action_seq = 0; that's crap a class always is supposed to initialize it's members on it's own |
15:17 |
Zefram_Fysh |
the set of packet types that gets counted is not at all arbitrary. it's all the in-game actions (whether directly on nodes or not) that is sent reliably |
15:18 |
Zefram_Fysh |
last_action_seq does get initialised in the constructor, but in case of packet sequences that don't yet occur I decided that INIT2 definitively resets the sequence number |
15:19 |
Zefram_Fysh |
the buffer does get `full' in normal use, because entries don't get expired. this is not a way to detect loss of communication |
15:19 |
sapier |
I don't like this specific feature to be spread that far that increases risk someone forgets it drastically |
15:20 |
sapier |
getClient(peer_id)->last_action_seq is quite dangerous as you can't be sure there's not 0 returned |
15:20 |
Zefram_Fysh |
"last" action_seq on the basis that each action has one sequence number and the server is only tracking the number of the last action it saw |
15:22 |
Zefram_Fysh |
other parts of the code are relying on getClient returning a non-null pointer. are you concerned about the min_state thing? that would be a reason to revise those |
15:23 |
sapier |
other parts in same function or at locations where existance is guaranteed by other things? |
15:23 |
Zefram_Fysh |
I don't understand your comment "I don't like this specific feature to be spread that far that increases risk someone forgets it drastically". what spread where? what risk? |
15:24 |
Zefram_Fysh |
same function, but it's a monster |
15:24 |
sapier |
if you increment the number on server but forget on client once you're done |
15:24 |
sapier |
having 100 location where counting up and down is almost a sure to forget one by some time |
15:25 |
sapier |
and the only way you'd notice this is filling up your ringbuffer ... you're gonna get mad on looking for that error |
15:25 |
Zefram_Fysh |
staying synched is critical, but turns out to be dead simple. but I see the maintainability concern. maybe centralise it with a bitmask on command codes? |
15:26 |
sapier |
no it's not dead simple if it's not two locations 1 counting up 1 counting down ... any other variant is far from simple |
15:26 |
sapier |
imho you shouldn't count up on client at all you don't need a client side counter |
15:26 |
Zefram_Fysh |
the failure mode would not be filling the buffer, as it's normally full. I think the failure mode would be the original glitch returning, or predictions persisting too long, depending on which side is counting more |
15:27 |
sapier |
effect is same you don't actually see the error for quite some timne |
15:28 |
Zefram_Fysh |
both sides need to be aware of the sequence numbers for the packets the client sends. that's their purpose. so both sides need to count, if the sequence numbers are implicit. the more robust option is for the client to generate and *send* sequence numbers; would you prefer that? |
15:28 |
sapier |
if there's a way to avoid doing things "in sync" then do it this way ... having to do things symmetric usually fails |
15:28 |
sapier |
either client or server is supposed to count not both |
15:29 |
sapier |
the one not counting should just mirror the last number known to him |
15:29 |
Zefram_Fysh |
if only one side counts then it has to send the numbers explicitly. and in this case it has to be the client |
15:30 |
sapier |
you already do send the numbers |
15:31 |
Zefram_Fysh |
the numbers are currently only sent for the server to refer back to earlier actions. I'm referring here to establishing the numbers referring to actions in the first place |
15:31 |
sapier |
btw counting up for commands sent with different prioritys will mess up your numbers |
15:32 |
sapier |
mirror them ... better send 2 bytes then adding a synchronisation nightmare |
15:32 |
Zefram_Fysh |
ah, interesting. does the client send with multiple priorities? I thought only the server did that |
15:32 |
Zefram_Fysh |
the client does send a couple of things unreliably, but those don't get sequence numbers in this scheme |
15:33 |
sapier |
even if it's not the case right now there's not a guarantee that may not change in future |
15:33 |
sapier |
it's quite inconsistent to assume a client may never use all features the protocol provides |
15:34 |
Zefram_Fysh |
hmm. actions getting reordered sounds like it would screw up gameplay. I think we can't possibly change that for the kind of action that's relevant here |
15:34 |
sapier |
no it wont as chat messages for example may not be as important as dig commands |
15:35 |
sapier |
just to name one reason why some actions could be more important then others |
15:35 |
Zefram_Fysh |
chat commands can have semantic effects; ordering relative to digging could matter |
15:35 |
sapier |
no |
15:35 |
sapier |
chat is chat and is not supposed to change the map |
15:36 |
Zefram_Fysh |
what's the command facility then? it seems to be mixed up with chat |
15:36 |
sapier |
true but that too could change in future ... don't rely on things just because it's comfortable for your current task |
15:37 |
Zefram_Fysh |
anyway, if the client sends sequence numbers explicitly, it only needs to do that for packets on which it bases predictions, and it only needs to ensure sequencing of those packets. so not really a problem |
15:37 |
sapier |
protocol provides 3 channels with different prioritys you have to deal with this |
15:37 |
sapier |
I didn't say it's a big problem, it's just to be considered |
15:38 |
Zefram_Fysh |
so, sure, I can reformulate it with explicit sequence numbers |
15:38 |
Zefram_Fysh |
I take it you think revising this is worthwhile |
15:39 |
sapier |
next thing you shouldn't fill up your prediction queue on being connected to an old server at all |
15:39 |
Zefram_Fysh |
hmm? |
15:39 |
sapier |
if you are connected to an old server you don't get any sequence numbers back thus you just fill your queue with unpredictable result |
15:40 |
Zefram_Fysh |
by "old server" you mean a server that's not responding? |
15:40 |
sapier |
most simple example once your client connects to current stable server |
15:41 |
Zefram_Fysh |
oh, that. in that case the buffer is written as usual, but never examined. as there's no dynamic memory allocation, it's a non-issue |
15:42 |
Zefram_Fysh |
the prediction preservation isn't applied if the server doesn't return sequence numbers |
15:43 |
Zeno` |
there are some very funny things in the MT source code :) |
15:43 |
Zeno` |
https://github.com/minetest/minetest/blob/master/src/debug.h#L77 |
15:43 |
sapier |
well for what I see there's no limitation in evaluation of TOCLIENT_BLOCKDATA |
15:43 |
Zeno` |
the "culprit" is not leveldb, it's MT using assert incorrectly |
15:44 |
sapier |
even if it was there's no reason to fill a useless buffer still doing a lot of memory operations even if it's not a allocation/deallocation you could trigger pagefaults |
15:44 |
Zeno` |
I guess it keeps me amused at least |
15:44 |
Zefram_Fysh |
the replaying in blockdata doesn't happen if the server didn't give a sequence number. the readU16(istr) generates a SerializationError. the control flow isn't brilliantly obvious there; I guess it could use a comment |
15:45 |
sapier |
great so you trigger a try/catch on each update ... |
15:45 |
Zefram_Fysh |
heh. I first wrote it with a non-exception way of detecting the sequence number, but rewrote it to match similar logic elsewhere |
15:46 |
sapier |
try catch is for errors not for regular operation ... I know it's used that way in minetest sometimes but we try to get rid about it |
15:46 |
Zefram_Fysh |
the original was "if(istr.peek() != EOF) { ... }" |
15:46 |
sapier |
why not something like "if protocol version > x" |
15:47 |
Zefram_Fysh |
try/catch is used in other places to detect missing optional fields in packets, which is what this is. happy to change to explicit logic |
15:47 |
Zefram_Fysh |
ah, that's a funny one. the client doesn't actually know which protocol version is being used |
15:47 |
sapier |
others doing wrong is not an excuse for doing wron too ... especially as you have a packet sent in high frequency here |
15:48 |
Zefram_Fysh |
I wanted to make some of the client logic conditional on protocol version, but it's just not specified in any of the init packets. only the server knows |
15:48 |
sapier |
then make client detect absence of sequence number once and store it |
15:49 |
sapier |
and find a way to do a pull request ;-) others might find different issues on this too ;-) |
15:49 |
Zefram_Fysh |
can do that. or we could have a protocol revision that has the server tell the client explicitly, and make the whole thing conditional on that version |
15:50 |
sapier |
actually telling client about the chosen protocol version is even better ... do it that way |
15:50 |
Zefram_Fysh |
creating a pull request seems to strongly depend on having a github account, and I'm not agreeing to their terms. sometimes a friendly soul has created a pull request for my code; I have no control over it |
15:51 |
sapier |
then find a way to do it as I won't merge a change like that without a review |
15:52 |
sapier |
sorry Zefram_Fysh if you want to contribute to minetest you have to use the tools we use ... we do only have ONE single requirement |
15:52 |
sapier |
I can merge small fixes without a pull but not something spread throughout minetest |
15:53 |
Zefram_Fysh |
it would be unfortunate if your single requirement were to accept an evil contract. rather than being, say, to produce quality code |
15:53 |
sapier |
btw what exact part of their terms don't you like? |
15:55 |
Zefram_Fysh |
the main sticking point is that they say changes to terms become effective immediately when posted on their site, regardless of whether you've actually read or had any opportunity to read them. ostensibly you can't ever use github without accepting some unknown set of terms, whatever they've posted since the last time you looked |
15:55 |
sapier |
it's your personal opinion to consider it to be a evil contract ... I respect this but respect that others don't feel that way too ... I'm quite special to those terms too but sometimes you have to decide either be part of something or not ... to be a full member of minetest community you need to have a github account ... or at least have access to one somehow |
15:55 |
Zefram_Fysh |
gitorious, for example, avoids this problem by saying that new terms are effective after a month. so as long as you read the terms more than once a month, you can't be surprised by new terms |
15:56 |
sapier |
well did you ever check if those terms would even get into effect at all? e.g. in germany those parts of the terms would be just irrelevant |
15:57 |
Zefram_Fysh |
there is some unfair-contract-terms law in my jurisdiction, but github also has a choice-of-venue clause, and it would become an awful mess if it ever got to court. a US court couldn't unilaterally jail me, but it might manage to seize my assets |
15:58 |
Zefram_Fysh |
I do sometimes sign unfair contracts on the basis that I'm confident of striking down the bad terms if it ever gets to court. this case isn't sufficiently straightforward for that |
15:58 |
Calinou |
it's not really signing as in signing a real contract |
15:59 |
Calinou |
you're not even reading them most of the time ;) |
15:59 |
Calinou |
they won't treat it is a real contract, same applies to a court |
15:59 |
sapier |
still all minetest code is lgpl thus all you provide is open for anyone to (ab)use anyway |
15:59 |
Calinou |
GitHub is a random startup, remember |
15:59 |
Calinou |
if they start suing random innocent people, they'll end up poorly |
16:00 |
Zefram_Fysh |
my concern isn't about what happens to the code I contribute to minetest, it's about what else github might try to claim from me, which if they can change the terms arbitrarily could be nearly anything |
16:00 |
Calinou |
you do believe they'll seize stuff due to contributing to a free software project? |
16:00 |
sapier |
still as you obviously want to contribute more things and you do have good ideas you have to choose. Noone here will be your github secretary |
16:00 |
Calinou |
you can try contracting GitHub themselves to ask |
16:01 |
Zefram_Fysh |
I don't know what they'd try. but my impression of it is guided by the fact that they hired lawyers to write evil terms that let them try anything |
16:01 |
sapier |
And to be honest I don't blame anyone for not wanting to just copy your changes to github as that's addtitional work without any benefit |
16:02 |
|
alexxss joined #minetest-dev |
16:02 |
Zefram_Fysh |
I'm not joining github. if that means I'm not a full memeber of the minetest community, so be it. *you* have a choice about whether to accept my patches |
16:03 |
sapier |
there's nothing "evil" ppl just do what gives them most profit ... same thing is for github, as long as they benefit from open source they will support it once they don't they'll drop services ... quite simple |
16:03 |
Calinou |
remember that they benefit hugely from software hosted on *their* servers too |
16:03 |
Calinou |
they don't have gripes against the free software community |
16:03 |
Calinou |
not even the GPL-wielding people |
16:04 |
Zefram_Fysh |
indeed, they're motivated only by profit, so what will happen when they see a buck to be made from changing terms to, say, claim the copyright of everything written by all their users? |
16:04 |
sapier |
Zefram_Fysh: you can find another way to review your patches without forcing others to join other services |
16:05 |
Zefram_Fysh |
I'm not asking anyone to join any service. I used gitorious as an example of non-evil terms, that's all |
16:05 |
sapier |
where's the issue Zefram_Fysh minetest is released lgpl |
16:05 |
sapier |
they can't revoke the license for old versions |
16:05 |
sapier |
"old" beeing anything published |
16:06 |
Calinou |
they can't claim copyright |
16:06 |
sapier |
and once they'll try to change it for new things we commit we'll just not use their services any longer |
16:06 |
Calinou |
it doesn't work like that |
16:06 |
Calinou |
they can only ask for a license grant, and even then, such a term change may be deemed unfair and thus void by a court. |
16:07 |
sapier |
well they could write "any upload is transfering copyright to github" ... yet that wouldn't affect anything downloaded before using lgpl license |
16:07 |
Zefram_Fysh |
I'm not concerned about losing access to the code. I'm concerned about github using nasty terms to make life difficult in other respects. something that "may be deemed unfair" could involve a protracted court battle in a foreign jurisdiction |
16:08 |
sapier |
how should they do this ? if they did we just wouldn't use their services any longer ... right now "not using github" does make life more difficult then using it ;-) |
16:08 |
|
zat joined #minetest-dev |
16:08 |
Calinou |
they won't move you to another country to sue you – it doesn't work like that either in practice |
16:08 |
Calinou |
a term change can't make any of your actions illegal |
16:08 |
Calinou |
to most constitutions, the changes aren't retroactive |
16:09 |
sapier |
still I can't force anyone to do it, but I wont review patches the way I did today on regular base |
16:10 |
Zefram_Fysh |
they do claim US jurisdiction, and while I can't be forced to show up in a US court, failing to do so could result in the court ruling against me in whatever way github wants, and the court could potentially seize assets, due to the interconnectedness of the global financial systems |
16:10 |
sapier |
it's ok to do it every now and then ... while still beeing painfull |
16:10 |
Calinou |
they don't seize stuff due to how you use a Web service |
16:11 |
Calinou |
all they've did for now is DMCA stuff |
16:12 |
sapier |
for what I know if thy want to sue you they have to do this on your home |
16:12 |
Zefram_Fysh |
they can write ANYTHING into new terms. them going bad isn't limited to them getting a grudge about how I use the service |
16:12 |
sapier |
only if you want to sue them you have to do it in us |
16:13 |
sapier |
sorry Zefram_Fysh but to me it seems you've run into something |
16:14 |
Zefram_Fysh |
"run into something"? |
16:14 |
Calinou |
like mauvebic would call it, a circlejerk |
16:14 |
Zefram_Fysh |
? |
16:15 |
sapier |
don't know how to tell it correct in english, something like not really getting aware of proportions |
16:15 |
Zefram_Fysh |
you're suggesting that I'm parroting the ideas of some paranoid fool I found on the internet? I'm the paranoid one. unlike most people, I read contracts before signing them |
16:16 |
Calinou |
clicking “I agree“ meaning you're physically signing a piece of paper is dubious |
16:16 |
sapier |
the only thing you may risk there is your work on minetest no more no less |
16:16 |
sapier |
there won't be a us drone dropping bobs on your home |
16:16 |
Zefram_Fysh |
Calinou: physical signing is less relevant than you think to contract law |
16:17 |
sapier |
.... well you didn't have a way to prevent that anyway even without signing any contract ;-) |
16:17 |
Zefram_Fysh |
if you choose to decline my patches merely because I don't present them on github, that's your right. it'd be a sucky outcome, but that's up to you |
16:19 |
|
^v joined #minetest-dev |
16:20 |
Calinou |
does the patch really help? (about block prediction) |
16:20 |
Calinou |
proper servers don't ever have huge lag |
16:20 |
Calinou |
if server lags for more than 1-2 seconds often, then it sucks |
16:20 |
VanessaE |
Calinou: proper servers can have huge lag too |
16:20 |
|
zat joined #minetest-dev |
16:21 |
VanessaE |
even my Free-For-All and Vanilla do lately because of some bug in minetest_game |
16:21 |
Calinou |
ah, which kind of bug? |
16:21 |
Calinou |
due to ABMs? |
16:21 |
VanessaE |
beats me. |
16:21 |
VanessaE |
I haven't had time to investigate. |
16:21 |
VanessaE |
might just be network-related, might be in the engine, I don't know what |
16:22 |
VanessaE |
might be a mod, who the hell knows :P |
16:24 |
VanessaE |
Zefram_Fysh: for G*d sakes, just sign up on Github. They can't and won't do anything to fuck with you. |
16:24 |
VanessaE |
There is literally nothing they can do. |
16:24 |
VanessaE |
especially if you're not even IN the US in the first place. |
16:24 |
Zefram_Fysh |
I've only tested the patch on localhost, where the prediction-loss glitches were only brief, but it does remove them, producing an appreciably better result even in the low lag case. I made the patch because I've been seeing multi-second lag routinely with one of Vanessa's servers; I wouldn't say the server sucks |
16:25 |
Zefram_Fysh |
me signing up to github with its present terms is out of the question |
16:26 |
VanessaE |
*sigh* |
16:28 |
VanessaE |
sign up anonymously then |
16:28 |
Calinou |
I've asked him, he refuses |
16:28 |
Calinou |
even using totally different username and such |
16:28 |
VanessaE |
it's not like they even have to know who you are. |
16:28 |
Zefram_Fysh |
that's not the issue. anonymity wouldn't help |
16:28 |
VanessaE |
they CAN'T take you to court if they don't know who you are |
16:29 |
VanessaE |
their terms are completely unenforceable outside of US jurisdiction against an anonymous target for contributions that are themselves licensed in such a way that the license directly supersedes their contract. |
16:29 |
Zefram_Fysh |
not that I'd have any effective anonymity once I was posting code on the account. it'd be very easy to link it back to open aspects of my identity |
16:29 |
VanessaE |
they CANNOT do what you claim they can do. |
16:30 |
Zefram_Fysh |
I'm not claiming that they can cancel the GPL licensing of code already published. I'm claiming they can write arbitrary contract terms and make an at least partly viable legal case that their users are bound by them |
16:30 |
VanessaE |
no, they cannot. |
16:31 |
VanessaE |
not under US laws they can't. |
16:32 |
VanessaE |
if that were true, then the GPL/LGPL could just as easily be changed with similar language. |
16:32 |
Zefram_Fysh |
again with the GPL cancellation. red herring! |
16:32 |
VanessaE |
only a comparison, not a cancellation. |
16:33 |
Zefram_Fysh |
let me paint a more concrete and somewhat plausible scenario... |
16:34 |
VanessaE |
under US laws, they cannot put terms into a contract that are, themselves, in direct contradiction to other laws or which would be generally considered unacceptable to the general public. |
16:34 |
sapier |
the patch is a improvement for sure but at least the last variant is way to invasive compared to the benefit (my personal opinion) ... that's why we need a review |
16:35 |
Zefram_Fysh |
they could add a new term saying "user indemnifies github against all costs incurred in defending against any accusation of plagiarism or defamation arising in respect of content posted by user". I've actually had a term very similar to that proposed to me in a book publishing contract, which I turned down for this reason: it makes the user ostensibly responsible for unbounded costs arising from no actual fault of the user |
16:36 |
VanessaE |
false. they can't use a clause like that. |
16:36 |
VanessaE |
because no court would uphold such a clause - it would thrown out on its face as unconscionable. |
16:37 |
Zefram_Fysh |
this sort of term is near enough halfway reasonable, and might actually be upheld when used in a case when the user really was at fault. then someone sues them over me, they wheel out the expensive lawyers, and send me a bill. has to be fought |
16:37 |
VanessaE |
in the US, each party pays its own way, that's written into our law - you want the other party to pay for your costs, you have to explicitly SUE for those costs. |
16:37 |
VanessaE |
no sir. violation of US law. |
16:37 |
VanessaE |
try again. |
16:37 |
Zefram_Fysh |
would it be taken as unconscionable? there's certainly an argument to be made that way in the defence, but I don't think it's a pushover |
16:38 |
VanessaE |
that's why so many court cases include "court costs" as one of the things being sued for |
16:39 |
sapier |
Zefram_Fysh: if barack obama decides to declare you are a terrorist you can't even use us courts to defend yourself ... no matter in what country you live your life will be at risk |
16:39 |
Zefram_Fysh |
indemnities are generally valid kinds of contract terms |
16:39 |
VanessaE |
not here they aren't. Not when money is involved. |
16:39 |
VanessaE |
companies like to pretend they are |
16:40 |
VanessaE |
but those clauses rarely, if ever, actually work |
16:40 |
sapier |
as of american governmental pov anyone not beeing us citizen or beeing not within us borders is human second class at best |
16:41 |
Zefram_Fysh |
acts of state are a different risk. my favourite existential risk we can't do anything about is that anyone could be killed without warning by a meteorite strike. not a reason to avoid reducing the risks we can control |
16:42 |
VanessaE |
Zefram_Fysh: you have a bigger risk of dieing in a car accident than anything from github being a problem, jeez |
16:42 |
sapier |
wasn't major part of us forces in iraq private armed forces ... I'd not be surprised if their secret op forces would be private too |
16:43 |
|
hmmmm joined #minetest-dev |
16:45 |
VanessaE |
sapier: not as far as I am aware. regular US army, air force, and marines troops afaik. |
16:46 |
VanessaE |
Zefram_Fysh: how much risk do you accept in your life? |
16:46 |
sapier |
wastn't here some company called "blackwater" providing most of armed forces in iraq |
16:47 |
sapier |
now they're called Academi ... if they didn't change their name again :) |
16:47 |
VanessaE |
sapier: that was probably for the weapons/machines rather than the troops |
16:47 |
* VanessaE |
looks it up |
16:47 |
sapier |
they did escort ppl and transports for us military forces and even did support military operations direct ... imho genuine tasks of a occupation force |
16:48 |
sapier |
nothing else was us invasion of iraq |
16:48 |
VanessaE |
hm, looks to be mostly a training military force? |
16:48 |
sapier |
http://en.wikipedia.org/wiki/Academi doesn't sound like training only |
16:49 |
VanessaE |
I'm reading that. |
16:49 |
Zefram_Fysh |
I accept risks of types that I am comfortable managing |
16:49 |
VanessaE |
hm. didn't know. |
16:49 |
sapier |
and security services |
16:49 |
VanessaE |
Zefram_Fysh: please. for the greater good, just sign up. |
16:49 |
Zefram_Fysh |
I can accept quite a lot of risk if it's of the right type |
16:49 |
sapier |
VanessaE: stop it ... he doesn't want to sign up to github we have to accept it |
16:50 |
Zefram_Fysh |
accepting a contract that can change out of my control is not a type of risk that I'm willing to accept |
16:50 |
VanessaE |
Zefram_Fysh: then I guess you don't drive either? |
16:50 |
sapier |
but Zefram_Fysh don't be mad on anyone just because of not wanting to do extra work for your personal feelings |
16:50 |
VanessaE |
sapier: no, I won't let this go. |
16:50 |
VanessaE |
it's too important. |
16:50 |
|
OldCoder joined #minetest-dev |
16:51 |
Zefram_Fysh |
I do drive in the broad sense; have a driving licence and occasionally use it. in practice it's been years since I last actually drove |
16:51 |
VanessaE |
Zefram_Fysh: or ride a bike, or the bus, whatever. |
16:51 |
sapier |
actually most ppl die at home so beeing at home is a quite big risk of dieing |
16:51 |
Zefram_Fysh |
I do step out of my front door, and accept some risk of being in a traffic accident |
16:51 |
VanessaE |
Zefram_Fysh: your country's laws are subject to change without notice, and you're compelled to accept them. A contract you can't opt out of. |
16:52 |
Zefram_Fysh |
I'm not happy that national law changes without informing me, but it's something I can't do anything about. if the govt decides it wants to screw me over, I'm helpless |
16:52 |
VanessaE |
tomorrow, someone could sign into law that every person of (insert your age, physical characteristics, gender, etc) must now go into military service for two years. Do you fight it as unenforceable or leave? |
16:53 |
Calinou |
80 % of people die in bed or so! |
16:53 |
Calinou |
conclusion, don't go sleep |
16:53 |
Zefram_Fysh |
github is not a government. I *do* get to control how easy it is for github to screw me over |
16:53 |
VanessaE |
"to screw me over" |
16:53 |
VanessaE |
there is your fail |
16:53 |
VanessaE |
you presume they intend to screw you over. |
16:53 |
Calinou |
if they screw you over, they lose many customers, not just you |
16:53 |
VanessaE |
why? |
16:54 |
Calinou |
(see what happened with Qualcomm DMCA: they're losing trust from people, which is very important) |
16:54 |
Zefram_Fysh |
that's shorthand for all that could happen. I don't think it likely that they would develop a hatred of me personally |
16:54 |
VanessaE |
you're still, with that shorthand, presuming they intend to do you wrong right out of the gate |
16:54 |
sapier |
Zefram_Fysh: whole life is a matter of evaluating risks ... is there a risk on github ... most likely yes ... is the chance this risk to come active ... most likely not |
16:55 |
sapier |
and most likely not doesn't mean something like 1/10 but more 1/1000000000000000000 |
16:55 |
Zefram_Fysh |
I think the evil terms show that they do have a general intent to do what's profitable even if it involves screwing over users. they got a lawyer to write the terms that way |
16:56 |
VanessaE |
again with the presumptive language. "evil" terms? |
16:56 |
VanessaE |
they HAD to get a lawyer to write them |
16:56 |
VanessaE |
it's a requirement to run a business in the US. |
16:56 |
VanessaE |
no lawyer = they don't cover their asses, THEY get sued by someone bigger than the, |
16:56 |
VanessaE |
them* |
16:56 |
Zefram_Fysh |
I consider it evil to intentionally bind someone to terms they haven't had a chance to evaluate |
16:57 |
sapier |
I've never heared of a legit service successfully turning into a evil one and actually succeeding in getting money ... if github would try you'd not be the only one affected ... .thus you had a lot of co-fighters |
16:57 |
VanessaE |
that clause is probably there from some boilerplate the lawyer drew up as a generic document |
16:57 |
Zefram_Fysh |
they could have hired a lawyer to write non-evil terms. the issue isn't that a lawyer is involved, it's what kind of contract they sought |
16:57 |
|
rubenwardy joined #minetest-dev |
16:57 |
sapier |
when did you use google last time? |
16:58 |
VanessaE |
ok Zefram_Fysh you fail already |
16:58 |
VanessaE |
their terms have already been changed |
16:58 |
VanessaE |
"If GitHub makes material changes to these Terms, we will notify you by email or by posting a notice on our site before the changes are effective" |
16:58 |
VanessaE |
https://help.github.com/articles/github-terms-of-service |
16:58 |
Zefram_Fysh |
co-fighters would be a great plus for many people, but doesn't work so well for me. I need to be self-reliant |
16:59 |
sapier |
self reliant? sorry but you should get rid of your illusions |
16:59 |
sapier |
none of us is |
16:59 |
Zefram_Fysh |
that's not changed terms, that's exactly the term I object to. what they call "notice" isn't real notice: it's just publishing the terms on their website |
16:59 |
VanessaE |
um |
16:59 |
VanessaE |
it says "by email" |
16:59 |
VanessaE |
most likely they'll do both |
16:59 |
Zefram_Fysh |
"or" |
16:59 |
VanessaE |
like any other site does |
17:00 |
sapier |
still Zefram_Fysh when did you use google last time |
17:00 |
Zefram_Fysh |
the minimum it guarantees is notice on their site |
17:01 |
Zefram_Fysh |
I use google search daily. I know they post some terms, but I'm happy about unreasonable terms being unenforceable where I don't have an account |
17:01 |
sapier |
they are |
17:01 |
VanessaE |
Google's terms are applicable whether you have an account or not. |
17:01 |
Zefram_Fysh |
for that matter, I read stuff hosted at github. same issue |
17:01 |
sapier |
you press the search button thus you agree to their terms of service, they do have your ip adress thus they can identify you |
17:02 |
sapier |
agreement + identification --> sueable |
17:03 |
Zefram_Fysh |
cases about general web use have gone in the sensible direction. consider the cases about sites trying to forbid deep linking |
17:03 |
sapier |
yes but imho you're way beyond target ... and I'm accused to be beyond target myself too |
17:04 |
Zefram_Fysh |
creating an account and explicitly operating an "I agree" button are major steps beyond mere web browsing. those are the points at which I pay attention to posted terms |
17:04 |
VanessaE |
Zefram_Fysh: not to Google et al. |
17:04 |
VanessaE |
Zefram_Fysh: they have money and lawyers. your argument is invalid |
17:04 |
sapier |
so on one hand you want to prevent any risk but on the other hand you do accept the google risk? sorry but that's not consistent |
17:05 |
Zefram_Fysh |
I did not say I want to prevent "any risk". quite the reverse. I'm just picky about which risks I take |
17:05 |
VanessaE |
you're being too picky and making it hard for the rest of us to review and accept patches |
17:05 |
VanessaE |
there's a reason I prefer your patches to come as pastes rather than your repo. |
17:05 |
sapier |
well google with all it's information and data is most likely way more powerfull then github ;-) |
17:06 |
Zefram_Fysh |
what is that reason? |
17:06 |
VanessaE |
I can look at them far easier that way before merging. but through github is easier yet, and I get automated reminders of the pull requests as well as the embedded discussion. |
17:07 |
VanessaE |
pastes or your repo + IRC is much easier to lose track of, especially when I won't be leaving my PC on all the time anymore |
17:07 |
sapier |
https://github.com/minetest/minetest/pull/1457 pushing this in a few minutes |
17:07 |
VanessaE |
see? click --> website --> get all the details. |
17:08 |
VanessaE |
except..it's android and database management so I'll back out of it. sapier, you sure you wanna fuck with that stuff? ;) |
17:09 |
sapier |
that one is required to get a mips build |
17:09 |
VanessaE |
Zefram_Fysh: but, in three clicks I had the pull and its commits open and viewing. |
17:09 |
sapier |
leveldb doesn't work there |
17:10 |
VanessaE |
Zefram_Fysh: had I had to do that from the command line, it would take far longer and in a more "restricted" fashion. |
17:10 |
VanessaE |
sapier: ok. so long as it works I guess. |
17:10 |
Zefram_Fysh |
much of that is just different UI preferences. I find the command line much more expressive and usable than a website |
17:10 |
sapier |
does only change things on android and there it works |
17:11 |
sapier |
I don't like this way of doing it but I can't fix sqlite myself and even latest version is buggy |
17:11 |
VanessaE |
Zefram_Fysh: yes, it's a difference in UI but the point is it's 100000x more convenient to do it this way. |
17:11 |
VanessaE |
expressiveness and subtlety are trounced by convenience in this case. |
17:11 |
VanessaE |
s/subtlety/usability/ |
17:12 |
VanessaE |
plus: |
17:12 |
sapier |
Zefram_Fysh: there's no command line ui providing discussion and code linked together |
17:12 |
Zefram_Fysh |
the command line is also more convenient to me than websites |
17:12 |
sapier |
how do you do discussions on your code on command line? |
17:12 |
VanessaE |
if it's my repo the pull is against, I get an email telling me about the pull, with links to it and a few other things and even a quick copy&paste command to merge the pull to my local repo. |
17:12 |
VanessaE |
how much more convenient can it possibly get than this? |
17:13 |
Zefram_Fysh |
the linking of discussion and code is admittedly not covered by git. I'm accustomed to a combination of git and mailing list to cover that |
17:13 |
sapier |
Zefram_Fysh: a simple example if I wanna review a pull you did on command line I have to do following things: |
17:14 |
sapier |
save my current wip |
17:14 |
sapier |
add your repositiory as remote |
17:14 |
sapier |
fetch it |
17:14 |
sapier |
switch there |
17:14 |
sapier |
open up a comparison gui |
17:14 |
sapier |
review |
17:14 |
sapier |
write my comments somewhere |
17:14 |
sapier |
add line numbers and git hash to those comments |
17:15 |
sapier |
switch back my wip branch |
17:15 |
Zefram_Fysh |
you have some excess steps. don't need to stash current work before pulling; don't need to switch your working dir to my branch in order to examine the diff |
17:15 |
sapier |
on github: |
17:15 |
sapier |
http... |
17:15 |
sapier |
click line to comment |
17:15 |
sapier |
write |
17:15 |
sapier |
done |
17:15 |
|
thk joined #minetest-dev |
17:16 |
VanessaE |
Zefram_Fysh: don't take this the wrong way, but any way you look at it, your way of doing this is making it horribly inconvenient for the rest of us... all for the sake of paranoia |
17:16 |
Zefram_Fysh |
if you only want to look at the diff, you don't even need to get it into git, you could just read the pastebin |
17:16 |
sapier |
ok then how am I supposed to review a pull of yours? |
17:17 |
sapier |
that's useless as I usually need the code around a diff to understand what's going on there |
17:17 |
sapier |
I had to do this for your last paste to ... open up my ide find the file find the line ... |
17:18 |
sapier |
I don't say it's not possible to do that ... I already did it ... it's just inconveniant |
17:18 |
sapier |
-i+u |
17:18 |
rubenwardy |
inconvenient |
17:19 |
rubenwardy |
:P |
17:19 |
sapier |
really? ok then I was right first |
17:19 |
rubenwardy |
well, s/ant/ent. But yeah |
17:19 |
VanessaE |
ruben "the spellchecker" wardy ;) |
17:19 |
Zefram_Fysh |
well, noted that you find it inconvenient to review patches that don't come in through github. as git itself makes the interoperability so easy, it sounds like a flaw in github that it makes the workflow difficult in that case |
17:19 |
sapier |
Zefram_Fysh: you consider it a flaw of a tool to make things more easy? |
17:20 |
sapier |
that#s crude |
17:20 |
VanessaE |
Zefram_Fysh: no, it's a flaw in your process in that it's NOT possible to do a full review of code that is submitted to a git repo that doesn't even have a web interface at all |
17:20 |
Zefram_Fysh |
no, I consider it a flaw that it makes the other thing more difficult |
17:20 |
sapier |
github is not involved in how I review your pastes so don't blame it |
17:20 |
Zefram_Fysh |
pulling from a github-hosted git repo and from a git repo hosted elsewhere shouldn't be made to look so wildly different |
17:21 |
VanessaE |
Zefram_Fysh: it's not about pulling the code |
17:21 |
sapier |
most likely you call it a flaw for a car to move you without having to walk on your own |
17:21 |
VanessaE |
it's about discussing the code and reviewing it. |
17:21 |
VanessaE |
you can't do that on a repo that has no web interface |
17:21 |
Zefram_Fysh |
er, I'm totally confused about what toolset you're talking about then |
17:21 |
sapier |
we're not talking about the actuall pull/pushing, we do that on commandline anyway without github |
17:21 |
Zefram_Fysh |
I'm open to working with you to find a workflow that suits you better. just not one that involves me having a github account |
17:22 |
sapier |
it's the way to get a pull request into a state where it's ready to be merged |
17:22 |
VanessaE |
Zefram_Fysh: github combines the git repo, discussion, email alerts, and everything else in one system. your repo does none of that, it's just bare git. |
17:22 |
sapier |
don't mention the email alerts that's one of the most useless things :-) |
17:22 |
VanessaE |
sapier: actually they're quite useful for my workflow :P |
17:23 |
sapier |
well I'm spamed to a extent I don't even read them |
17:23 |
VanessaE |
http://xkcd.com/1172/ |
17:23 |
Zefram_Fysh |
it is not a flaw that your toolchain makes some workflows easy. it is a flaw that they don't make the almost-identical workflow nearly as easy |
17:23 |
sapier |
Zefram_Fysh: if you have a good suggestions how to do the discussion and reviewing you should do it |
17:23 |
VanessaE |
Zefram_Fysh: it's a flaw in that you don't have a toolchain *at all* |
17:24 |
VanessaE |
all you've got is a bare git repo. IRC + pastes is *not* a toolchain. |
17:25 |
rubenwardy |
Why doesn't he want a GitHub account? |
17:25 |
VanessaE |
rubenwardy: "we reserve the right to change these terms at any time" with the only notice possibly being a mention on the website that the terms have been changed. |
17:26 |
VanessaE |
he's afraid of nefarious terms being inserted that could land him in prison and leave him penniless. |
17:26 |
Zefram_Fysh |
I've given suggestions about git usage, which I do know about. as the problem evidently lies in other parts of your toolchain, with which I'm not familiar, it appears that I can't give useful suggestions there. I can't tell you how to use your tools |
17:26 |
rubenwardy |
The minetest.net forums say that they can change the T&C anytime - without notifying anyone. |
17:26 |
VanessaE |
Zefram_Fysh: there *are* no tools here. |
17:26 |
VanessaE |
Zefram_Fysh: we're not gonna start using mailing lists et al. for code discussion |
17:27 |
Zefram_Fysh |
Vanessa: you exaggerate. I explicitly said that I think jailing me is not on the cards |
17:27 |
Zefram_Fysh |
rubenwardy: that's exactly why I don't have a forum account |
17:27 |
sapier |
Zefram_Fysh: goddamn make a suggestion how to discuss your pull requests |
17:27 |
rubenwardy |
So paranoid |
17:27 |
VanessaE |
Zefram_Fysh: ok, misread about jail, but penniless you DID say. |
17:27 |
sapier |
discussing pastebins isn't an option |
17:28 |
VanessaE |
Zefram_Fysh: your paranoia is excessive. |
17:28 |
VanessaE |
Zefram_Fysh: you refuse to even entertain any notion for reducing your paranoia itself. This is illness. |
17:28 |
sapier |
the minimal requirement is having a way to add comments to your code, not having to register for other services, and another good feature would be easy full code access for that one |
17:28 |
rubenwardy |
I don't think GitHub would do that. It would rid them of customers. And it would not work. |
17:28 |
Zefram_Fysh |
sapier: I evidently have too little clue about what would be convenient to you. it looks as though the best process for you would involve my code somehow becoming a github pull request, which would have to be done by someone other than me |
17:29 |
VanessaE |
now I'm beginning to get pissed off. |
17:29 |
sapier |
at least install gitlist on your server |
17:29 |
Zefram_Fysh |
gitlist? looking... |
17:29 |
|
Jordach joined #minetest-dev |
17:30 |
sapier |
or gitweb |
17:31 |
|
jp__ joined #minetest-dev |
17:31 |
sapier |
or some other web frontend to your git repository so we don't have to download it to see it linked to code |
17:31 |
VanessaE |
gitlist looks more useful than gitweb (having used the latter, it's....cumbersome) |
17:31 |
Zefram_Fysh |
oh, a web repo viewer. that's feasible. I don't see the attraction myself, but I have no great objection to it existing |
17:31 |
|
twoelk joined #minetest-dev |
17:31 |
sapier |
gitlist is evolving quite fast maybe it's gonna get comment support soon |
17:32 |
sapier |
right now it seems to mimicry github ... hope that's not an issue too |
17:32 |
Zefram_Fysh |
I don't fancy hosting a writable web service (comment support). though could do it if necessary |
17:33 |
Zefram_Fysh |
I'll look at gitlist and gitweb. if I find both OK, which would you prefer? |
17:33 |
sapier |
well if you don't wanna join github it's up to you to provide equaly convenient ways to review your patches |
17:34 |
sapier |
I'd prefere gitlist as it seems to be more advanced as of diff ... but that's a matter of taste |
17:34 |
Zefram_Fysh |
well yes, it's all a matter of taste, your taste is why we're looking at me installing a git viewer at all |
17:35 |
sapier |
it's you refusing to joing our established and basically working review process |
17:36 |
|
alexxs joined #minetest-dev |
17:36 |
Zefram_Fysh |
usually review process is the purview of the regular developers, not of the patch submitter |
17:36 |
sapier |
as you don't wanna do so you should at least provide a equally comfortable replacement |
17:36 |
VanessaE |
brb |
17:36 |
Calinou |
woah, gitlist.org looks very similar to GitHub |
17:37 |
sapier |
well we don't get paid to to this ... so unless you wanna pay us you're supposed to make review process as conveniant as possible |
17:37 |
sapier |
e.g. by joining the official and established process |
17:37 |
sapier |
you could try to send a patchfile to linus torvalds too but I'm quite sure he wont even read it |
17:38 |
sapier |
or send him a sms to your svn repository |
17:39 |
Zefram_Fysh |
I don't think Linus's process involves joining a specific web service |
17:39 |
sapier |
and by the way linus is even paid for doing this |
17:39 |
sapier |
that doesn't matter the only thing relevant is you have to do it the way the linux kernel does |
17:40 |
sapier |
if you refuse to do it that way you don't have any chance to get it in |
17:40 |
twoelk |
oh come on, you where almost there. don't wander of again |
17:40 |
sapier |
btw you do have to register for a web service to get something to linux kernel |
17:41 |
Zefram_Fysh |
oh? it's been many many years since I wrote any code for the kernel |
17:41 |
sapier |
you wont have a chance to get something in without subscribing to lkml |
17:41 |
Zefram_Fysh |
(there is a bit of my code in there. from the days when development was managed by mailing list, as it happens) |
17:42 |
sapier |
still you subscribe there thus you sign some sort of contract too |
17:42 |
|
alexxs joined #minetest-dev |
17:42 |
Zefram_Fysh |
oh, right. joining mailing lists isn't too onerous, in my experience |
17:43 |
sapier |
well you can keep picking and reinterpreting your own arguments but I don't think that's gonna help in motivating us reviewing your patches in a less conveniant way then we usually do ... |
17:43 |
Zefram_Fysh |
I don't remember terms atteched to lkml when I was on it. I bet the terms are not evil |
17:44 |
Zefram_Fysh |
well yes, we should work on making a process that works given our respective constraints |
17:44 |
sapier |
(19:39:02) Zefram_Fysh: I don't think Linus's process involves joining a specific web service |
17:44 |
sapier |
that's what you said an that is wrong ... noone did say anything about evil or not as that's highly subjective anyway |
17:44 |
Zefram_Fysh |
I'm not counting a mailing list as a "web service" |
17:44 |
sapier |
that's your pov |
17:45 |
Zefram_Fysh |
you probably view it through web browsing, making it a web service to you, but I interact with mailing lists through mail. yes, pov |
17:46 |
sapier |
I already told you one way to increase chances for your patches to be merged, but that one only fixes the "see what you changed" issue |
17:46 |
sapier |
the "can't comment the changes" is still there |
17:47 |
|
rubenwardy left #minetest-dev |
17:47 |
sapier |
we don't use a mailing list for discussion but github ... no matter how you wish it to be a mailing list at least I don't agree to be forced by a single person to use a mailing list too that'd be ridiculus ... |
17:48 |
Zefram_Fysh |
I have not advocated for you to switch to a mailing list. or anything else, for that matter |
17:48 |
sapier |
if you didn't notice you're trying to force us to follow your strange opinion of what is good and bad |
17:49 |
Zefram_Fysh |
I am not trying to force you to use the tools with which I am most comfortable. I am trying to find a mutually-agreeable arrangement |
17:49 |
sapier |
you don't even use tools |
17:50 |
sapier |
and blame us for using tools to make some parts of review more easy |
17:50 |
Zefram_Fysh |
is there that much of a generation gap? I didn't think I was that old |
17:50 |
Zefram_Fysh |
no, I have not objected to your tools making some things easy. you have put those words in my mouth three times now |
17:51 |
|
rubenwardy joined #minetest-dev |
17:51 |
sapier |
then how do you expect us to use our tools for your commits? by always copying your work creating pull request for you ? |
17:51 |
|
jp__ left #minetest-dev |
17:52 |
Zefram_Fysh |
how you use your tools, with which I am not familiar, is best judged by you. it does appear that some process involving my work eventually turning up as a github pull request would be much more satisfactory for you than any process that doesn't |
17:53 |
sapier |
Zefram_Fysh "how you use your tools" sounds quite ignorant to me |
17:53 |
Zefram_Fysh |
it is respectful of your personal space |
17:53 |
Zefram_Fysh |
they're your tools, not mine |
17:55 |
sapier |
no they're not my tools but minetest project tools |
17:55 |
Zefram_Fysh |
ok, collective "you" |
17:55 |
sapier |
it's like telling sorry but I don't like gcc I wanna compile using fortran compiler |
17:55 |
sapier |
we won't merge fortran code no matter how much features it's gonna add |
17:58 |
rubenwardy |
That is a code thing. PR & issues is a maintenance thing. Not completely different, but still different. |
17:59 |
sapier |
but as I told multiple times it's your decision, I will continue to review your suggestions every now and then but I just can't merge controversial things this way and I won't create pull request for you once you do more then a few things a year |
17:59 |
Zefram_Fysh |
as to how my code can become github pull requests, it may be as simple as a helpful github user making a habit of it. after the mention much earlier of a "github secretary", someone on this channel did actually immediately offer to be my github secretary, rather kindly. I demurred on philosophical grounds that I don't want github use per se, what I want is a satisfactory link to the MT project team. so maybe the process involves me having a Min |
17:59 |
sapier |
it's a lot of work to keep those pulls in sync to your work and that's work only there because of your personal decision |
18:00 |
Zefram_Fysh |
I do appreciate the consideration that you have given my patches thus far |
18:00 |
|
Miner_48er joined #minetest-dev |
18:00 |
sapier |
ok if you want to be your secretary on your own you'd use a github account someone else did create for you? |
18:01 |
Zefram_Fysh |
no, that would amount to being my account. likewise a shared account |
18:01 |
sapier |
well then someone creates an account and shares it to you |
18:02 |
Zefram_Fysh |
but maybe a further degree of isolation could be arranged |
18:04 |
Zefram_Fysh |
if someone had a github account and arranged that, for example, emailing a git: URI to some mailbox would cause a pull from the specified repo that gets automatically put onto that github account, and advertised it as "email to Minetest-team gateway", I would find that sufficiently far from being me using github |
18:04 |
sapier |
done |
18:04 |
Zefram_Fysh |
please don't object specifically to the email aspect of that idea. there are other ways to get equivalent effect, and remember it's not aimed at you anyway |
18:04 |
sapier |
use that account on command line |
18:05 |
Zefram_Fysh |
you have given me a username/password combination, presumably for a github account. as I said, using a shared account doesn't seem sufficiently isolated |
18:06 |
Zefram_Fysh |
but we do seem to be making progress towards a technical solution to the social problem |
18:06 |
sapier |
sorry Zefram_Fysh that's most I can give you not it's up to you to take the chances we provided |
18:06 |
sapier |
decide on your own |
18:06 |
sapier |
-not+now |
18:07 |
Zefram_Fysh |
I am not willing to directly use a github account |
18:07 |
sapier |
then be it as I'm not willing to spend any more time in this useless discussion |
18:07 |
sapier |
I already spent way more then anyone else in here |
18:35 |
|
kahrl joined #minetest-dev |
18:55 |
|
alexxs joined #minetest-dev |
19:09 |
|
rubenwardy left #minetest-dev |
19:42 |
* VanessaE |
looks at the discussion she missed (had someone over doing some work) and shakes head, frowns |
19:45 |
kahrl |
sapier: re: moving includes from version.h to version.cpp |
19:46 |
kahrl |
version.h is included for a variety of things: the --version option, displaying the version in the main menu, notifying the server list, user agent in httpfetch... |
19:46 |
kahrl |
but I'm pretty sure the things that are #included in version.h are only used in version.cpp |
19:47 |
kahrl |
(but since I can't test the android build I wanted to ask you) |
19:50 |
|
kaeza joined #minetest-dev |
19:53 |
kahrl |
also sfan5: ping (since you were the last one to change this) |
19:58 |
kahrl |
unrelated: I propose adding a count parameter to the /dummyball command |
19:58 |
kahrl |
https://gist.github.com/kahrl/c2c7df94c17efec74f5c |
19:59 |
kahrl |
makes it trivial to get 50 entities into one mapblock |
19:59 |
sapier |
actually android client isn't supposed to use it for anything else so if you can move it there I guess I'll be able to fix potential issues for android too |
20:00 |
kahrl |
although I guess anything > 2 should require some privileges |
20:00 |
kahrl |
> 1* |
20:00 |
kahrl |
sapier: ok, good to know, I'll push that change then |
20:00 |
kahrl |
(in 15 minutes unless someone vetoes) |
20:01 |
sapier |
yes and I'll fix android if it unexpectedly breaks something |
20:25 |
kahrl |
I had to change more than I expected |
20:26 |
|
EvergreenTree joined #minetest-dev |
20:26 |
|
mrtux joined #minetest-dev |
20:26 |
kahrl |
for example, there was some code in client.cpp that used CMAKE_VERSION_GITHASH directly |
20:26 |
kahrl |
but still simple enough: https://gist.github.com/kahrl/b288cd6063da36aae2dc |
20:26 |
kahrl |
giving another 30 minutes before I push |
20:39 |
ShadowNinja |
kahrl: Why the minetest_version_* strings and not just the constants? |
20:40 |
kahrl |
ShadowNinja: because with the #defined constants you have to recompile every file that uses them, every time they change |
20:40 |
kahrl |
(e.g. when you change an unrelated file and that adds the -dirty suffix to the githash) |
20:41 |
ShadowNinja |
kahrl: O.K. I'd prefer if you removed the minetest_ prefix though. And maybe you should do the same for major/minor/patch. |
20:42 |
ShadowNinja |
Also, _extra needs to be cleaned up, it uses a PATCH_ORIG now because it mangles PATCH with EXTRA. |
20:45 |
kahrl |
these are good ideas but out of scope of this commit :P |
20:48 |
kahrl |
also I don't completely understand how the version constants are set in android so I might botch that by accident if I change a lot |
20:50 |
kahrl |
so it might be better if someone like sapier or sfan does that |
21:16 |
Jordach |
anyone understand why pressing enter in the multiplayer tab (password box) causes random segfaults |
21:16 |
Jordach |
(or just access violations) |
21:22 |
|
^v joined #minetest-dev |
21:28 |
|
nore__ joined #minetest-dev |
21:28 |
|
nore_ joined #minetest-dev |
21:36 |
|
^v joined #minetest-dev |
22:47 |
|
proller joined #minetest-dev |
22:51 |
Eater4 |
Jordach: the rail is going though the person O_o |
23:07 |
|
^v joined #minetest-dev |